From f82bef4195b2f4fbec53d9e5ad09eee87561403d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=A9rcio=20Martins?= Date: Thu, 12 Dec 2019 03:12:28 -0300 Subject: [PATCH 001/114] Fix Travis script "install.sh" - execution hangs on osx "if" condition. --- .travis/install.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.travis/install.sh b/.travis/install.sh index 350e7ab81..5dec1c211 100644 --- a/.travis/install.sh +++ b/.travis/install.sh @@ -1,12 +1,12 @@ #!/bin/bash -if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then - - #export PATH="/usr/local/opt/qt/bin:/usr/local/opt/python@2/libexec/bin:$PATH" - -elif [[ "$TRAVIS_OS_NAME" == "linux" ]]; then +if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get -y -o Dpkg::Options::="--force-overwrite" install qt510base qt510multimedia qt510svg qttools5-dev libavformat-dev libavcodec-dev libavfilter-dev libavutil-dev libswscale-dev libswresample-dev cmake libopencolorio-dev libopenimageio-dev libopenexr-dev source /opt/qt*/bin/qt*-env.sh +#elif [[ "$TRAVIS_OS_NAME" == "osx" ]]; then + + #export PATH="/usr/local/opt/qt/bin:/usr/local/opt/python@2/libexec/bin:$PATH" + fi From cce379ad229cf1b20099557e89051dfebe11cee0 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Fri, 28 Jan 2022 13:49:49 -0800 Subject: [PATCH 002/114] handle cache properly in ripple delete --- app/render/playbackcache.cpp | 15 +++-- app/widget/timelinewidget/timelinewidget.cpp | 17 ++--- app/widget/timelinewidget/timelinewidget.h | 4 +- app/widget/timelinewidget/tool/pointer.cpp | 6 +- .../undo/timelineundogeneral.cpp | 8 ++- .../timelinewidget/undo/timelineundogeneral.h | 62 ++++++++++++++++++- .../undo/timelineundoripple.cpp | 44 ++++++++++++- .../timelinewidget/undo/timelineundoripple.h | 43 +++++++++++-- 8 files changed, 168 insertions(+), 31 deletions(-) diff --git a/app/render/playbackcache.cpp b/app/render/playbackcache.cpp index 1f50f736d..7a51597c0 100644 --- a/app/render/playbackcache.cpp +++ b/app/render/playbackcache.cpp @@ -57,21 +57,24 @@ void PlaybackCache::Shift(rational from, rational to) // An region between `from` and `to` will be inserted or spliced out TimeRangeList ranges_to_shift = validated_.Intersects(TimeRange(from, RATIONAL_MAX)); - // Remove everything from the minimum point - TimeRange remove_range = TimeRange(qMin(from, to), RATIONAL_MAX); - Invalidate(remove_range, false); + // Remove all ranges starting at to + validated_.remove(TimeRange(qMin(from, to), RATIONAL_MAX)); - // Shift invalidated ranges - // (`diff` is POSITIVE when moving forward -> and NEGATIVE when moving backward <-) + // Restore ranges shifted rational diff = to - from; foreach (const TimeRange& r, ranges_to_shift) { - Validate(r + diff, false); + validated_.insert(r + diff); } + // Tell derivatives that a shift has occurred ShiftEvent(from, to); // Emit signals emit Shifted(from, to); + + if (diff > 0) { + //emit Invalidated(TimeRange(from, to)); + } } void PlaybackCache::Validate(const TimeRange &r, bool signal) diff --git a/app/widget/timelinewidget/timelinewidget.cpp b/app/widget/timelinewidget/timelinewidget.cpp index d827af5d5..af0844486 100644 --- a/app/widget/timelinewidget/timelinewidget.cpp +++ b/app/widget/timelinewidget/timelinewidget.cpp @@ -462,7 +462,8 @@ void TimelineWidget::SplitAtPlayhead() void TimelineWidget::ReplaceBlocksWithGaps(const QVector &blocks, bool remove_from_graph, MultiUndoCommand *command, - bool handle_transitions) + bool handle_transitions, + bool handle_invalidations) { foreach (Block* b, blocks) { if (dynamic_cast(b)) { @@ -473,7 +474,7 @@ void TimelineWidget::ReplaceBlocksWithGaps(const QVector &blocks, Track* original_track = b->track(); - command->add_child(new TrackReplaceBlockWithGapCommand(original_track, b, handle_transitions)); + command->add_child(new TrackReplaceBlockWithGapCommand(original_track, b, handle_transitions, handle_invalidations)); if (remove_from_graph) { command->add_child(new NodeRemoveWithExclusiveDependenciesAndDisconnect(b)); @@ -508,6 +509,9 @@ void TimelineWidget::DeleteSelected(bool ripple) MultiUndoCommand* command = new MultiUndoCommand(); + // Remove all selections + command->add_child(new SetSelectionsCommand(this, TimelineWidgetSelections(), GetSelections())); + // For transitions, remove them but extend their attached blocks to fill their place foreach (TransitionBlock* transition, transitions_to_delete) { TransitionRemoveCommand *trc = new TransitionRemoveCommand(transition, true); @@ -519,10 +523,7 @@ void TimelineWidget::DeleteSelected(bool ripple) } // Replace clips with gaps (effectively deleting them) - ReplaceBlocksWithGaps(clips_to_delete, true, command); - - // Remove all selections - command->add_child(new SetSelectionsCommand(this, TimelineWidgetSelections(), GetSelections(), false)); + ReplaceBlocksWithGaps(clips_to_delete, true, command, false, !ripple); // Insert ripple command now that it's all cleaned up gaps TimelineRippleDeleteGapsAtRegionsCommand *ripple_command = nullptr; @@ -1207,7 +1208,7 @@ void TimelineWidget::NudgeInternal(rational amount) // Nudge selections TimelineWidgetSelections new_sel = GetSelections(); new_sel.ShiftTime(amount); - command->add_child(new TimelineWidget::SetSelectionsCommand(this, new_sel, GetSelections(), true)); + command->add_child(new TimelineWidget::SetSelectionsCommand(this, new_sel, GetSelections())); Core::instance()->undo_stack()->push(command); } @@ -1259,7 +1260,7 @@ void TimelineWidget::MoveToPlayheadInternal(bool out) it.value().shift(track_adj); } } - command->add_child(new SetSelectionsCommand(this, new_sel, GetSelections(), true)); + command->add_child(new SetSelectionsCommand(this, new_sel, GetSelections())); Core::instance()->undo_stack()->push(command); } diff --git a/app/widget/timelinewidget/timelinewidget.h b/app/widget/timelinewidget/timelinewidget.h index 6515b8369..f746b545b 100644 --- a/app/widget/timelinewidget/timelinewidget.h +++ b/app/widget/timelinewidget/timelinewidget.h @@ -122,7 +122,7 @@ public: void RestoreSplitterState(const QByteArray& state); - static void ReplaceBlocksWithGaps(const QVector &blocks, bool remove_from_graph, MultiUndoCommand *command, bool handle_transitions = true); + static void ReplaceBlocksWithGaps(const QVector &blocks, bool remove_from_graph, MultiUndoCommand *command, bool handle_transitions = true, bool handle_invalidations = true); /** * @brief Retrieve the QGraphicsItem at a particular scene position @@ -230,7 +230,7 @@ public: class SetSelectionsCommand : public UndoCommand { public: - SetSelectionsCommand(TimelineWidget* timeline, const TimelineWidgetSelections& now, const TimelineWidgetSelections& old, bool process_block_changes) : + SetSelectionsCommand(TimelineWidget* timeline, const TimelineWidgetSelections& now, const TimelineWidgetSelections& old, bool process_block_changes = true) : timeline_(timeline), old_(old), now_(now), diff --git a/app/widget/timelinewidget/tool/pointer.cpp b/app/widget/timelinewidget/tool/pointer.cpp index 171bdbee9..5e3161323 100644 --- a/app/widget/timelinewidget/tool/pointer.cpp +++ b/app/widget/timelinewidget/tool/pointer.cpp @@ -572,7 +572,7 @@ void PointerTool::FinishDrag(TimelineViewMouseEvent *event) } else { new_sel.TrimOut(reference_ghost->GetOutAdjustment()); } - command->add_child(new TimelineWidget::SetSelectionsCommand(parent(), new_sel, parent()->GetSelections(), true)); + command->add_child(new TimelineWidget::SetSelectionsCommand(parent(), new_sel, parent()->GetSelections())); } } @@ -621,7 +621,7 @@ void PointerTool::FinishDrag(TimelineViewMouseEvent *event) TimelineWidgetSelections new_sel = parent()->GetSelections(); new_sel.ShiftTime(blocks_moving.first().ghost->GetInAdjustment()); new_sel.ShiftTracks(drag_track_type_, blocks_moving.first().ghost->GetTrackAdjustment()); - command->add_child(new TimelineWidget::SetSelectionsCommand(parent(), new_sel, parent()->GetSelections(), true)); + command->add_child(new TimelineWidget::SetSelectionsCommand(parent(), new_sel, parent()->GetSelections())); } if (!blocks_sliding.isEmpty()) { @@ -682,7 +682,7 @@ void PointerTool::FinishDrag(TimelineViewMouseEvent *event) // Adjust selections TimelineWidgetSelections new_sel = parent()->GetSelections(); new_sel.ShiftTime(movement); - command->add_child(new TimelineWidget::SetSelectionsCommand(parent(), new_sel, parent()->GetSelections(), true)); + command->add_child(new TimelineWidget::SetSelectionsCommand(parent(), new_sel, parent()->GetSelections())); } } diff --git a/app/widget/timelinewidget/undo/timelineundogeneral.cpp b/app/widget/timelinewidget/undo/timelineundogeneral.cpp index 659b276b2..59e77a35d 100644 --- a/app/widget/timelinewidget/undo/timelineundogeneral.cpp +++ b/app/widget/timelinewidget/undo/timelineundogeneral.cpp @@ -490,7 +490,9 @@ void TrackReplaceBlockWithGapCommand::redo() track_->EndOperation(); - track_->Node::InvalidateCache(invalidate_range, Track::kBlockInput); + if (handle_invalidations_) { + track_->Node::InvalidateCache(invalidate_range, Track::kBlockInput); + } } else { // Block is at the end of the track, simply remove it @@ -547,7 +549,9 @@ void TrackReplaceBlockWithGapCommand::undo() track_->EndOperation(); - track_->Node::InvalidateCache(TimeRange(block_->in(), block_->out()), Track::kBlockInput); + if (handle_invalidations_) { + track_->Node::InvalidateCache(TimeRange(block_->in(), block_->out()), Track::kBlockInput); + } } else { // Our gap and existing gap were both null, our block must have been at the end and thus diff --git a/app/widget/timelinewidget/undo/timelineundogeneral.h b/app/widget/timelinewidget/undo/timelineundogeneral.h index b8670a063..40396f549 100644 --- a/app/widget/timelinewidget/undo/timelineundogeneral.h +++ b/app/widget/timelinewidget/undo/timelineundogeneral.h @@ -233,13 +233,14 @@ private: class TrackReplaceBlockWithGapCommand : public UndoCommand { public: - TrackReplaceBlockWithGapCommand(Track* track, Block* block, bool handle_transitions = true) : + TrackReplaceBlockWithGapCommand(Track* track, Block* block, bool handle_transitions = true, bool handle_invalidations = true) : track_(track), block_(block), existing_gap_(nullptr), existing_merged_gap_(nullptr), our_gap_(nullptr), - handle_transitions_(handle_transitions) + handle_transitions_(handle_transitions), + handle_invalidations_(handle_invalidations) { } @@ -265,6 +266,7 @@ private: GapBlock* our_gap_; bool handle_transitions_; + bool handle_invalidations_; QObject memory_manager_; @@ -360,6 +362,62 @@ private: }; +class NodeBeginOperationCommand : public UndoCommand +{ +public: + NodeBeginOperationCommand(Node *node) : + node_(node) + {} + + virtual Project* GetRelevantProject() const override + { + return node_->project(); + } + +protected: + virtual void redo() override + { + node_->BeginOperation(); + } + + virtual void undo() override + { + node_->EndOperation(); + } + +private: + Node *node_; + +}; + +class NodeEndOperationCommand : public UndoCommand +{ +public: + NodeEndOperationCommand(Node *node) : + node_(node) + {} + + virtual Project* GetRelevantProject() const override + { + return node_->project(); + } + +protected: + virtual void redo() override + { + node_->EndOperation(); + } + + virtual void undo() override + { + node_->BeginOperation(); + } + +private: + Node *node_; + +}; + } #endif // TIMELINEUNDOGENERAL_H diff --git a/app/widget/timelinewidget/undo/timelineundoripple.cpp b/app/widget/timelinewidget/undo/timelineundoripple.cpp index acbbe083e..ef4c890ae 100644 --- a/app/widget/timelinewidget/undo/timelineundoripple.cpp +++ b/app/widget/timelinewidget/undo/timelineundoripple.cpp @@ -488,26 +488,36 @@ void TimelineRippleDeleteGapsAtRegionsCommand::prepare() } max_gaps = qMax(max_gaps, gaps_on_track.size()); + } else { + qWarning() << "Failed to find corresponding gap to region"; } } + // For each gap on each track, find a corresponding gap on every other track (which may include + // a requested gap) to ripple in order to keep everything synchronized + QHash gap_lengths; for (int gap_index=0; gap_index &gaps_on_track, requested_gaps) { if (gap_index < gaps_on_track.size()) { const RemovalRequest &gap = gaps_on_track.at(gap_index); earliest_point = qMin(earliest_point, gap.range.in()); ripple_length = qMin(ripple_length, gap.range.length()); + latest_point = qMax(latest_point, gap.range.out()); } } // Determine which gaps will be involved in this operation QVector gaps; + bool all_tracks_unlocked = true; + foreach (Track* track, timeline_->GetTracks()) { if (track->IsLocked()) { + all_tracks_unlocked = false; continue; } @@ -548,7 +558,12 @@ void TimelineRippleDeleteGapsAtRegionsCommand::prepare() if (gap) { gaps.append(gap); - ripple_length = qMin(ripple_length, gap->length()); + + if (!gap_lengths.contains(gap)) { + gap_lengths.insert(gap, gap->length()); + } + + ripple_length = qMin(ripple_length, gap_lengths.value(gap)); } if (ripple_length == 0) { @@ -558,11 +573,24 @@ void TimelineRippleDeleteGapsAtRegionsCommand::prepare() if (ripple_length > 0) { foreach (GapBlock *gap, gaps) { - if (gap->length() == ripple_length) { + if (all_tracks_unlocked) { + commands_.append(new NodeBeginOperationCommand(gap->track())); + } + + if (gap_lengths.value(gap) == ripple_length) { commands_.append(new TrackRippleRemoveBlockCommand(gap->track(), gap)); } else { - commands_.append(new BlockResizeCommand(gap, gap->length() - ripple_length)); + gap_lengths[gap] -= ripple_length; + commands_.append(new BlockResizeCommand(gap, gap_lengths.value(gap))); } + + if (all_tracks_unlocked) { + commands_.append(new NodeEndOperationCommand(gap->track())); + } + } + + if (all_tracks_unlocked) { + commands_.append(new TimelineShiftCacheCommand(timeline_, latest_point, latest_point - ripple_length)); } } } @@ -582,4 +610,14 @@ void TimelineRippleDeleteGapsAtRegionsCommand::undo() } } +void TimelineShiftCacheCommand::redo() +{ + timeline_->ShiftCache(from_, to_); +} + +void TimelineShiftCacheCommand::undo() +{ + timeline_->ShiftCache(to_, from_); +} + } diff --git a/app/widget/timelinewidget/undo/timelineundoripple.h b/app/widget/timelinewidget/undo/timelineundoripple.h index 8c15222fc..17556f935 100644 --- a/app/widget/timelinewidget/undo/timelineundoripple.h +++ b/app/widget/timelinewidget/undo/timelineundoripple.h @@ -38,7 +38,8 @@ namespace olive { * By default, nothing takes this area meaning all subsequent clips are pushed backward, however you can specify * a block to insert at the `in` point. No checking is done to ensure `insert` is the same length as `in` to `out`. */ -class TrackRippleRemoveAreaCommand : public UndoCommand { +class TrackRippleRemoveAreaCommand : public UndoCommand +{ public: TrackRippleRemoveAreaCommand(Track* track, const TimeRange& range); @@ -98,7 +99,8 @@ private: }; -class TrackListRippleRemoveAreaCommand : public UndoCommand { +class TrackListRippleRemoveAreaCommand : public UndoCommand +{ public: TrackListRippleRemoveAreaCommand(TrackList* list, rational in, rational out) : list_(list), @@ -134,7 +136,8 @@ private: }; -class TimelineRippleRemoveAreaCommand : public MultiUndoCommand { +class TimelineRippleRemoveAreaCommand : public MultiUndoCommand +{ public: TimelineRippleRemoveAreaCommand(Sequence* timeline, rational in, rational out); @@ -148,7 +151,8 @@ private: }; -class TrackListRippleToolCommand : public UndoCommand { +class TrackListRippleToolCommand : public UndoCommand +{ public: struct RippleInfo { Block* block; @@ -200,7 +204,8 @@ private: }; -class TimelineRippleDeleteGapsAtRegionsCommand : public UndoCommand { +class TimelineRippleDeleteGapsAtRegionsCommand : public UndoCommand +{ public: TimelineRippleDeleteGapsAtRegionsCommand(Sequence* vo, const QVector >& regions) : timeline_(vo), @@ -243,6 +248,34 @@ private: }; +class TimelineShiftCacheCommand : public UndoCommand +{ +public: + TimelineShiftCacheCommand(Sequence* timeline, const rational &from, const rational &to) : + timeline_(timeline), + from_(from), + to_(to) + {} + + virtual Project* GetRelevantProject() const override + { + return timeline_->project(); + } + +protected: + virtual void redo() override; + + virtual void undo() override; + +private: + Sequence* timeline_; + + rational from_; + + rational to_; + +}; + } #endif // TIMELINEUNDORIPPLE_H From 4243f4921e2013ba7de3ec29238de7fc74578b82 Mon Sep 17 00:00:00 2001 From: Pablo Gil Date: Sat, 29 Jan 2022 00:36:38 +0100 Subject: [PATCH 003/114] Icons big cleanup (#1728) * full icon review, simplification and standarization: - all icons share the same template (with grid and guides) - simplified svg code - changed names for better organization: - italic > text-italic - justify-center > align-justify-left - underline > text-underline - updated previous design with Olive icons guideline - created new icon for text-bold in case it is needed - updated design for align-center, right and left to follow Olive icons guideline - created new icons for alignements in case they are needed: - align-justify-all - align-justify-center - align-justify-left - align-justify-right - updated .qrc files - updated all .png files * added missing "mini-map" icon * fixed SVGs docnames and default export-filenames * more cleanup and standarization to recently updated icons: - align-justify-all - align-justify-center - align-justify-left - align-justify-right - text-bold - text-italic - text-underline * changed some unused colors to #212121 in case the files are edited in the future, now they are set to the correct color --- app/ui/style/olive-dark/olive-dark.qrc | 40 +- .../style/olive-dark/png/add-button.128.png | Bin 1454 -> 1438 bytes app/ui/style/olive-dark/png/add-button.16.png | Bin 412 -> 396 bytes app/ui/style/olive-dark/png/add-button.32.png | Bin 510 -> 494 bytes app/ui/style/olive-dark/png/add-button.64.png | Bin 806 -> 790 bytes .../style/olive-dark/png/add-effect.128.png | Bin 1855 -> 1839 bytes app/ui/style/olive-dark/png/add-effect.16.png | Bin 431 -> 415 bytes app/ui/style/olive-dark/png/add-effect.32.png | Bin 573 -> 557 bytes app/ui/style/olive-dark/png/add-effect.64.png | Bin 1023 -> 1007 bytes .../olive-dark/png/add-transition.128.png | Bin 1904 -> 1888 bytes .../olive-dark/png/add-transition.16.png | Bin 465 -> 449 bytes .../olive-dark/png/add-transition.32.png | Bin 641 -> 625 bytes .../olive-dark/png/add-transition.64.png | Bin 1104 -> 1088 bytes .../style/olive-dark/png/align-center.128.png | Bin 375 -> 983 bytes .../style/olive-dark/png/align-center.16.png | Bin 176 -> 272 bytes .../style/olive-dark/png/align-center.32.png | Bin 192 -> 344 bytes .../style/olive-dark/png/align-center.64.png | Bin 256 -> 494 bytes .../olive-dark/png/align-justify-all.128.png | Bin 0 -> 699 bytes .../olive-dark/png/align-justify-all.16.png | Bin 0 -> 258 bytes .../olive-dark/png/align-justify-all.32.png | Bin 0 -> 307 bytes .../olive-dark/png/align-justify-all.64.png | Bin 0 -> 434 bytes .../png/align-justify-center.128.png | Bin 0 -> 809 bytes .../png/align-justify-center.16.png | Bin 0 -> 272 bytes .../png/align-justify-center.32.png | Bin 0 -> 332 bytes .../png/align-justify-center.64.png | Bin 0 -> 487 bytes .../olive-dark/png/align-justify-left.128.png | Bin 0 -> 762 bytes .../olive-dark/png/align-justify-left.16.png | Bin 0 -> 269 bytes .../olive-dark/png/align-justify-left.32.png | Bin 0 -> 324 bytes .../olive-dark/png/align-justify-left.64.png | Bin 0 -> 468 bytes .../png/align-justify-right.128.png | Bin 0 -> 771 bytes .../olive-dark/png/align-justify-right.16.png | Bin 0 -> 265 bytes .../olive-dark/png/align-justify-right.32.png | Bin 0 -> 328 bytes .../olive-dark/png/align-justify-right.64.png | Bin 0 -> 472 bytes .../style/olive-dark/png/align-left.128.png | Bin 364 -> 865 bytes app/ui/style/olive-dark/png/align-left.16.png | Bin 173 -> 271 bytes app/ui/style/olive-dark/png/align-left.32.png | Bin 193 -> 334 bytes app/ui/style/olive-dark/png/align-left.64.png | Bin 252 -> 488 bytes .../style/olive-dark/png/align-right.128.png | Bin 361 -> 897 bytes .../style/olive-dark/png/align-right.16.png | Bin 170 -> 265 bytes .../style/olive-dark/png/align-right.32.png | Bin 189 -> 338 bytes .../style/olive-dark/png/align-right.64.png | Bin 248 -> 481 bytes app/ui/style/olive-dark/png/arrow.128.png | Bin 2000 -> 2290 bytes app/ui/style/olive-dark/png/arrow.16.png | Bin 354 -> 440 bytes app/ui/style/olive-dark/png/arrow.32.png | Bin 540 -> 678 bytes app/ui/style/olive-dark/png/arrow.64.png | Bin 1091 -> 1257 bytes .../style/olive-dark/png/audiosource.128.png | Bin 1571 -> 1555 bytes .../style/olive-dark/png/audiosource.16.png | Bin 371 -> 355 bytes .../style/olive-dark/png/audiosource.32.png | Bin 506 -> 490 bytes .../style/olive-dark/png/audiosource.64.png | Bin 872 -> 856 bytes app/ui/style/olive-dark/png/beam.128.png | Bin 1711 -> 1833 bytes app/ui/style/olive-dark/png/beam.16.png | Bin 320 -> 417 bytes app/ui/style/olive-dark/png/beam.32.png | Bin 493 -> 610 bytes app/ui/style/olive-dark/png/beam.64.png | Bin 868 -> 961 bytes app/ui/style/olive-dark/png/box.128.png | Bin 1216 -> 1200 bytes app/ui/style/olive-dark/png/box.16.png | Bin 349 -> 333 bytes app/ui/style/olive-dark/png/box.32.png | Bin 422 -> 406 bytes app/ui/style/olive-dark/png/box.64.png | Bin 658 -> 642 bytes app/ui/style/olive-dark/png/clock.128.png | Bin 3684 -> 3668 bytes app/ui/style/olive-dark/png/clock.16.png | Bin 584 -> 568 bytes app/ui/style/olive-dark/png/clock.32.png | Bin 969 -> 953 bytes app/ui/style/olive-dark/png/clock.64.png | Bin 1840 -> 1824 bytes app/ui/style/olive-dark/png/diamond.128.png | Bin 1421 -> 1405 bytes app/ui/style/olive-dark/png/diamond.16.png | Bin 380 -> 364 bytes app/ui/style/olive-dark/png/diamond.32.png | Bin 498 -> 482 bytes app/ui/style/olive-dark/png/diamond.64.png | Bin 777 -> 761 bytes app/ui/style/olive-dark/png/dirup.128.png | Bin 1452 -> 1436 bytes app/ui/style/olive-dark/png/dirup.16.png | Bin 423 -> 407 bytes app/ui/style/olive-dark/png/dirup.32.png | Bin 530 -> 514 bytes app/ui/style/olive-dark/png/dirup.64.png | Bin 813 -> 797 bytes app/ui/style/olive-dark/png/error.128.png | Bin 3607 -> 3591 bytes app/ui/style/olive-dark/png/error.16.png | Bin 614 -> 598 bytes app/ui/style/olive-dark/png/error.32.png | Bin 1039 -> 1023 bytes app/ui/style/olive-dark/png/error.64.png | Bin 1873 -> 1857 bytes app/ui/style/olive-dark/png/ff.128.png | Bin 1451 -> 1435 bytes app/ui/style/olive-dark/png/ff.16.png | Bin 383 -> 367 bytes app/ui/style/olive-dark/png/ff.32.png | Bin 569 -> 553 bytes app/ui/style/olive-dark/png/ff.64.png | Bin 820 -> 804 bytes app/ui/style/olive-dark/png/folder.128.png | Bin 818 -> 802 bytes app/ui/style/olive-dark/png/folder.16.png | Bin 349 -> 333 bytes app/ui/style/olive-dark/png/folder.32.png | Bin 388 -> 372 bytes app/ui/style/olive-dark/png/folder.64.png | Bin 525 -> 509 bytes app/ui/style/olive-dark/png/hand.128.png | Bin 3383 -> 3367 bytes app/ui/style/olive-dark/png/hand.16.png | Bin 541 -> 525 bytes app/ui/style/olive-dark/png/hand.32.png | Bin 934 -> 918 bytes app/ui/style/olive-dark/png/hand.64.png | Bin 1709 -> 1693 bytes app/ui/style/olive-dark/png/iconview.128.png | Bin 916 -> 900 bytes app/ui/style/olive-dark/png/iconview.16.png | Bin 398 -> 382 bytes app/ui/style/olive-dark/png/iconview.32.png | Bin 537 -> 521 bytes app/ui/style/olive-dark/png/iconview.64.png | Bin 534 -> 518 bytes .../style/olive-dark/png/imagesource.128.png | Bin 1845 -> 1829 bytes .../style/olive-dark/png/imagesource.16.png | Bin 454 -> 438 bytes .../style/olive-dark/png/imagesource.32.png | Bin 678 -> 662 bytes .../style/olive-dark/png/imagesource.64.png | Bin 1074 -> 1058 bytes app/ui/style/olive-dark/png/italic.128.png | Bin 1227 -> 0 bytes app/ui/style/olive-dark/png/italic.16.png | Bin 268 -> 0 bytes app/ui/style/olive-dark/png/italic.32.png | Bin 385 -> 0 bytes app/ui/style/olive-dark/png/italic.64.png | Bin 633 -> 0 bytes .../olive-dark/png/justify-center.128.png | Bin 364 -> 0 bytes .../olive-dark/png/justify-center.16.png | Bin 176 -> 0 bytes .../olive-dark/png/justify-center.32.png | Bin 190 -> 0 bytes .../olive-dark/png/justify-center.64.png | Bin 247 -> 0 bytes app/ui/style/olive-dark/png/listview.128.png | Bin 831 -> 815 bytes app/ui/style/olive-dark/png/listview.16.png | Bin 333 -> 317 bytes app/ui/style/olive-dark/png/listview.32.png | Bin 422 -> 406 bytes app/ui/style/olive-dark/png/listview.64.png | Bin 516 -> 500 bytes app/ui/style/olive-dark/png/magnet.128.png | Bin 2716 -> 2700 bytes app/ui/style/olive-dark/png/magnet.16.png | Bin 521 -> 505 bytes app/ui/style/olive-dark/png/magnet.32.png | Bin 739 -> 723 bytes app/ui/style/olive-dark/png/magnet.64.png | Bin 1415 -> 1399 bytes app/ui/style/olive-dark/png/minus.128.png | Bin 760 -> 744 bytes app/ui/style/olive-dark/png/minus.16.png | Bin 312 -> 296 bytes app/ui/style/olive-dark/png/minus.32.png | Bin 372 -> 356 bytes app/ui/style/olive-dark/png/minus.64.png | Bin 483 -> 467 bytes app/ui/style/olive-dark/png/new.32.png | Bin 518 -> 517 bytes app/ui/style/olive-dark/png/next.128.png | Bin 1529 -> 1513 bytes app/ui/style/olive-dark/png/next.16.png | Bin 402 -> 386 bytes app/ui/style/olive-dark/png/next.32.png | Bin 579 -> 563 bytes app/ui/style/olive-dark/png/next.64.png | Bin 855 -> 839 bytes app/ui/style/olive-dark/png/nodes_btt.128.png | Bin 1474 -> 1460 bytes app/ui/style/olive-dark/png/nodes_btt.16.png | Bin 420 -> 439 bytes app/ui/style/olive-dark/png/nodes_btt.32.png | Bin 520 -> 552 bytes app/ui/style/olive-dark/png/nodes_btt.64.png | Bin 793 -> 827 bytes app/ui/style/olive-dark/png/open.128.png | Bin 1334 -> 1318 bytes app/ui/style/olive-dark/png/open.16.png | Bin 479 -> 463 bytes app/ui/style/olive-dark/png/open.32.png | Bin 618 -> 602 bytes app/ui/style/olive-dark/png/open.64.png | Bin 826 -> 810 bytes app/ui/style/olive-dark/png/pause.128.png | Bin 791 -> 775 bytes app/ui/style/olive-dark/png/pause.16.png | Bin 311 -> 295 bytes app/ui/style/olive-dark/png/pause.32.png | Bin 336 -> 320 bytes app/ui/style/olive-dark/png/pause.64.png | Bin 484 -> 468 bytes app/ui/style/olive-dark/png/play.128.png | Bin 1307 -> 1291 bytes app/ui/style/olive-dark/png/play.16.png | Bin 371 -> 355 bytes app/ui/style/olive-dark/png/play.32.png | Bin 530 -> 514 bytes app/ui/style/olive-dark/png/play.64.png | Bin 795 -> 779 bytes app/ui/style/olive-dark/png/plus.128.png | Bin 1328 -> 1312 bytes app/ui/style/olive-dark/png/plus.16.png | Bin 403 -> 387 bytes app/ui/style/olive-dark/png/plus.32.png | Bin 478 -> 462 bytes app/ui/style/olive-dark/png/plus.64.png | Bin 743 -> 727 bytes app/ui/style/olive-dark/png/prev.128.png | Bin 1553 -> 1537 bytes app/ui/style/olive-dark/png/prev.16.png | Bin 409 -> 393 bytes app/ui/style/olive-dark/png/prev.32.png | Bin 578 -> 562 bytes app/ui/style/olive-dark/png/prev.64.png | Bin 881 -> 865 bytes app/ui/style/olive-dark/png/razor.128.png | Bin 1404 -> 1388 bytes app/ui/style/olive-dark/png/razor.16.png | Bin 391 -> 375 bytes app/ui/style/olive-dark/png/razor.32.png | Bin 497 -> 481 bytes app/ui/style/olive-dark/png/razor.64.png | Bin 779 -> 763 bytes app/ui/style/olive-dark/png/record.128.png | Bin 1449 -> 1433 bytes app/ui/style/olive-dark/png/record.16.png | Bin 361 -> 345 bytes app/ui/style/olive-dark/png/record.32.png | Bin 491 -> 475 bytes app/ui/style/olive-dark/png/record.64.png | Bin 814 -> 798 bytes app/ui/style/olive-dark/png/redo.128.png | Bin 1573 -> 1557 bytes app/ui/style/olive-dark/png/redo.16.png | Bin 360 -> 344 bytes app/ui/style/olive-dark/png/redo.32.png | Bin 529 -> 513 bytes app/ui/style/olive-dark/png/redo.64.png | Bin 885 -> 869 bytes app/ui/style/olive-dark/png/rew.128.png | Bin 1577 -> 1561 bytes app/ui/style/olive-dark/png/rew.16.png | Bin 389 -> 373 bytes app/ui/style/olive-dark/png/rew.32.png | Bin 553 -> 537 bytes app/ui/style/olive-dark/png/rew.64.png | Bin 848 -> 832 bytes app/ui/style/olive-dark/png/ripple.128.png | Bin 1768 -> 1752 bytes app/ui/style/olive-dark/png/ripple.16.png | Bin 445 -> 429 bytes app/ui/style/olive-dark/png/ripple.32.png | Bin 629 -> 613 bytes app/ui/style/olive-dark/png/ripple.64.png | Bin 986 -> 970 bytes app/ui/style/olive-dark/png/rolling.128.png | Bin 2554 -> 2538 bytes app/ui/style/olive-dark/png/rolling.16.png | Bin 450 -> 434 bytes app/ui/style/olive-dark/png/rolling.32.png | Bin 710 -> 694 bytes app/ui/style/olive-dark/png/rolling.64.png | Bin 1070 -> 1054 bytes app/ui/style/olive-dark/png/save.128.png | Bin 1228 -> 1212 bytes app/ui/style/olive-dark/png/save.16.png | Bin 452 -> 436 bytes app/ui/style/olive-dark/png/save.32.png | Bin 578 -> 562 bytes app/ui/style/olive-dark/png/save.64.png | Bin 759 -> 743 bytes app/ui/style/olive-dark/png/sequence.128.png | Bin 928 -> 912 bytes app/ui/style/olive-dark/png/sequence.16.png | Bin 358 -> 342 bytes app/ui/style/olive-dark/png/sequence.32.png | Bin 366 -> 350 bytes app/ui/style/olive-dark/png/sequence.64.png | Bin 545 -> 529 bytes app/ui/style/olive-dark/png/slide.128.png | Bin 1781 -> 1765 bytes app/ui/style/olive-dark/png/slide.16.png | Bin 429 -> 413 bytes app/ui/style/olive-dark/png/slide.32.png | Bin 610 -> 594 bytes app/ui/style/olive-dark/png/slide.64.png | Bin 996 -> 980 bytes app/ui/style/olive-dark/png/slip.128.png | Bin 1818 -> 1802 bytes app/ui/style/olive-dark/png/slip.16.png | Bin 462 -> 446 bytes app/ui/style/olive-dark/png/slip.32.png | Bin 631 -> 615 bytes app/ui/style/olive-dark/png/slip.64.png | Bin 997 -> 981 bytes app/ui/style/olive-dark/png/text-bold.128.png | Bin 0 -> 2352 bytes app/ui/style/olive-dark/png/text-bold.16.png | Bin 0 -> 504 bytes app/ui/style/olive-dark/png/text-bold.32.png | Bin 0 -> 758 bytes app/ui/style/olive-dark/png/text-bold.64.png | Bin 0 -> 1295 bytes .../style/olive-dark/png/text-italic.128.png | Bin 0 -> 1631 bytes .../style/olive-dark/png/text-italic.16.png | Bin 0 -> 432 bytes .../style/olive-dark/png/text-italic.32.png | Bin 0 -> 532 bytes .../style/olive-dark/png/text-italic.64.png | Bin 0 -> 889 bytes .../olive-dark/png/text-underline.128.png | Bin 0 -> 1623 bytes .../olive-dark/png/text-underline.16.png | Bin 0 -> 402 bytes .../olive-dark/png/text-underline.32.png | Bin 0 -> 518 bytes .../olive-dark/png/text-underline.64.png | Bin 0 -> 896 bytes .../olive-dark/png/transition-tool.128.png | Bin 1152 -> 1136 bytes .../olive-dark/png/transition-tool.16.png | Bin 370 -> 354 bytes .../olive-dark/png/transition-tool.32.png | Bin 440 -> 424 bytes .../olive-dark/png/transition-tool.64.png | Bin 662 -> 646 bytes app/ui/style/olive-dark/png/treeview.128.png | Bin 920 -> 904 bytes app/ui/style/olive-dark/png/treeview.16.png | Bin 332 -> 316 bytes app/ui/style/olive-dark/png/treeview.32.png | Bin 379 -> 363 bytes app/ui/style/olive-dark/png/treeview.64.png | Bin 538 -> 522 bytes app/ui/style/olive-dark/png/tri-down.128.png | Bin 1457 -> 1441 bytes app/ui/style/olive-dark/png/tri-down.16.png | Bin 399 -> 383 bytes app/ui/style/olive-dark/png/tri-down.32.png | Bin 563 -> 547 bytes app/ui/style/olive-dark/png/tri-down.64.png | Bin 837 -> 821 bytes app/ui/style/olive-dark/png/tri-left.128.png | Bin 1422 -> 1406 bytes app/ui/style/olive-dark/png/tri-left.16.png | Bin 357 -> 341 bytes app/ui/style/olive-dark/png/tri-left.32.png | Bin 503 -> 487 bytes app/ui/style/olive-dark/png/tri-left.64.png | Bin 776 -> 760 bytes app/ui/style/olive-dark/png/tri-right.128.png | Bin 1451 -> 1435 bytes app/ui/style/olive-dark/png/tri-right.16.png | Bin 363 -> 347 bytes app/ui/style/olive-dark/png/tri-right.32.png | Bin 505 -> 489 bytes app/ui/style/olive-dark/png/tri-right.64.png | Bin 796 -> 780 bytes app/ui/style/olive-dark/png/tri-up.128.png | Bin 1381 -> 1365 bytes app/ui/style/olive-dark/png/tri-up.16.png | Bin 392 -> 376 bytes app/ui/style/olive-dark/png/tri-up.32.png | Bin 537 -> 521 bytes app/ui/style/olive-dark/png/tri-up.64.png | Bin 832 -> 816 bytes app/ui/style/olive-dark/png/underline.128.png | Bin 1303 -> 0 bytes app/ui/style/olive-dark/png/underline.16.png | Bin 252 -> 0 bytes app/ui/style/olive-dark/png/underline.32.png | Bin 353 -> 0 bytes app/ui/style/olive-dark/png/underline.64.png | Bin 641 -> 0 bytes app/ui/style/olive-dark/png/undo.128.png | Bin 1604 -> 1588 bytes app/ui/style/olive-dark/png/undo.16.png | Bin 360 -> 344 bytes app/ui/style/olive-dark/png/undo.32.png | Bin 523 -> 507 bytes app/ui/style/olive-dark/png/undo.64.png | Bin 905 -> 889 bytes .../style/olive-dark/png/videosource.128.png | Bin 1281 -> 1265 bytes .../style/olive-dark/png/videosource.16.png | Bin 412 -> 396 bytes .../style/olive-dark/png/videosource.32.png | Bin 496 -> 480 bytes .../style/olive-dark/png/videosource.64.png | Bin 780 -> 764 bytes app/ui/style/olive-dark/png/zoomin.128.png | Bin 3775 -> 3759 bytes app/ui/style/olive-dark/png/zoomin.16.png | Bin 581 -> 565 bytes app/ui/style/olive-dark/png/zoomin.32.png | Bin 1021 -> 1005 bytes app/ui/style/olive-dark/png/zoomin.64.png | Bin 1921 -> 1905 bytes app/ui/style/olive-dark/png/zoomout.128.png | Bin 3580 -> 3564 bytes app/ui/style/olive-dark/png/zoomout.16.png | Bin 557 -> 541 bytes app/ui/style/olive-dark/png/zoomout.32.png | Bin 996 -> 980 bytes app/ui/style/olive-dark/png/zoomout.64.png | Bin 1828 -> 1812 bytes app/ui/style/olive-dark/svg/add-button.svg | 783 +- app/ui/style/olive-dark/svg/add-effect.svg | 785 +- .../style/olive-dark/svg/add-transition.svg | 785 +- app/ui/style/olive-dark/svg/align-center.svg | 174 +- .../olive-dark/svg/align-justify-all.svg | 169 + .../olive-dark/svg/align-justify-center.svg | 170 + .../olive-dark/svg/align-justify-left.svg | 170 + .../olive-dark/svg/align-justify-right.svg | 170 + app/ui/style/olive-dark/svg/align-left.svg | 174 +- app/ui/style/olive-dark/svg/align-right.svg | 174 +- app/ui/style/olive-dark/svg/arrow.svg | 162 +- app/ui/style/olive-dark/svg/audiosource.svg | 783 +- app/ui/style/olive-dark/svg/beam.svg | 878 +- app/ui/style/olive-dark/svg/box.svg | 91 +- app/ui/style/olive-dark/svg/clock.svg | 781 +- app/ui/style/olive-dark/svg/copy.svg | 802 +- app/ui/style/olive-dark/svg/diamond.svg | 783 +- app/ui/style/olive-dark/svg/dirup.svg | 10995 +-------------- app/ui/style/olive-dark/svg/error.svg | 10995 +-------------- app/ui/style/olive-dark/svg/export.svg | 801 +- app/ui/style/olive-dark/svg/ff.svg | 785 +- app/ui/style/olive-dark/svg/filter.svg | 780 +- app/ui/style/olive-dark/svg/folder.svg | 10997 +-------------- app/ui/style/olive-dark/svg/hand.svg | 782 +- app/ui/style/olive-dark/svg/iconview.svg | 781 +- app/ui/style/olive-dark/svg/imagesource.svg | 10997 +-------------- app/ui/style/olive-dark/svg/import.svg | 801 +- app/ui/style/olive-dark/svg/italic.svg | 3 - .../style/olive-dark/svg/justify-center.svg | 3 - app/ui/style/olive-dark/svg/listview.svg | 783 +- app/ui/style/olive-dark/svg/magnet.svg | 10995 +-------------- app/ui/style/olive-dark/svg/minus.svg | 785 +- app/ui/style/olive-dark/svg/new.svg | 11000 +-------------- app/ui/style/olive-dark/svg/next.svg | 783 +- app/ui/style/olive-dark/svg/nodes_btt.svg | 846 +- app/ui/style/olive-dark/svg/nodes_ltr.svg | 780 +- app/ui/style/olive-dark/svg/nodes_rtl.svg | 780 +- app/ui/style/olive-dark/svg/nodes_ttb.svg | 780 +- app/ui/style/olive-dark/svg/open.svg | 11001 +-------------- app/ui/style/olive-dark/svg/paste.svg | 778 +- app/ui/style/olive-dark/svg/pause.svg | 781 +- app/ui/style/olive-dark/svg/play.svg | 783 +- app/ui/style/olive-dark/svg/plus.svg | 785 +- app/ui/style/olive-dark/svg/prev.svg | 783 +- app/ui/style/olive-dark/svg/razor.svg | 779 +- app/ui/style/olive-dark/svg/record.svg | 781 +- app/ui/style/olive-dark/svg/redo.svg | 89 +- app/ui/style/olive-dark/svg/rew.svg | 785 +- app/ui/style/olive-dark/svg/ripple.svg | 10999 +-------------- app/ui/style/olive-dark/svg/rolling.svg | 11003 +-------------- app/ui/style/olive-dark/svg/save.svg | 93 +- app/ui/style/olive-dark/svg/sequence.svg | 10995 +-------------- app/ui/style/olive-dark/svg/slide.svg | 11003 +-------------- app/ui/style/olive-dark/svg/slip.svg | 10999 +-------------- app/ui/style/olive-dark/svg/smooth_edges.svg | 780 +- app/ui/style/olive-dark/svg/text-bold.svg | 154 + app/ui/style/olive-dark/svg/text-italic.svg | 151 + .../style/olive-dark/svg/text-underline.svg | 162 + .../style/olive-dark/svg/transition-tool.svg | 783 +- app/ui/style/olive-dark/svg/treeview.svg | 781 +- app/ui/style/olive-dark/svg/tri-down.svg | 781 +- app/ui/style/olive-dark/svg/tri-left.svg | 781 +- app/ui/style/olive-dark/svg/tri-right.svg | 781 +- app/ui/style/olive-dark/svg/tri-up.svg | 781 +- app/ui/style/olive-dark/svg/underline.svg | 3 - app/ui/style/olive-dark/svg/undo.svg | 89 +- app/ui/style/olive-dark/svg/videosource.svg | 783 +- app/ui/style/olive-dark/svg/zoomin.svg | 785 +- app/ui/style/olive-dark/svg/zoomout.svg | 785 +- app/ui/style/olive-light/olive-light.qrc | 40 +- .../style/olive-light/png/add-button.128.png | Bin 1756 -> 1751 bytes .../style/olive-light/png/add-button.16.png | Bin 457 -> 446 bytes .../style/olive-light/png/add-button.32.png | Bin 563 -> 543 bytes .../style/olive-light/png/add-button.64.png | Bin 954 -> 957 bytes .../style/olive-light/png/add-effect.128.png | Bin 2278 -> 2248 bytes .../style/olive-light/png/add-effect.16.png | Bin 499 -> 472 bytes .../style/olive-light/png/add-effect.32.png | Bin 629 -> 616 bytes .../style/olive-light/png/add-effect.64.png | Bin 1176 -> 1177 bytes .../olive-light/png/add-transition.128.png | Bin 2309 -> 2294 bytes .../olive-light/png/add-transition.16.png | Bin 539 -> 523 bytes .../olive-light/png/add-transition.32.png | Bin 749 -> 732 bytes .../olive-light/png/add-transition.64.png | Bin 1266 -> 1250 bytes .../olive-light/png/align-center.128.png | Bin 379 -> 1121 bytes .../style/olive-light/png/align-center.16.png | Bin 176 -> 272 bytes .../style/olive-light/png/align-center.32.png | Bin 196 -> 348 bytes .../style/olive-light/png/align-center.64.png | Bin 260 -> 533 bytes .../olive-light/png/align-justify-all.128.png | Bin 0 -> 804 bytes .../olive-light/png/align-justify-all.16.png | Bin 0 -> 258 bytes .../olive-light/png/align-justify-all.32.png | Bin 0 -> 308 bytes .../olive-light/png/align-justify-all.64.png | Bin 0 -> 470 bytes .../png/align-justify-center.128.png | Bin 0 -> 923 bytes .../png/align-justify-center.16.png | Bin 0 -> 272 bytes .../png/align-justify-center.32.png | Bin 0 -> 334 bytes .../png/align-justify-center.64.png | Bin 0 -> 527 bytes .../png/align-justify-left.128.png | Bin 0 -> 876 bytes .../olive-light/png/align-justify-left.16.png | Bin 0 -> 269 bytes .../olive-light/png/align-justify-left.32.png | Bin 0 -> 325 bytes .../olive-light/png/align-justify-left.64.png | Bin 0 -> 504 bytes .../png/align-justify-right.128.png | Bin 0 -> 876 bytes .../png/align-justify-right.16.png | Bin 0 -> 265 bytes .../png/align-justify-right.32.png | Bin 0 -> 328 bytes .../png/align-justify-right.64.png | Bin 0 -> 508 bytes .../style/olive-light/png/align-left.128.png | Bin 368 -> 979 bytes .../style/olive-light/png/align-left.16.png | Bin 173 -> 271 bytes .../style/olive-light/png/align-left.32.png | Bin 197 -> 336 bytes .../style/olive-light/png/align-left.64.png | Bin 255 -> 519 bytes .../style/olive-light/png/align-right.128.png | Bin 362 -> 1003 bytes .../style/olive-light/png/align-right.16.png | Bin 169 -> 265 bytes .../style/olive-light/png/align-right.32.png | Bin 190 -> 338 bytes .../style/olive-light/png/align-right.64.png | Bin 250 -> 518 bytes app/ui/style/olive-light/png/arrow.128.png | Bin 2545 -> 2874 bytes app/ui/style/olive-light/png/arrow.16.png | Bin 470 -> 499 bytes app/ui/style/olive-light/png/arrow.32.png | Bin 693 -> 838 bytes app/ui/style/olive-light/png/arrow.64.png | Bin 1476 -> 1577 bytes .../style/olive-light/png/audiosource.128.png | Bin 1832 -> 1816 bytes .../style/olive-light/png/audiosource.16.png | Bin 414 -> 391 bytes .../style/olive-light/png/audiosource.32.png | Bin 591 -> 591 bytes .../style/olive-light/png/audiosource.64.png | Bin 1021 -> 1008 bytes app/ui/style/olive-light/png/beam.128.png | Bin 2228 -> 2288 bytes app/ui/style/olive-light/png/beam.16.png | Bin 370 -> 496 bytes app/ui/style/olive-light/png/beam.32.png | Bin 648 -> 723 bytes app/ui/style/olive-light/png/beam.64.png | Bin 1137 -> 1227 bytes app/ui/style/olive-light/png/box.128.png | Bin 1347 -> 1380 bytes app/ui/style/olive-light/png/box.16.png | Bin 388 -> 361 bytes app/ui/style/olive-light/png/box.32.png | Bin 432 -> 424 bytes app/ui/style/olive-light/png/box.64.png | Bin 701 -> 701 bytes app/ui/style/olive-light/png/clock.128.png | Bin 4809 -> 4885 bytes app/ui/style/olive-light/png/clock.16.png | Bin 725 -> 706 bytes app/ui/style/olive-light/png/clock.32.png | Bin 1288 -> 1257 bytes app/ui/style/olive-light/png/clock.64.png | Bin 2432 -> 2468 bytes app/ui/style/olive-light/png/copy.128.png | Bin 1011 -> 1017 bytes app/ui/style/olive-light/png/copy.16.png | Bin 428 -> 418 bytes app/ui/style/olive-light/png/copy.32.png | Bin 406 -> 416 bytes app/ui/style/olive-light/png/copy.64.png | Bin 625 -> 643 bytes app/ui/style/olive-light/png/diamond.128.png | Bin 1643 -> 1638 bytes app/ui/style/olive-light/png/diamond.16.png | Bin 458 -> 439 bytes app/ui/style/olive-light/png/diamond.32.png | Bin 618 -> 531 bytes app/ui/style/olive-light/png/diamond.64.png | Bin 917 -> 916 bytes app/ui/style/olive-light/png/dirup.128.png | Bin 1644 -> 1626 bytes app/ui/style/olive-light/png/dirup.16.png | Bin 476 -> 458 bytes app/ui/style/olive-light/png/dirup.32.png | Bin 590 -> 576 bytes app/ui/style/olive-light/png/dirup.64.png | Bin 948 -> 936 bytes app/ui/style/olive-light/png/error.128.png | Bin 3607 -> 3591 bytes app/ui/style/olive-light/png/error.16.png | Bin 614 -> 598 bytes app/ui/style/olive-light/png/error.32.png | Bin 1039 -> 1023 bytes app/ui/style/olive-light/png/error.64.png | Bin 1873 -> 1857 bytes app/ui/style/olive-light/png/export.128.png | Bin 1763 -> 1796 bytes app/ui/style/olive-light/png/export.16.png | Bin 524 -> 523 bytes app/ui/style/olive-light/png/export.32.png | Bin 685 -> 680 bytes app/ui/style/olive-light/png/export.64.png | Bin 944 -> 965 bytes app/ui/style/olive-light/png/ff.128.png | Bin 1666 -> 1660 bytes app/ui/style/olive-light/png/ff.16.png | Bin 438 -> 424 bytes app/ui/style/olive-light/png/ff.32.png | Bin 643 -> 633 bytes app/ui/style/olive-light/png/ff.64.png | Bin 920 -> 925 bytes app/ui/style/olive-light/png/filter.128.png | Bin 1344 -> 1393 bytes app/ui/style/olive-light/png/filter.16.png | Bin 405 -> 393 bytes app/ui/style/olive-light/png/filter.32.png | Bin 515 -> 515 bytes app/ui/style/olive-light/png/filter.64.png | Bin 814 -> 823 bytes app/ui/style/olive-light/png/folder.128.png | Bin 908 -> 891 bytes app/ui/style/olive-light/png/folder.16.png | Bin 373 -> 362 bytes app/ui/style/olive-light/png/folder.32.png | Bin 400 -> 390 bytes app/ui/style/olive-light/png/folder.64.png | Bin 566 -> 562 bytes app/ui/style/olive-light/png/hand.128.png | Bin 4284 -> 4320 bytes app/ui/style/olive-light/png/hand.16.png | Bin 659 -> 643 bytes app/ui/style/olive-light/png/hand.32.png | Bin 1191 -> 1163 bytes app/ui/style/olive-light/png/hand.64.png | Bin 2208 -> 2210 bytes app/ui/style/olive-light/png/iconview.128.png | Bin 1017 -> 1007 bytes app/ui/style/olive-light/png/iconview.16.png | Bin 448 -> 423 bytes app/ui/style/olive-light/png/iconview.32.png | Bin 629 -> 595 bytes app/ui/style/olive-light/png/iconview.64.png | Bin 566 -> 548 bytes .../style/olive-light/png/imagesource.128.png | Bin 2290 -> 2288 bytes .../style/olive-light/png/imagesource.16.png | Bin 524 -> 506 bytes .../style/olive-light/png/imagesource.32.png | Bin 775 -> 765 bytes .../style/olive-light/png/imagesource.64.png | Bin 1284 -> 1276 bytes app/ui/style/olive-light/png/import.128.png | Bin 1850 -> 1865 bytes app/ui/style/olive-light/png/import.16.png | Bin 548 -> 555 bytes app/ui/style/olive-light/png/import.32.png | Bin 721 -> 711 bytes app/ui/style/olive-light/png/import.64.png | Bin 1020 -> 1049 bytes app/ui/style/olive-light/png/italic.128.png | Bin 1287 -> 0 bytes app/ui/style/olive-light/png/italic.16.png | Bin 352 -> 0 bytes app/ui/style/olive-light/png/italic.32.png | Bin 468 -> 0 bytes app/ui/style/olive-light/png/italic.64.png | Bin 755 -> 0 bytes .../olive-light/png/justify-center.128.png | Bin 368 -> 0 bytes .../olive-light/png/justify-center.16.png | Bin 176 -> 0 bytes .../olive-light/png/justify-center.32.png | Bin 194 -> 0 bytes .../olive-light/png/justify-center.64.png | Bin 251 -> 0 bytes app/ui/style/olive-light/png/listview.128.png | Bin 931 -> 920 bytes app/ui/style/olive-light/png/listview.16.png | Bin 356 -> 339 bytes app/ui/style/olive-light/png/listview.32.png | Bin 451 -> 444 bytes app/ui/style/olive-light/png/listview.64.png | Bin 550 -> 533 bytes app/ui/style/olive-light/png/magnet.128.png | Bin 3389 -> 3426 bytes app/ui/style/olive-light/png/magnet.16.png | Bin 675 -> 647 bytes app/ui/style/olive-light/png/magnet.32.png | Bin 957 -> 942 bytes app/ui/style/olive-light/png/magnet.64.png | Bin 1795 -> 1784 bytes app/ui/style/olive-light/png/minus.128.png | Bin 923 -> 917 bytes app/ui/style/olive-light/png/minus.16.png | Bin 323 -> 308 bytes app/ui/style/olive-light/png/minus.32.png | Bin 403 -> 386 bytes app/ui/style/olive-light/png/minus.64.png | Bin 562 -> 563 bytes app/ui/style/olive-light/png/new.128.png | Bin 1294 -> 1297 bytes app/ui/style/olive-light/png/new.16.png | Bin 442 -> 449 bytes app/ui/style/olive-light/png/new.32.png | Bin 547 -> 538 bytes app/ui/style/olive-light/png/new.64.png | Bin 798 -> 803 bytes app/ui/style/olive-light/png/next.128.png | Bin 1844 -> 1828 bytes app/ui/style/olive-light/png/next.16.png | Bin 479 -> 465 bytes app/ui/style/olive-light/png/next.32.png | Bin 652 -> 641 bytes app/ui/style/olive-light/png/next.64.png | Bin 1017 -> 1026 bytes .../style/olive-light/png/nodes_btt.128.png | Bin 1719 -> 1892 bytes app/ui/style/olive-light/png/nodes_btt.16.png | Bin 477 -> 489 bytes app/ui/style/olive-light/png/nodes_btt.32.png | Bin 602 -> 644 bytes app/ui/style/olive-light/png/nodes_btt.64.png | Bin 883 -> 984 bytes .../style/olive-light/png/nodes_ltr.128.png | Bin 1912 -> 1892 bytes app/ui/style/olive-light/png/nodes_ltr.16.png | Bin 495 -> 489 bytes app/ui/style/olive-light/png/nodes_ltr.32.png | Bin 611 -> 644 bytes app/ui/style/olive-light/png/nodes_ltr.64.png | Bin 967 -> 984 bytes .../style/olive-light/png/nodes_rtl.128.png | Bin 1945 -> 1917 bytes app/ui/style/olive-light/png/nodes_rtl.16.png | Bin 479 -> 481 bytes app/ui/style/olive-light/png/nodes_rtl.32.png | Bin 661 -> 668 bytes app/ui/style/olive-light/png/nodes_rtl.64.png | Bin 960 -> 986 bytes .../style/olive-light/png/nodes_ttb.128.png | Bin 1718 -> 1739 bytes app/ui/style/olive-light/png/nodes_ttb.16.png | Bin 516 -> 520 bytes app/ui/style/olive-light/png/nodes_ttb.32.png | Bin 605 -> 621 bytes app/ui/style/olive-light/png/nodes_ttb.64.png | Bin 906 -> 920 bytes app/ui/style/olive-light/png/open.128.png | Bin 1503 -> 1484 bytes app/ui/style/olive-light/png/open.16.png | Bin 542 -> 533 bytes app/ui/style/olive-light/png/open.32.png | Bin 706 -> 688 bytes app/ui/style/olive-light/png/open.64.png | Bin 935 -> 922 bytes app/ui/style/olive-light/png/paste.128.png | Bin 1051 -> 1078 bytes app/ui/style/olive-light/png/paste.16.png | Bin 460 -> 466 bytes app/ui/style/olive-light/png/paste.32.png | Bin 546 -> 536 bytes app/ui/style/olive-light/png/paste.64.png | Bin 616 -> 632 bytes app/ui/style/olive-light/png/pause.128.png | Bin 875 -> 890 bytes app/ui/style/olive-light/png/pause.16.png | Bin 331 -> 311 bytes app/ui/style/olive-light/png/pause.32.png | Bin 337 -> 326 bytes app/ui/style/olive-light/png/pause.64.png | Bin 516 -> 508 bytes app/ui/style/olive-light/png/play.128.png | Bin 1540 -> 1516 bytes app/ui/style/olive-light/png/play.16.png | Bin 420 -> 409 bytes app/ui/style/olive-light/png/play.32.png | Bin 600 -> 579 bytes app/ui/style/olive-light/png/play.64.png | Bin 907 -> 910 bytes app/ui/style/olive-light/png/plus.128.png | Bin 1621 -> 1617 bytes app/ui/style/olive-light/png/plus.16.png | Bin 446 -> 436 bytes app/ui/style/olive-light/png/plus.32.png | Bin 531 -> 515 bytes app/ui/style/olive-light/png/plus.64.png | Bin 885 -> 890 bytes app/ui/style/olive-light/png/prev.128.png | Bin 1874 -> 1881 bytes app/ui/style/olive-light/png/prev.16.png | Bin 461 -> 453 bytes app/ui/style/olive-light/png/prev.32.png | Bin 653 -> 649 bytes app/ui/style/olive-light/png/prev.64.png | Bin 1034 -> 1043 bytes app/ui/style/olive-light/png/razor.128.png | Bin 1699 -> 1683 bytes app/ui/style/olive-light/png/razor.16.png | Bin 454 -> 438 bytes app/ui/style/olive-light/png/razor.32.png | Bin 615 -> 598 bytes app/ui/style/olive-light/png/razor.64.png | Bin 976 -> 960 bytes app/ui/style/olive-light/png/record.128.png | Bin 1840 -> 1813 bytes app/ui/style/olive-light/png/record.16.png | Bin 377 -> 368 bytes app/ui/style/olive-light/png/record.32.png | Bin 582 -> 571 bytes app/ui/style/olive-light/png/record.64.png | Bin 962 -> 973 bytes app/ui/style/olive-light/png/redo.128.png | Bin 1916 -> 1842 bytes app/ui/style/olive-light/png/redo.16.png | Bin 461 -> 448 bytes app/ui/style/olive-light/png/redo.32.png | Bin 701 -> 678 bytes app/ui/style/olive-light/png/redo.64.png | Bin 1086 -> 1062 bytes app/ui/style/olive-light/png/rew.128.png | Bin 1832 -> 1821 bytes app/ui/style/olive-light/png/rew.16.png | Bin 456 -> 455 bytes app/ui/style/olive-light/png/rew.32.png | Bin 675 -> 660 bytes app/ui/style/olive-light/png/rew.64.png | Bin 981 -> 987 bytes app/ui/style/olive-light/png/ripple.128.png | Bin 2129 -> 2131 bytes app/ui/style/olive-light/png/ripple.16.png | Bin 510 -> 483 bytes app/ui/style/olive-light/png/ripple.32.png | Bin 760 -> 739 bytes app/ui/style/olive-light/png/ripple.64.png | Bin 1164 -> 1170 bytes app/ui/style/olive-light/png/rolling.128.png | Bin 3143 -> 3101 bytes app/ui/style/olive-light/png/rolling.16.png | Bin 529 -> 505 bytes app/ui/style/olive-light/png/rolling.32.png | Bin 825 -> 798 bytes app/ui/style/olive-light/png/rolling.64.png | Bin 1336 -> 1362 bytes app/ui/style/olive-light/png/save.128.png | Bin 1385 -> 1370 bytes app/ui/style/olive-light/png/save.16.png | Bin 509 -> 503 bytes app/ui/style/olive-light/png/save.32.png | Bin 646 -> 643 bytes app/ui/style/olive-light/png/save.64.png | Bin 860 -> 847 bytes app/ui/style/olive-light/png/sequence.128.png | Bin 1040 -> 1063 bytes app/ui/style/olive-light/png/sequence.16.png | Bin 373 -> 356 bytes app/ui/style/olive-light/png/sequence.32.png | Bin 380 -> 372 bytes app/ui/style/olive-light/png/sequence.64.png | Bin 586 -> 577 bytes app/ui/style/olive-light/png/slide.128.png | Bin 2102 -> 2079 bytes app/ui/style/olive-light/png/slide.16.png | Bin 512 -> 500 bytes app/ui/style/olive-light/png/slide.32.png | Bin 693 -> 674 bytes app/ui/style/olive-light/png/slide.64.png | Bin 1193 -> 1169 bytes app/ui/style/olive-light/png/slip.128.png | Bin 2150 -> 2143 bytes app/ui/style/olive-light/png/slip.16.png | Bin 545 -> 530 bytes app/ui/style/olive-light/png/slip.32.png | Bin 711 -> 690 bytes app/ui/style/olive-light/png/slip.64.png | Bin 1190 -> 1189 bytes .../olive-light/png/smooth_edges.128.png | Bin 2786 -> 2845 bytes .../style/olive-light/png/smooth_edges.16.png | Bin 543 -> 538 bytes .../style/olive-light/png/smooth_edges.32.png | Bin 838 -> 833 bytes .../style/olive-light/png/smooth_edges.64.png | Bin 1463 -> 1480 bytes .../style/olive-light/png/text-bold.128.png | Bin 0 -> 2897 bytes app/ui/style/olive-light/png/text-bold.16.png | Bin 0 -> 588 bytes app/ui/style/olive-light/png/text-bold.32.png | Bin 0 -> 891 bytes app/ui/style/olive-light/png/text-bold.64.png | Bin 0 -> 1610 bytes .../style/olive-light/png/text-italic.128.png | Bin 0 -> 2001 bytes .../style/olive-light/png/text-italic.16.png | Bin 0 -> 491 bytes .../style/olive-light/png/text-italic.32.png | Bin 0 -> 621 bytes .../style/olive-light/png/text-italic.64.png | Bin 0 -> 1076 bytes .../olive-light/png/text-underline.128.png | Bin 0 -> 1975 bytes .../olive-light/png/text-underline.16.png | Bin 0 -> 450 bytes .../olive-light/png/text-underline.32.png | Bin 0 -> 611 bytes .../olive-light/png/text-underline.64.png | Bin 0 -> 1042 bytes .../olive-light/png/transition-tool.128.png | Bin 1251 -> 1221 bytes .../olive-light/png/transition-tool.16.png | Bin 387 -> 369 bytes .../olive-light/png/transition-tool.32.png | Bin 460 -> 438 bytes .../olive-light/png/transition-tool.64.png | Bin 717 -> 699 bytes app/ui/style/olive-light/png/treeview.128.png | Bin 1033 -> 1020 bytes app/ui/style/olive-light/png/treeview.16.png | Bin 345 -> 331 bytes app/ui/style/olive-light/png/treeview.32.png | Bin 396 -> 385 bytes app/ui/style/olive-light/png/treeview.64.png | Bin 593 -> 591 bytes app/ui/style/olive-light/png/tri-down.128.png | Bin 1565 -> 1582 bytes app/ui/style/olive-light/png/tri-down.16.png | Bin 509 -> 492 bytes app/ui/style/olive-light/png/tri-down.32.png | Bin 648 -> 634 bytes app/ui/style/olive-light/png/tri-down.64.png | Bin 997 -> 978 bytes app/ui/style/olive-light/png/tri-left.128.png | Bin 1574 -> 1605 bytes app/ui/style/olive-light/png/tri-left.16.png | Bin 498 -> 474 bytes app/ui/style/olive-light/png/tri-left.32.png | Bin 593 -> 603 bytes app/ui/style/olive-light/png/tri-left.64.png | Bin 958 -> 922 bytes .../style/olive-light/png/tri-right.128.png | Bin 1710 -> 1665 bytes app/ui/style/olive-light/png/tri-right.16.png | Bin 513 -> 504 bytes app/ui/style/olive-light/png/tri-right.32.png | Bin 604 -> 587 bytes app/ui/style/olive-light/png/tri-right.64.png | Bin 928 -> 926 bytes app/ui/style/olive-light/png/tri-up.128.png | Bin 1513 -> 1488 bytes app/ui/style/olive-light/png/tri-up.16.png | Bin 487 -> 475 bytes app/ui/style/olive-light/png/tri-up.32.png | Bin 595 -> 602 bytes app/ui/style/olive-light/png/tri-up.64.png | Bin 947 -> 925 bytes .../style/olive-light/png/underline.128.png | Bin 1619 -> 0 bytes app/ui/style/olive-light/png/underline.16.png | Bin 295 -> 0 bytes app/ui/style/olive-light/png/underline.32.png | Bin 453 -> 0 bytes app/ui/style/olive-light/png/underline.64.png | Bin 833 -> 0 bytes app/ui/style/olive-light/png/undo.128.png | Bin 1995 -> 1984 bytes app/ui/style/olive-light/png/undo.16.png | Bin 447 -> 434 bytes app/ui/style/olive-light/png/undo.32.png | Bin 694 -> 675 bytes app/ui/style/olive-light/png/undo.64.png | Bin 1135 -> 1119 bytes .../style/olive-light/png/videosource.128.png | Bin 1547 -> 1524 bytes .../style/olive-light/png/videosource.16.png | Bin 437 -> 424 bytes .../style/olive-light/png/videosource.32.png | Bin 555 -> 556 bytes .../style/olive-light/png/videosource.64.png | Bin 903 -> 891 bytes app/ui/style/olive-light/png/zoomin.128.png | Bin 4830 -> 4871 bytes app/ui/style/olive-light/png/zoomin.16.png | Bin 695 -> 680 bytes app/ui/style/olive-light/png/zoomin.32.png | Bin 1258 -> 1266 bytes app/ui/style/olive-light/png/zoomin.64.png | Bin 2418 -> 2412 bytes app/ui/style/olive-light/png/zoomout.128.png | Bin 4594 -> 4679 bytes app/ui/style/olive-light/png/zoomout.16.png | Bin 658 -> 636 bytes app/ui/style/olive-light/png/zoomout.32.png | Bin 1214 -> 1216 bytes app/ui/style/olive-light/png/zoomout.64.png | Bin 2306 -> 2303 bytes app/ui/style/olive-light/svg/add-button.svg | 793 +- app/ui/style/olive-light/svg/add-effect.svg | 799 +- .../style/olive-light/svg/add-transition.svg | 793 +- app/ui/style/olive-light/svg/align-center.svg | 174 +- .../olive-light/svg/align-justify-all.svg | 169 + .../olive-light/svg/align-justify-center.svg | 170 + .../olive-light/svg/align-justify-left.svg | 170 + .../olive-light/svg/align-justify-right.svg | 170 + app/ui/style/olive-light/svg/align-left.svg | 174 +- app/ui/style/olive-light/svg/align-right.svg | 174 +- app/ui/style/olive-light/svg/arrow.svg | 162 +- app/ui/style/olive-light/svg/audiosource.svg | 791 +- app/ui/style/olive-light/svg/beam.svg | 878 +- app/ui/style/olive-light/svg/box.svg | 115 +- app/ui/style/olive-light/svg/clock.svg | 793 +- app/ui/style/olive-light/svg/copy.svg | 808 +- app/ui/style/olive-light/svg/diamond.svg | 791 +- app/ui/style/olive-light/svg/dirup.svg | 11003 +-------------- app/ui/style/olive-light/svg/error.svg | 10999 +-------------- app/ui/style/olive-light/svg/export.svg | 807 +- app/ui/style/olive-light/svg/ff.svg | 793 +- app/ui/style/olive-light/svg/filter.svg | 786 +- app/ui/style/olive-light/svg/folder.svg | 11005 +-------------- app/ui/style/olive-light/svg/hand.svg | 794 +- app/ui/style/olive-light/svg/iconview.svg | 797 +- app/ui/style/olive-light/svg/imagesource.svg | 11009 +-------------- app/ui/style/olive-light/svg/import.svg | 807 +- app/ui/style/olive-light/svg/italic.svg | 3 - .../style/olive-light/svg/justify-center.svg | 3 - app/ui/style/olive-light/svg/listview.svg | 795 +- app/ui/style/olive-light/svg/magnet.svg | 11015 +--------------- app/ui/style/olive-light/svg/map.svg | 4 +- app/ui/style/olive-light/svg/minus.svg | 793 +- app/ui/style/olive-light/svg/new.svg | 11006 +-------------- app/ui/style/olive-light/svg/next.svg | 793 +- app/ui/style/olive-light/svg/nodes_btt.svg | 852 +- app/ui/style/olive-light/svg/nodes_ltr.svg | 792 +- app/ui/style/olive-light/svg/nodes_rtl.svg | 792 +- app/ui/style/olive-light/svg/nodes_ttb.svg | 792 +- app/ui/style/olive-light/svg/open.svg | 11011 +-------------- app/ui/style/olive-light/svg/paste.svg | 788 +- app/ui/style/olive-light/svg/pause.svg | 793 +- app/ui/style/olive-light/svg/play.svg | 791 +- app/ui/style/olive-light/svg/plus.svg | 793 +- app/ui/style/olive-light/svg/prev.svg | 793 +- app/ui/style/olive-light/svg/razor.svg | 791 +- app/ui/style/olive-light/svg/record.svg | 791 +- app/ui/style/olive-light/svg/redo.svg | 99 +- app/ui/style/olive-light/svg/rew.svg | 793 +- app/ui/style/olive-light/svg/ripple.svg | 11009 +-------------- app/ui/style/olive-light/svg/rolling.svg | 11013 +-------------- app/ui/style/olive-light/svg/save.svg | 103 +- app/ui/style/olive-light/svg/sequence.svg | 11009 +-------------- app/ui/style/olive-light/svg/slide.svg | 11011 +-------------- app/ui/style/olive-light/svg/slip.svg | 11011 +-------------- app/ui/style/olive-light/svg/smooth_edges.svg | 786 +- app/ui/style/olive-light/svg/text-bold.svg | 154 + app/ui/style/olive-light/svg/text-italic.svg | 151 + .../style/olive-light/svg/text-underline.svg | 162 + .../style/olive-light/svg/transition-tool.svg | 795 +- app/ui/style/olive-light/svg/treeview.svg | 797 +- app/ui/style/olive-light/svg/tri-down.svg | 791 +- app/ui/style/olive-light/svg/tri-left.svg | 791 +- app/ui/style/olive-light/svg/tri-right.svg | 791 +- app/ui/style/olive-light/svg/tri-up.svg | 791 +- app/ui/style/olive-light/svg/underline.svg | 3 - app/ui/style/olive-light/svg/undo.svg | 99 +- app/ui/style/olive-light/svg/videosource.svg | 791 +- app/ui/style/olive-light/svg/zoomin.svg | 793 +- app/ui/style/olive-light/svg/zoomout.svg | 793 +- 654 files changed, 12068 insertions(+), 318366 deletions(-) create mode 100644 app/ui/style/olive-dark/png/align-justify-all.128.png create mode 100644 app/ui/style/olive-dark/png/align-justify-all.16.png create mode 100644 app/ui/style/olive-dark/png/align-justify-all.32.png create mode 100644 app/ui/style/olive-dark/png/align-justify-all.64.png create mode 100644 app/ui/style/olive-dark/png/align-justify-center.128.png create mode 100644 app/ui/style/olive-dark/png/align-justify-center.16.png create mode 100644 app/ui/style/olive-dark/png/align-justify-center.32.png create mode 100644 app/ui/style/olive-dark/png/align-justify-center.64.png create mode 100644 app/ui/style/olive-dark/png/align-justify-left.128.png create mode 100644 app/ui/style/olive-dark/png/align-justify-left.16.png create mode 100644 app/ui/style/olive-dark/png/align-justify-left.32.png create mode 100644 app/ui/style/olive-dark/png/align-justify-left.64.png create mode 100644 app/ui/style/olive-dark/png/align-justify-right.128.png create mode 100644 app/ui/style/olive-dark/png/align-justify-right.16.png create mode 100644 app/ui/style/olive-dark/png/align-justify-right.32.png create mode 100644 app/ui/style/olive-dark/png/align-justify-right.64.png delete mode 100644 app/ui/style/olive-dark/png/italic.128.png delete mode 100644 app/ui/style/olive-dark/png/italic.16.png delete mode 100644 app/ui/style/olive-dark/png/italic.32.png delete mode 100644 app/ui/style/olive-dark/png/italic.64.png delete mode 100644 app/ui/style/olive-dark/png/justify-center.128.png delete mode 100644 app/ui/style/olive-dark/png/justify-center.16.png delete mode 100644 app/ui/style/olive-dark/png/justify-center.32.png delete mode 100644 app/ui/style/olive-dark/png/justify-center.64.png create mode 100644 app/ui/style/olive-dark/png/text-bold.128.png create mode 100644 app/ui/style/olive-dark/png/text-bold.16.png create mode 100644 app/ui/style/olive-dark/png/text-bold.32.png create mode 100644 app/ui/style/olive-dark/png/text-bold.64.png create mode 100644 app/ui/style/olive-dark/png/text-italic.128.png create mode 100644 app/ui/style/olive-dark/png/text-italic.16.png create mode 100644 app/ui/style/olive-dark/png/text-italic.32.png create mode 100644 app/ui/style/olive-dark/png/text-italic.64.png create mode 100644 app/ui/style/olive-dark/png/text-underline.128.png create mode 100644 app/ui/style/olive-dark/png/text-underline.16.png create mode 100644 app/ui/style/olive-dark/png/text-underline.32.png create mode 100644 app/ui/style/olive-dark/png/text-underline.64.png delete mode 100644 app/ui/style/olive-dark/png/underline.128.png delete mode 100644 app/ui/style/olive-dark/png/underline.16.png delete mode 100644 app/ui/style/olive-dark/png/underline.32.png delete mode 100644 app/ui/style/olive-dark/png/underline.64.png create mode 100644 app/ui/style/olive-dark/svg/align-justify-all.svg create mode 100644 app/ui/style/olive-dark/svg/align-justify-center.svg create mode 100644 app/ui/style/olive-dark/svg/align-justify-left.svg create mode 100644 app/ui/style/olive-dark/svg/align-justify-right.svg delete mode 100644 app/ui/style/olive-dark/svg/italic.svg delete mode 100644 app/ui/style/olive-dark/svg/justify-center.svg create mode 100644 app/ui/style/olive-dark/svg/text-bold.svg create mode 100644 app/ui/style/olive-dark/svg/text-italic.svg create mode 100644 app/ui/style/olive-dark/svg/text-underline.svg delete mode 100644 app/ui/style/olive-dark/svg/underline.svg create mode 100644 app/ui/style/olive-light/png/align-justify-all.128.png create mode 100644 app/ui/style/olive-light/png/align-justify-all.16.png create mode 100644 app/ui/style/olive-light/png/align-justify-all.32.png create mode 100644 app/ui/style/olive-light/png/align-justify-all.64.png create mode 100644 app/ui/style/olive-light/png/align-justify-center.128.png create mode 100644 app/ui/style/olive-light/png/align-justify-center.16.png create mode 100644 app/ui/style/olive-light/png/align-justify-center.32.png create mode 100644 app/ui/style/olive-light/png/align-justify-center.64.png create mode 100644 app/ui/style/olive-light/png/align-justify-left.128.png create mode 100644 app/ui/style/olive-light/png/align-justify-left.16.png create mode 100644 app/ui/style/olive-light/png/align-justify-left.32.png create mode 100644 app/ui/style/olive-light/png/align-justify-left.64.png create mode 100644 app/ui/style/olive-light/png/align-justify-right.128.png create mode 100644 app/ui/style/olive-light/png/align-justify-right.16.png create mode 100644 app/ui/style/olive-light/png/align-justify-right.32.png create mode 100644 app/ui/style/olive-light/png/align-justify-right.64.png delete mode 100644 app/ui/style/olive-light/png/italic.128.png delete mode 100644 app/ui/style/olive-light/png/italic.16.png delete mode 100644 app/ui/style/olive-light/png/italic.32.png delete mode 100644 app/ui/style/olive-light/png/italic.64.png delete mode 100644 app/ui/style/olive-light/png/justify-center.128.png delete mode 100644 app/ui/style/olive-light/png/justify-center.16.png delete mode 100644 app/ui/style/olive-light/png/justify-center.32.png delete mode 100644 app/ui/style/olive-light/png/justify-center.64.png create mode 100644 app/ui/style/olive-light/png/text-bold.128.png create mode 100644 app/ui/style/olive-light/png/text-bold.16.png create mode 100644 app/ui/style/olive-light/png/text-bold.32.png create mode 100644 app/ui/style/olive-light/png/text-bold.64.png create mode 100644 app/ui/style/olive-light/png/text-italic.128.png create mode 100644 app/ui/style/olive-light/png/text-italic.16.png create mode 100644 app/ui/style/olive-light/png/text-italic.32.png create mode 100644 app/ui/style/olive-light/png/text-italic.64.png create mode 100644 app/ui/style/olive-light/png/text-underline.128.png create mode 100644 app/ui/style/olive-light/png/text-underline.16.png create mode 100644 app/ui/style/olive-light/png/text-underline.32.png create mode 100644 app/ui/style/olive-light/png/text-underline.64.png delete mode 100644 app/ui/style/olive-light/png/underline.128.png delete mode 100644 app/ui/style/olive-light/png/underline.16.png delete mode 100644 app/ui/style/olive-light/png/underline.32.png delete mode 100644 app/ui/style/olive-light/png/underline.64.png create mode 100644 app/ui/style/olive-light/svg/align-justify-all.svg create mode 100644 app/ui/style/olive-light/svg/align-justify-center.svg create mode 100644 app/ui/style/olive-light/svg/align-justify-left.svg create mode 100644 app/ui/style/olive-light/svg/align-justify-right.svg delete mode 100644 app/ui/style/olive-light/svg/italic.svg delete mode 100644 app/ui/style/olive-light/svg/justify-center.svg create mode 100644 app/ui/style/olive-light/svg/text-bold.svg create mode 100644 app/ui/style/olive-light/svg/text-italic.svg create mode 100644 app/ui/style/olive-light/svg/text-underline.svg delete mode 100644 app/ui/style/olive-light/svg/underline.svg diff --git a/app/ui/style/olive-dark/olive-dark.qrc b/app/ui/style/olive-dark/olive-dark.qrc index cf8b1381e..b9938f5fa 100644 --- a/app/ui/style/olive-dark/olive-dark.qrc +++ b/app/ui/style/olive-dark/olive-dark.qrc @@ -18,6 +18,22 @@ png/align-center.32.png png/align-center.64.png png/align-center.128.png + png/align-justify-all.16.png + png/align-justify-all.32.png + png/align-justify-all.64.png + png/align-justify-all.128.png + png/align-justify-center.16.png + png/align-justify-center.32.png + png/align-justify-center.64.png + png/align-justify-center.128.png + png/align-justify-left.16.png + png/align-justify-left.32.png + png/align-justify-left.64.png + png/align-justify-left.128.png + png/align-justify-right.16.png + png/align-justify-right.32.png + png/align-justify-right.64.png + png/align-justify-right.128.png png/align-left.16.png png/align-left.32.png png/align-left.64.png @@ -94,14 +110,6 @@ png/import.32.png png/import.64.png png/import.128.png - png/italic.16.png - png/italic.32.png - png/italic.64.png - png/italic.128.png - png/justify-center.16.png - png/justify-center.32.png - png/justify-center.64.png - png/justify-center.128.png png/listview.16.png png/listview.32.png png/listview.64.png @@ -210,6 +218,18 @@ png/smooth_edges.32.png png/smooth_edges.64.png png/smooth_edges.128.png + png/text-bold.16.png + png/text-bold.32.png + png/text-bold.64.png + png/text-bold.128.png + png/text-italic.16.png + png/text-italic.32.png + png/text-italic.64.png + png/text-italic.128.png + png/text-underline.16.png + png/text-underline.32.png + png/text-underline.64.png + png/text-underline.128.png png/transition-tool.16.png png/transition-tool.32.png png/transition-tool.64.png @@ -234,10 +254,6 @@ png/tri-up.32.png png/tri-up.64.png png/tri-up.128.png - png/underline.16.png - png/underline.32.png - png/underline.64.png - png/underline.128.png png/undo.16.png png/undo.32.png png/undo.64.png diff --git a/app/ui/style/olive-dark/png/add-button.128.png b/app/ui/style/olive-dark/png/add-button.128.png index 8800e818630e902fd53564cd34c4d15e9985e544..d01ba424409ee197a420fd1a40258235ad7c700f 100644 GIT binary patch delta 10 RcmZ3-J&${W%0`naRsa;^1A71f delta 24 ecmbQoy^ec=3NK5slV=DA5Y%v_bZk_tWd#6GxCUMT diff --git a/app/ui/style/olive-dark/png/add-button.16.png b/app/ui/style/olive-dark/png/add-button.16.png index bcf4d7aac0e8f0d37b1f7fea9ebe17ab28140e2c..49d371674b99490249d6b9b3b406323bfcee76dc 100644 GIT binary patch delta 29 icmbQk+`~LUMToP&BeIx*fq4T6GpZlqU%SyQj1d5F?FZff delta 45 wcmeBSp2IvrMTw=@$uool2x>S|Iv5xjI14-?iy0W0H-a$Z*XFmL8_mKP0rofx%>V!Z diff --git a/app/ui/style/olive-dark/png/add-button.32.png b/app/ui/style/olive-dark/png/add-button.32.png index a0c7049135afa77d7e1c1fca193f51910c35c6f8..2fdf3f73b7c444256637d4a985fea626c0857d2a 100644 GIT binary patch delta 29 icmeyz{Em5oiV$akM`SSr1A8I}Gfq9cW7|fz9gF~otqF|) delta 45 xcmaFI{EvBpiV{n)lV=DA5Y%v_bTBY5a29w(7BeugCxI}dMb*sP8_jkw0sstl3)KJs diff --git a/app/ui/style/olive-dark/png/add-button.64.png b/app/ui/style/olive-dark/png/add-button.64.png index a2f82c46281646a61b1f127cc8e408ca37939c32..f93c005646e1f0b532eee8aa1b67191e88ae7155 100644 GIT binary patch delta 29 icmZ3+HjQn9iV$akM`SSr1K(i~W;~w1B4wl71111{kO^7< delta 45 xcmbQnwv26piV{n)lV=DA5Y%v_bTBY5a29w(7BevL9RXp+soH$f8_gat0RZzI3h4j< diff --git a/app/ui/style/olive-dark/png/add-effect.128.png b/app/ui/style/olive-dark/png/add-effect.128.png index 88c0b58b5a7ec7c81d03709e457591781c89cbe3..f6f1399ac15c3c685f6144812c557b6de70775f8 100644 GIT binary patch delta 10 Rcmdnbx1Mi;%0?4zb^sM=12zBv delta 24 ecmZ3_x1Vo<3NK5slV=DA5Y%v_bZk`QV+R0JZUz|u diff --git a/app/ui/style/olive-dark/png/add-effect.16.png b/app/ui/style/olive-dark/png/add-effect.16.png index fbf7994cb0f921ae4080d6dd2b70934a2fa11cf3..c0c94a13b5ba74779a148803835ec59c1b30be68 100644 GIT binary patch delta 29 icmZ3_JfC@jiV$akM`SSr1M>zDW>i1IzjmWrCL;iLI|vs5 delta 45 xcmbQwyqvX^CoiV{n)lV=DA5Y%v_bTBY5a29w(7BeugCxI}dMb*sP8_m8m0s!{o3zPr= diff --git a/app/ui/style/olive-dark/png/add-effect.64.png b/app/ui/style/olive-dark/png/add-effect.64.png index 7b16cb66f76b744df7ecbed43053e23953514c10..df22bf68643b789afc038d390e0ca10b152332f7 100644 GIT binary patch delta 29 icmey*{+@k;iV$akM`SSr1K(i~W;~w1B4wl7PG$g*@d@Yv delta 45 xcmaFQ{-1qzDW>i1IzjmWrHzNRj?+ASW delta 45 xcmX@ee35yAiV{n)lV=DA5Y%v_bTBY5a29w(7Bes~ZvS|Iv5xjI14-?iy0W$lR%i!qH5;tjb_$N0QYtZ;s5{u diff --git a/app/ui/style/olive-dark/png/add-transition.64.png b/app/ui/style/olive-dark/png/add-transition.64.png index 0f2b1ba3d93827e7f7c4999a81af9bac7dde03ab..b89bb5203bef6c866e72e8888b994db2552736eb 100644 GIT binary patch delta 29 icmcb>ae!ljiV$akM`SSr1K(i~W;~w1B4wi+7YhJ|f(YIK delta 45 wcmX@Wae-rkiV{n)lV=DA5Y%v_bTBY5a29w(7BevL9RXp+soH$f8_l>_005o}Z2$lO diff --git a/app/ui/style/olive-dark/png/align-center.128.png b/app/ui/style/olive-dark/png/align-center.128.png index 2ff9d691fa887b17c13161683fc95afc614c60fb..5e485d3bc46281985be5bbfcecc897f15db1010f 100644 GIT binary patch delta 924 zcmey)be(;IiV$akM`SSrgKRqpGxk6Im^#r-qh6%MHKN3^v?L?Hh`~3ps3bE_A*i%C zJHKrE=`%AK7#NH}^1=C~MaiiQ86_nJR{HwM`MJ6IdBu9=nc11SsVSL>dih1^`XHWu zNMc@ketc$feqP*sjR_14%&eX+jv*Cu-rn7qEA1%I`mmgfX9w%yozVhUnv1PNrMv2{ zwi!2{yW6}#ETrL16C=9~`x3^PjOpJhPS4!?bAQB=GRwoZnfd8{OhBhFFogQ7)t~YF z=j0{&lisP+PWV#y)^XvH^gHo7~&3XfY zBL>OOJsalo{SQje`CrC*-bnbtkNPD)-8|Bt@6^0#GSn}VY_-|dlrqF^13xmHeJbQ0b z&E-{JmF|3_cZ&T<+@*gvw4)FmM;At^5c%Nio?@?%nyst zPhgn(o4@6}tus@|J9`1U?>w9VJO4Y>gH>Gp#|+eT?~w3vrrr+fsEDXH8<(>25ko9%-CGY+* zKjRA60c5TF$2@OA(OLP)tN%BsZ_xSs*a#F#AEe53(&~?$o6PXg^i9N>p1JCbhq7;M zoB;~nmg^gm4UNm@v8;&NZ*LX;pV63+>-zitb64vd);`FMD%ai-@b}+~S-<%UtSf51 z$RmXu!~chkf`6CVZJ4OW*!4v|V;wMDT$w~{N=`X1_6vD!{{SRV!>Vzo{y^yd`_c7n z{I#dA|0$07`unEsbEj_o&PO>^KMcdd7;#Z<;DB QGI}5ZPgg&ebxsLQ03o!b1poj5 literal 375 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zys-db#zO5=Kn8mY-s=h diff --git a/app/ui/style/olive-dark/png/align-center.16.png b/app/ui/style/olive-dark/png/align-center.16.png index 87bcdc7ee6d3ec52c8c663b10c4ad9567a68b0c5..9be8f962a5123dd171d7694a5b9ab707bc373bba 100644 GIT binary patch delta 208 zcmdnMIDu(`iV$akM`SSr1M>zDW>i1IzjmUVM!iUhYeb1-X-P(Y5rc1HQAuW=LQrXO zc7ECR(`RNfFfbT{uQ&Tb%_413-^+7!S zki@+7{P@h|{JgmN8WVup?L1u^Lo9le6BY;<7#SEC{Q3XCo|T!onX|L%yn&ICo3TOQ ztENWwo)=6khaU4ND<`vTI#9sbe6gf~t1Zrofk9}82=Cd?52S%cF?hQAxvXn z?EJFrr_an}U|=u?$p`0`7A2=LWR#Q?Sn2C0=jZ0;=N0RfXJ%*Srlw>j>g5-u>w|du zA&GhE`SF>_`FU~kH6{SHw|TlahD5Z!y=KVOVj$4^u-@iKm4x;Ar)AZ8*8Gd7cT~5g z1tvQ1Tx@v1`qEi}8ONKqZ~nodxa9!p%k c%OT9Tt=2p+KYjT^ppzIpUHx3vIVCg!0OLh;WdHyG delta 127 zcmcb?bbxV!iV{n)lV=DA5Y%v_bTBY5a29w(7Betd^MNqqnQaT3Cz@#l*?PJ-hD5Z! zy{0I{puod?Q0D*t;tLOEa^%Dk d-k@O%qyJ+8QD?C|Q-Q`ac)I$ztaD0e0st33D_Q^m diff --git a/app/ui/style/olive-dark/png/align-center.64.png b/app/ui/style/olive-dark/png/align-center.64.png index c73ac422fab57f030de16c583955431f257019c3..4c0d6afc3a307b7ae9c511a30c2355a67007f93b 100644 GIT binary patch delta 432 zcmZo*ddECLMToP&BeIx*f$uN~Gak=hkuuRuqh6%MHKN3^v?L?Hh`~3ps3bE_A*i%C zJHKrE=`%AK7#NH}^1=C~MaiiQ86_nJR{HwM`MJ6IdBu9=nc11SsVSL>dih1^`XHWu zNMc@ketc$feqP*sjR_14j53}sjv*Cu-rm}nd)Pq0?cwq*nnupgJdS+CsbU!?(>Bw#;CVqR5SvQ4r^KO6RT64hq!<|z1x3P`-5BBJs zKL0Q2T0`_l`2(l_e!q5=)#B~!4S|Iv5xjI14-?iy0WoWI&j4`Jswe6U{X0Ydu{YLn`LH zy|t0I#XyAB(eCf}9IJ*0OQI*FCpA5FJ(hGW>h+Bqk?dD^0^pc|A>`T1#`X8b&zyN{ zomVep;vgGf48aTx0W;UvzyF{0d-4LtR}Hfun1P|8>p$~9(NAG)E10vOn1Mk{e7~@d Wfaz0@em4zld zrRT?ICg0riASaboxu>wvs})g@9}b#`IBu_ zc6t|Ce_dp8^1aIbNqba&n(-X&59WJ!kKwV!J(WoHpOaDwPw79*Df2Y*oY$6E@z!!d zHnU9If76qn?q5G9nLBw+m6_xF_)k`C_UfnKq+h#Y!z{Dz=l#c9?9F$p^soKTS=IJx zmc4)XoAm2{7K$zZ_cQC1J7F+I~$7|pRV|^%YYAujFd-H2f!&?^aheoqD zzrM*Z`_29!1O57UT>nCgnPv95o7s2pr(gaYb71X**Cub*J~+(2c9PBUrw^2Gr`j)G z_fTDqJ-+#Wl?)Hamp~9BuitWJz8!=6F9wy1>>B>^47ClfzA#>3U*RXez@oO{(HF+9 z%j_CHV9p^R=MuYyhde|t14G4eZpF{b`43FAWAOaKc<* z2DJ@~zA$oKVu$Iz_tELZpO?%9OZXjxY8yU5ZG|`hWGTb|kfjh8Xw)_|ePIOZZqUn* Wocc|3{UpOmkXfFtelF{r5}E)e;Tnek literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/align-justify-all.16.png b/app/ui/style/olive-dark/png/align-justify-all.16.png new file mode 100644 index 0000000000000000000000000000000000000000..0abdca0323ad05911064de87e6d982ae5ec48800 GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9G08$g&*{RsbBprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesNKNR#WBR9H#uQ}fPs;Lfx(~u|La+qnVUH~tIiu38Mzq*zG`Y@ jUz}(l#m2*PSc!)rI75W@&+~R^pk4+~S3j3^P6~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Akes6Els#W5tJ_3f2~ybTTlE*I@Z7>_anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesQrPbi(^Q|oVPbN3LY{LU^pnO$!HqDKE+W}uQ@2ALFUy0HufWG z0-TrHZ}9xP9iVZcJ|T@yB{gi(;mldz4lu|xzFnmMYoB@n^SPx{+q#nbD6+y%KC z%s}ymkT;A6RjV1kF?ddz(qOy5b^|*|eB}-1Chu4zld zrRT?ICgEaktG3V`_jfGbnMA#n0^UYYu+BQeb=8FU0%G(7#(kVSB zUp5wUi!kUKI420+d3ccJ8kgU_t9##f`#+z0fA`h7TYjqpo#7yQ`4;oD%DSmfawlE) zj8mzsd*!(CRKLpo$u*vzGG{GYpUsz-*HAfczUofDPkJYh&ayu=d8c>LU#tJL>e{b9-SSG##Ya2^d!E(zW!C4vo3tnLm*0h; zkn4YHcb!;R)~z3v^y>clqqnx295^k^(_$xgxlMj=dYJb*-e+ca6E%+n5^M@PH^JPzWHbftM{&LIqrvChrsZWw) z_}t2-JNM4&nqMJP!}srXp#jjFAW%@J!*SF8C&Qh|{0>4t8J?bGcd&CP{lqwdKVWW6 z!=oq6BI@!BEPgVyo@CeXvvWxN#Mm{7KVU))L^lJ&14eGAZ~k@+-=8o~aItf!gz98? z!W;t8cod;=GJn8~nubL{Ggaha`YRH?HcePN_hHlIh2l9pml<3?v4_3CfB%*MZ$QDt z%+HI?uI>Hgxq6!Yg+2B4*>}?$4*g{I{r!Er*&+MCbJqXt&%Cw&zew|owU@5^-~R5o zofC7&Ir$fL@03j(p8jdXA#hecFVdQ&MBb@0I(Ne2LJ#7 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/align-justify-center.16.png b/app/ui/style/olive-dark/png/align-justify-center.16.png new file mode 100644 index 0000000000000000000000000000000000000000..cf25af89b0e43f4b710917123ad4346575f70bad GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9G08$g&*{RsbBprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesNK%f#WBR9H#uQ}fPs;Lfx(~u|La+qnVUH~tIiu38Mzq*zG`Y@ yUz}(l#m2*P!N7ry<~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesJ+V5#W5tJ_3f37oDBvdEf4=&w(uoCkGW+zeeU5Is!0ncYOov; z5ZtrgtGxe!?4P-H2D!T+qUT~i&d+_~Yz7sdw7r)n>f2(oI^4|;g-QUFY{;qjocw2op&=m}x Lu6{1-oD!ManMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq_xf)5S5QV$Rze8*>jEh`3%{y+zZ;`I*PD4;oU37pF9SIVm&m zU~Bf$1=5q{896ShB;5-wbb4zld zrRT?ICgEaktG3V_a!@MgF5^WF9Yfjj~wCFjPVEKY}v+Evnvo9=M z`kYTA`~gD&t4i05r0E?~%ibDB-0b=PeC6ZbwKH!--u|oxbcTcI;Y+;73Tq}mshzal zGfuT~=QqENC(f(bPpa|#R4LJx?`@VhkKwV!K98c=Pn;*MR^8vC{&_;m^e1@|ZSlI& zCcX`aAJqF4{eA!YnD8$DqRU2{QU539Cx56en)`Rg*;%&CGV6ZEKiYDCcDu^^XaCeQ zBtx$Mv5QT$FWYQya(w0f_|3`JjTqzBZ%~do_U6V`pN7I#*@s4H$JeDY)x;;d@94R? zF?%M%ckMSE(+#c5bcGY9{|)E*_38P#2TN{p7W|O2{OxFCy?feoraadC%e%HW@ynM? zei9tRH*a(Mo8v1oKM40XZ-1~~j-46kRS>xSxOKw6m&_kLivs`Vyv@!F`XwCHqe< zL4JW%ZNsB4j9r)6HT>ik7=SrkK#rIE0)<+L#S9D&I>ep2_6IEFFUa}$>({+X%`aP? zP1mYk&R-Dq8OVRhJm>nBef!FPF+4Y2yZ-%Ly8~O!%J0TaR{Fkv4bmKU8K`-uXw9tX sgZ0{1*dz7;&5&akub1HgT72cBbVFVdQ&MBb@0B<8m*Z=?k literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/align-justify-left.16.png b/app/ui/style/olive-dark/png/align-justify-left.16.png new file mode 100644 index 0000000000000000000000000000000000000000..521e0d4a1e27d68d0c7417693e70e9e5cc13d1f1 GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9G08$g&*{RsbBprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesNLGr#WBR9H#uQ}fPs;Lfx(~u|La+qnVUH~tIiu38Mzq*zG`Y@ vUz}(l#m2*Pr1hYro7*vt7&e|72?mCI0TJHaW^QgkV;DSL{an^LB{Ts53g=Rf literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/align-justify-left.32.png b/app/ui/style/olive-dark/png/align-justify-left.32.png new file mode 100644 index 0000000000000000000000000000000000000000..15f35769afd4336bfa6b8738882339b8a5f6c169 GIT binary patch literal 324 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?5GL=a}2dU(e+prB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesJ+P3#W5tJ_3acxAqNKmmTKFk<0tlXpV^%v_t>tG$#0?8f^%Fm z`pjmpTsy06fAY%?Lo)~dDd%P~W}MBj5SM5?WoctLGmkrKrOKkf ze}dWR1oNi`f%6p)HoTt0WGQ!}taiG8g~RT1No>~M=7EanMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq{|9)5S5QV$Rze8z&wz5O8~#eu;Y>+p7j6jiadnT)Y#UWv@6m zyy12!y2K|qiM1+z$F-iV(l<8Sdq~|B5uKiTlgW4kd)=&iFaF9MV72hOTyk1ojJd+B zo~iEj{k1Et3r@6e;N&}36aRTa)vV7+CJnKFcduFYLRacQz#_(&+4mRCU9>%e!Tl2Z z%y5QT#q$zF)d}Xfcdxg8ox4zld zrRT?ICgEaktG3V`_jkzL@5^WFjWfd+mDJ^I1mOG(XD&3da%p+@Q ztFYaH@dA@jYr$FcX{z48S*qd{w0GJnMNuc4E+d&a3( zPJHt7g=^sydCz_7KPNr8yh$g%-*QJa^P1PcbWWB|D)-du`>8tTOzx!EN#9Rz`t!ze zK{m5Y+keHAPxr6y72f4pbagXl)&EKBlYbcRJX4qEd)D~C!&(0={eExW>HBHfS9{0v z0kNN-mrVToW|sYxM_26EKYLSUcHlH4_d}amn_u5#c-_!iAb0lW*PMoYX0bz+Ch6BV zGv=}Bw0zDuw=SLe&8Gie2V?5)i`E1bGt2CAH?!|hPrv>-=D^wqxl+~IKR!5yd)gg) z`apB{**dq_!~QmW_nQ7!$?yQZ2?9C&;!e+&^B<6{WtjAWdCGGB20Mq+UkoppLzeRg z%&~JQ{KateC9}vfFemXBgDa4;gdd`pf#J^M)(JmfG8eeZH>mt#c>0og0e`?;JBD8j zSAojl2DCyrGwd7!e=)GWWQOVfF7wyv#2d38PNy?}F>KbpWL`1H?!X(aeOIjZ@Eh#T zs%VHAN;Ac1v$yn L)z4*}Q$iB}HX=&G literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/align-justify-right.16.png b/app/ui/style/olive-dark/png/align-justify-right.16.png new file mode 100644 index 0000000000000000000000000000000000000000..534142e4c2c11b52eb3f0513e9f10135df9a5b93 GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9G08$g&*{RsbBprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesNLMt#WBR9H#uQ}fPs;Lfx(~u|La+qnVUH~tIiu38Mzq*zG`Y@ rUz}(l#m2*P!QcQZN6T3SPG*Mhj3T^K`z7Z9jbQL}^>bP0l+XkK#gbAh literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/align-justify-right.32.png b/app/ui/style/olive-dark/png/align-justify-right.32.png new file mode 100644 index 0000000000000000000000000000000000000000..581f44225e1e9e632ac0135e0ef7027d94675d3d GIT binary patch literal 328 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?5GL=a}2dU(e+prB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesJ+b7#W5tJ_3af$J_iF4*NeY(n~u(i6gPftv{}L|ka^Y=gN)f- zN34}Mf4_XBb-(fdhjU&x2(IAHU+0jYcKK_AWCmA%b@$Az3|GCI`wua*eS5B%YrD;b zq0~WEAdvkED0jU8 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/align-justify-right.64.png b/app/ui/style/olive-dark/png/align-justify-right.64.png new file mode 100644 index 0000000000000000000000000000000000000000..96ac8bdcddc7865901ac658a9e35c1caee40504a GIT binary patch literal 472 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq{|D)5S5QV$Rze8*>jE2sm8S->zxX{Jh}U2Mwvii&GfCf0UVb zur+Jx0_n-(4vaoRhX1uSMfYf{JZN4r(f8uRUF+Br*z6knmzh`XW&Oc+?y||?KO_0CA{D$#c!@?WPP1D~n-e6Yo zyu|Q^@n@s$0l5Tzi7s1(ij#5;wm`+a3U3&4zld zrRT?ICgEaktG3V`F!#rU}5w-{SH7D#~TJ)StuzW$g*>#VzrY{0s z>|{PAYQYf0*r~K^!$hGccPqWa3e&#*es$yK#o2F;8Go)*2fE`x*qdql687KU@A=8@ zCN}w;-2d!*LW0dd@}t*%DYK-RDSNb z{kASVE?^eJ@kjMuML+*vKPJ4(wlLqv4F1elQ1h(5_jX-l7vpcXQ2q^r7*+=^;n7ilUaXtBjdmoag^Bd&<*m#5JMlqmC=gK}D+uqCwv9#f%g}|l#?y?yZ`3|c3*I3g~IQ0|n6Xu?^k=8#MlC!S?U2|jB*2(+^+tS{` zgdb}?l|I2P5w3avK+uO7*J8Qu1=u;f7ke&!gYVt^8fJ)n3=bIDoy_VMIN2R=?*9F{ r`gy>M%zY-W4nJ zys-db#zO5=Kn8kLD3ID2}opOjeZ^FQDFSvR4Z{^qZdl|N~2&gw$FdpGl@M9=s>JWCA z!|(`22xt%(RGj(2Uyz;ltY}~N0(|PhM!+=5J+^n4Lz?;n8)wcu{Zp?A)fIRh#@@D0 UpwuSGkOgF|r>mdKI;Vst08e~oH2?qr diff --git a/app/ui/style/olive-dark/png/align-left.16.png b/app/ui/style/olive-dark/png/align-left.16.png index e3e67ed53785b9ecf410509d5af8d3024aac9cb5..a1878be922b726c4e75d8391eee66fff8de2b15e 100644 GIT binary patch delta 207 zcmZ3>*v~XUMToP&BeIx*fq4T6GpZlqUpvuFqh6%MHKN3^v?L?Hh`~3ps3bE_A*i%C zJHKrE=`%AK7#NH}^1=C~MaiiQ86_nJR{HwM`MJ6IdBu9=nc11SsVSL>dih1^`XHWu zNMc@ketc$feqP*sjR`>Qww^AIAr`&K2@3=aj0_A6{`~)6&&tf)%-LCW-oVJn&B!3| zRZ}DTk(Ps!Zf?goV%T~n7#v`AyUZxUQzOB^(6vK^H~#IxB%nzQp00i_>zopr0KghY AF#rGn delta 108 zcmeBYTFW>=MTw=@$uool2x>S|Iv5xjI14-?iy0VX+d-JI|LMoniDnx1TAnVBAr`&K zfBygfU(d$HAgnrzojpOtlt)5RQgY%?Wka3|2R(S26KC)-H1Y_r_WWAo1vHDn)78&q Iol`;+0E>noHvj+t diff --git a/app/ui/style/olive-dark/png/align-left.32.png b/app/ui/style/olive-dark/png/align-left.32.png index 72e438c8d902d05591120960631b24d640c35884..dbc5d2a6a68a58ece910529579bcc4474a628355 100644 GIT binary patch delta 270 zcmX@ec#dg;iV$akM`SSr1A8I}Gfq9cW7|YGje3z1*N76w(vpn)A_m{YqLR!!g`m>n z?EJFrr_an}U|=u?$p`0`7A2=LWR#Q?Sn2C0=jZ0;=N0RfXJ%*Srlw>j>g5-u>w|du zA&GhE`SF>_`FU~kH6{SH*Lb=(hD5Z!owkv;!9aldy(ClH!eqS{GrIc{6FLJN1PUD& zbvS7>t@ldTp5)J8fBes3%j=BF0qN&r8tVboqNW}MBqs-H=IrbP0l+XkK=Iv(_ delta 128 zcmX@dbdYg^iV{n)lV=DA5Y%v_bTBY5a29w(7Betd^MNqqnQaT3Cz@#l+j+V;hD5Z! zy|z)1!GVLx@yEaFV|;&3DDL#-RXKRkbJ3#fF@6jVlWJ<&bE;=wk9J^q@Q3fu6(HSE d-@tHy;rwF((N!}VWPs)~c)I$ztaD0e0sxL)Ev5hf diff --git a/app/ui/style/olive-dark/png/align-left.64.png b/app/ui/style/olive-dark/png/align-left.64.png index 57382910a4c938ba6803be3d8c9e827944a3365b..905d4989fd9fc08d604d00de63d754dfd70021c8 100644 GIT binary patch delta 426 zcmV;b0agC|0q6seBoYa5NLh0L01m?d01m?e$8V@)kwz$g6m&&cbU}4=Xm4@=O<{6$ zX>K4=b#rTPcDKvSnE(I)Gjv5*bW?A2a${uxXmoUNIxjC{Z*6UFZgVboX=`b1Wn^h# zE^l&YFL!BcX)jb^Zf9>_X=870UY{tC0003NNkl&8&z{lk2GZ<53zCj(iVl}$c>!kN4R{`UqrZ0p zK7q?LP2bxey9TVqzXPZIyA5>(&f6wD1%I4*yyBtNG;a^12E69qWj9@IQ3DPoYQWd< zTa44y7B%2Pdtp49E3LLWT?5v)LE9x(jb<^jRko_WCVXIIJt!g)Pgg*?D{U6Lg2qCy^!&HaFt`vJHg;C?`- zS{{(i{ebOZg*+ged4nWL3RTDh+z(i}AAtJ-?gtE4Ee~)%VDv*Pl6Lb0%)?_@ U%EdPgBLDyZ07*qoM6N<$f)|Rpy#N3J delta 188 zcmaFC{D*OZiV{n)lV=DA5Y%v_bTBY5a29w(7BeuE$$&89@6qbc(hIA&m&y7RA`fpPJtzn}FT zQ6*l#XIwt7o>OW8-wH_xW?)zmQ_ugQ{(vH?O8))P0;aq9Z@%dQx{blp)z4*}Q$iB} D(WpT= diff --git a/app/ui/style/olive-dark/png/align-right.128.png b/app/ui/style/olive-dark/png/align-right.128.png index 0bf940ad507b7f18dfc45624e7a70d094097dbd9..ef6a93e819ba1ef4e357cf97b0f0fd9769ce85bf 100644 GIT binary patch delta 838 zcmaFK)W|+TMToP&BeIx*LAD))8T+4pOr7YaQ7=;B8d2g{T9T1p#NeA)RFave5L8;6 zonN;7^qH9q3=GB~`QZH0qU2PDjFOT9D}DXs{M_99ykfob%gb3Tpm2Mh(QDqQ-lzKu&O(hlF=djHS7I9$^2@Ei7i>78?`f}EJNb)+@8$2R`tRm3e74y?sYL(f3z$y zYR0mc<>$F~sU0Z%VDG)F_UFb#Xa7m>s?;3c$Jc+_EAdBVyH!tQa51aJywCf)Qti*i zU24DfpT)NMl%@UUUcTh(e-?^O`xkR|^H)Z$_v`)BUo#h+JD>8JdBd0Io4zn=frMT%hun*wf9?|diaq=7 z<}T$AsI0HG@|Iul>ff&tpw$ometlU}%b>@4{9_zfz227nc6Wc(GUTzx%l?A-97I2m zuSs>lQyEdR?y%PYh#UHX5@ zQlN0r{R6myVAVHX8(4nJ zys-db#zO5=Kn8bP0l+XkKG;3y) diff --git a/app/ui/style/olive-dark/png/align-right.16.png b/app/ui/style/olive-dark/png/align-right.16.png index 14ae24b4136fd3a7aa3e56ea152fdd1530fc91b0..204b73b6319cb85998639abcedfb7b4bad6e7107 100644 GIT binary patch delta 201 zcmZ3**vT|OMToP&BeIx*fq4T6GpZlqUpvuFqh6%MHKN3^v?L?Hh`~3ps3bE_A*i%C zJHKrE=`%AK7#NH}^1=C~MaiiQ86_nJR{HwM`MJ6IdBu9=nc11SsVSL>dih1^`XHWu zNMc@ketc$feqP*sjR`>Q=AJH&Ar`&K2@3=aj0_A6{`~)6&&tf)%-LCW-oVJnO~)Yc uRZ}B-&kq&Oma`kUnlF|#Nb~fTFfhzoDZ<;wzkUYL3S|Iv5xjI14-?iy0VX+d-JI|LMoniDnu$>Ygr+Ar`&K zfBygfU(d$HAgnrzojt)tT*1_*%~_&nS@Xq`0|yQ;Fnqem|Mz|Dp1(kY7(8A5T-G@y GGywpM4n z?EJFrr_an}U|=u?$p`0`7A2=LWR#Q?Sn2C0=jZ0;=N0RfXJ%*Srlw>j>g5-u>w|du zA&GhE`SF>_`FU~kH6{SHH+Z@@hD5Z!o#x2rU?Adhznp_F`FYHnIj7Gh?r_n~Xe!;H z;U)Yz?C#ko>a~(Tte?rB+sT#DXjAlz<4W4Kx7=SG1TF6v&xquluvetw)Gmj^HS=!t zcux~J@JhO^=&g&miV$akM`SSr1K(i~W;~w1B4whRM!iUhYeb1-X-P(Y5rc1HQAuW=LQrXO zc7ECR(`RNfFfbT{uQ&Tb%_413-^+7!S zki@+7{P@h|{JgmN8WR{882LS2978JRyuGzC_ppIL>%;iW;FPvA6MG&8nzXr}WO`XY z+0v+)`+AY1x!U@Gh6&GS{13mxbY`~`lboE#teZlzdAGlDtvO)*!RCuw{d=Ao#^b4x zb+6=Sv&OXlXNdcCKX-+2!HVf0L~M3^syOUCGjlEfV%9xh_j}Ju+m^u?+$r|K_K(neB5!)G;Qb&uy`l4*8Llhxgem*xs_|ppC;MmDV@xSJ=NXzhS?@ zKcnk!!vn?Nj5qj!#tCnbzwq8 LHb0kjP6y=Sc>A97{CpPP y0QM_95X`_3a_#N+pTQWSf8-I0K#GA1&5k(<=o(K}3Sr;|I?U76&t;ucLK6Ubc0v;X diff --git a/app/ui/style/olive-dark/png/arrow.128.png b/app/ui/style/olive-dark/png/arrow.128.png index 8bd3a0112446f1d8b835400ca4917933ab88b20a..0cb747dc03a3b97c940610138d05312ecec8b88d 100644 GIT binary patch delta 2243 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 V=v!XjnS-}4K!i7@$Sd}@{{xWskbM9E diff --git a/app/ui/style/olive-dark/png/arrow.16.png b/app/ui/style/olive-dark/png/arrow.16.png index 063c26afc757ab172410c0b6ab1a4c4fd5686380..d26844df202faf2e8ccb9e5541698575e2393cc0 100644 GIT binary patch delta 376 zcmV-;0f+wL0=NT^BoPU4NLh0L00Xc900XcAC&UktMJaz2bVXQnL3MO!Z*l-lVRCe7 zZXi;1b8ByQx690#0000pbVXQnQ*U*0V`TtnbaZe!FE3+nZEbIEb1rvjYiVs|WNBe8 zZ*pfZcWG;BFH~V}XK!C=V{dL=pD2(3008DmL_t(Ijh&LQN<%>qMb8)u^#klIM63gX zjp^-#G=6`8V5z@gF9`NF)+qw{1bamY#6qwaYth2y*z60-vM*2Hg@L_0+`D&%g$(Mk zx=&xIPwGNF?Q1Ys-%{PEn_Zf<6?_cLx<)DuqTqYLR6XgFpurY!n?~CBZ-N|SV507{ z3e;C%u)+l3BO*o(S^q-N#(g2DKdoa2;F`kF_{Uftrgyfpg$H@r#u1Y7L@0000JB{c8nTwSje|+NlZvxCW-`NKJO;af!fR;2Zc1>kFs@X<5J; zxJ!~GEjm2Z!VGu|`vx$KrpZjN zVJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^My)Ja4^R9J=0mb+^eQ4oi}(TESySc_T+ zK1h+qMnS=UfS`q#|3FP6sI8SrD+r2(h1dv|5(5%ah+?Ich#0XF3kx3v(uop?$(LgH z!eu$T_ukyytUoxg%$(Wzc4p3D;eVAnslHL~sH1HFyimX9>$Q5Ui9FjXe0#c{4+78B z%UcOh^z8(u)qCphHUK)h2s~F0Hw_RKzC&a!xzHqkK$Q=&8M&|CRd=-k(9tCDR6S5P zKvfHh8UyClb8P_ti~JY&C*1imN7b~}1+WY}+6=%T$8Z%`0KNl1fnWLh5fLj@fpt}22QV8E?*@qJ znWUJ#)V1E+HslVG$u8g+at3U}a~gO$djDjg@Um!6Fa>X>5fw zf;KjS1nn#jL_jz>d0*3II?77S%1aHwB=Xw?IuDO$7iLY9QuP0RYOtin^vg zN&#qQ7T8l?rUC%G1`gFqDgZza@I_rxyHfy8fNJAB_=J=q6}kY9fFHp3<}u5Evh)8f zj0LD>SvK9t!dP2S>EtEU3E&*~5V)QJ?>hkmlk+(~R)-toyMgh`Xg{(6z(MQxU!BVN zPguJTz^3{*FsBv({8ooz0+!U^eWJd}>B4FZz`FXbjd}F|;FtR1u7Ia)&a32fVfjvg zcB5wMx126KD+)1_(}mAP0lL&Op8>$BS}qDP+fw*U{iya8QoI2udHr^rSD)Nw?G?Fg V8KFnq7 zVJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^M#7fD1xRCt{2noWpSRUF2D|7Q9kizzKB zf~bhbMMXw`5h_GAWwmkL=9$MENh>9NB5ALr zEt0Nk`kZP*(sD`rB>g<&^_8T%nm)G>E(qu|+@arpVqjF#8cA0DwCW=yfJNtdzYo|5 zyd~+1@KdUnkN~>f;UQp;q&ot%YbPWCmp<14A4*yspkFJg0sy!O*d*x@UK*d}R%q`pKR|Dz2hFcSktfcGU`lhEfZZ402_9$>em<*AL@8UVmT;2lZpB_;E0 z(;U!=K43lYwxod+25k?Z;C`}_xHGnJn@ga7%(cJ{Nh2{udno|ON@9bgXxnbRQUYZj zBKvwhSXHQ30|2;@EQH}IBE41uWiAFbSJ`9e^#BT10b`P`_U+iqB~WG%c*VEVTnYeS zh3^-sxl#fJlV&#U(_yX!u+6tae}GAw0yqsE27Uo{0U!GcgalCM9B>l&6Zj1{l>hyI zd;ac*D$20PlKeJmb+eh*SYg zlHK_qIvo3eY))`tNYWC=wn3yQfhl0EnSI|;AX~b+jsgRob!;0%>=7^ptTD51yR>@` z_{Y)nk(3Wu`37)$mSe@mf74CG%>DzmJ9-)k=K`+)^5MI`!=dBAh|9&#U_04=MCrn# zl5Y0Ub|z#c_%bka*X3Veotb^@BVuNgxQ~K95{-hOWv!%J$R2>426mfSr%~aeGXQ)} z_PkIxrh$je?AH*l^U?SQr=%BfU-gZd*~XauZ3tih*b7|d(EJoI6guKM(fIyezUwpU z*u0<}>K*n9zzZeD8w$k~e9*4bxfHruk?nN|g0W(R?tU7CFf zycEqdmQXAtEe7@gSC$Ta2fS`(U(|nAH6v+I(pE|1lHQcGtm$)_XRdM;1`Xj&R_L6& Qe*gdg07*qoM6N<$f~9&Uw*UYD delta 1034 zcmV+l1oivr3Bw4GBq9WJLP=Bz2nYy#2xN!=000SaNLh0L04HAn04HAo9frDUkv1oP z1Hef{K~#90-J4ygrBfKke~&YVV~#oFqrr$qaxrpaiZU`u5@n{OPN~U-V}=Xz70nHy z#M~&{xp6U(h}0<5NJFF07}MzZxX?&GGI0=@3DeKTyLYyeIcKlE*LvS~pWn@{-CED{ ztpEP6^{)4Q*M>e(H>$Vv+kVNRPFt~mLp`zSdTOUf0M&i!c}>@pgX0G5w+{GNy&-2Y zO)#hc08_xr>Qm}?u7X<2yeTlB-RkP5YaE1O9MH=Zz<%|rOz~iIS0>zg`P>x+PW>U51c7p3mY)e7LnHtimpxLyZvC-Am-m0As*Iz)tnlx|6p-fG*cjO^HkEOxh*^0L}q+*SULan*abO zQ0*R{QzuI&Yoh>NHUoRr3ri+{X|n(TYk~LG8%rffD?`M@ayHi>cOyYjXu0H30xl1726Rt7F3k8$|)2x}n+z>{8DdCeWw~(B(?1DRJ4L z0Y+T_fU|*j)NO-wUJ3#LECaTyuc|9kIxZCfx?B&uq^{_=W~BV z{FoAC6a@IcfgXs6Lpg%CNq|3rJ^VY!SztCI=1L}QlK=s1iHL)BCT-IqI8L>>sg*Vf z05GGjsWV~Q1Q-YIt21F80(=5|l+b=loi9vE3-A`O0eCQ>&jfIPnR138@q~!#v%T;C z)DIK-9=4`KS0x-E@JK{|%tXXrJ>Nf?5Mu(kCvRCp(x(HCsGApvu{Xg5zpJZCk1MAG z=74J=;`s&IJf0A561aP~k}|T01HM$(_7Nl00|_qp)xz%!b2#7wV0}bLltTFYA1Q+~d!c(3ibOiWK-IyufOo9M9;6u-Bs2kLE8RLzs2NMK1WDT#&Yel^+ z(FON5U2|4CF8C@zfbY%xhpk4R2XyWgo=E6&Ca|?oInAI>sNW{I;5&69SN_JI2t~vZ z(p<0_xVca{&7dw_SAR%w!PjOwEz-CH03zZK(p>Nj)q1dWP$#Xf^$W2_-PClg#ZVtO z#=v)}>zl5xIO>!-*BSIt^)*M}k5^ggxL}8RK^^)20i129VbJwAq5uE@07*qoM6N<$ Ef|P;XX8-^I diff --git a/app/ui/style/olive-dark/png/audiosource.128.png b/app/ui/style/olive-dark/png/audiosource.128.png index 0c9f4b9b817a448939920b1af825b09d302dc876..41e85fcd9007bf77cf0f0525cc4288597174f172 100644 GIT binary patch delta 10 RcmZ3?Gnr?C%0`p-tN;}k1Ka=r delta 24 ecmbQtvzTXs3NK5slV=DA5Y%v_bZk`o#0mgU)CRu* diff --git a/app/ui/style/olive-dark/png/audiosource.16.png b/app/ui/style/olive-dark/png/audiosource.16.png index b878700a8dde46b64cbd965a9024918772645387..9a4d6be1b8a4aa54341658c56a81d0de60d5a21e 100644 GIT binary patch delta 29 icmey&^q6UaiV$akM`SSr1M>zDW>i1IzjmXWE+YVhZ3tli delta 45 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 diff --git a/app/ui/style/olive-dark/png/beam.16.png b/app/ui/style/olive-dark/png/beam.16.png index 4f34e7935c12d38c30f999ea042baf08d37e01e0..7d3a7aa3c08244619b2684eac9b4ed72587da581 100644 GIT binary patch delta 354 zcmV-o0iFK90-*ztBoYa5NLh0L00Xc900XcAC&Uk}kwz$g6m&&cbU}4=Xm4@=O<{6$ zX>K4=b#rTPcDKvSnE(I)Gjv5*bW?A2a${uxXmoUNIxjC{Z*6UFZgVboX=`b1Wn^h# zE^l&YFL!BcX)jb^Zf9>_X=870UY{tC0002bNkl$AgKwoU3dX@ zfB`+A=J?pm4lhlScMO1u7w>@z(DJxBa3BOpB}pSmXLp8@NL9&H4a0BkZiRU&N&;{y18QA)Q2RiLk?Q<&bPyhe`07*qoM6N<$g63V7 Ar~m)} delta 256 zcmV+b0ssD?1Hb~1Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L002Ay002Az>Mp2_kv1rQ zy-7qtR5*>jlfenXKomsZi1!>lS%e6J-eL*bh&G~?1g*fFG~&q~?8EV}3x<$nQP4RJ z`-iv7@<%jeyNdP<>;VB=U;!X$UeBuqkOO021-+-e!b-(UKvB>D00000@?lT1L6dbBoYa5NLh0L00&_J00&_KmBYBUkwzzf02FjZSad;kbZBpK08L?X zbZKrNQgw4{Z+5rK%$WcH05fz&Saefwb#h~60BCe{a5^t9V{dJ3Z*FrgcWG;BZDnL> zVJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^MykV!;AR9J=Wm%%GUQ5431$H+p;PO>m; z#zL`Rr%-HvC|g;uz(O{*@((BrYrC=W51?4fmW@(IVoZ%>MNKK2&th)5}MN zSFd|I=iGCDy}NktgC@&@3X;;mKG5r>OTYtg0vwpxyX$QS7J*ry59sjr6o6$jdyERO z3T%bI7lCy*V-M&F>D@N7Y*c_WkOk5qgWufR8Pbz~2Ug6i5D6dvstcF|Hh($v71#mJ z%iL=Sfu7Pteb!KK)4Fhn>dGT%BA+-Q}1jG#k_!A`n z2|#PLjgne`IiTC6M!fQfq%{{m14m}2KLv1y?*`Py+~e!8nxX&a3V% zqy@^3Ddm+?KvvSc`*p8cQLWieRbxy-ty$O`n67Ymk+L6L0-i$pdV#5+VpMBZ0`7rR oemAExKtJEjX`T>k)^vRWp)ia7VT4nX0000907*qoM6N<$f($Y9RR910 delta 432 zcmV;h0Z;zo1nmQmBq9WJLP=Bz2nYy#2xN!=000SaNLh0L004Oa004ObIJJlpkv1oP z0cuG^K~z|U?U%bs15pr$zflY8sCXw>*a?DGVh|rBr8Wi&eGt=#cq>KmJw!WgByB)6 ziH)@=@>}eN9OJHgN!TFl4+qXJhna6?VfOq+gd|mg8Q=|Q0yn^|nZ0+N8wJ+=H4PMi zhMDa}<%j~P>9<;vDw51!yOLf5&efuS;*Z2&I0qJhS--MXU=lb4mH`8{{IegxJzl3? zfO_JJqa#=(Pe?io_!FK;8c!O}VkF$hvu1O6CUu3*J>t}l zvF$&90uMj~@2XxmvxB5i-2h?cbVnU?TJhg?E7F|C=|C0Fl)Co(F2tU%0VO*2ycuQB azX9?#L-xHu0n7jZ002ovPDHK)LSTZ6FS#H9 diff --git a/app/ui/style/olive-dark/png/beam.64.png b/app/ui/style/olive-dark/png/beam.64.png index af751d38dfc7878d299f4849c292069916204bbf..60d1db4fa2d24f0ca8d23e8ee37d35b47222ab77 100644 GIT binary patch delta 903 zcmV;219<%82EhlABoYa5NLh0L01m?d01m?e$8V@)kwzzf02FjZSad;kbZBpK08L?X zbZKrNQgw4{Z+5rK%$WcH05fz&Saefwb#h~60BCe{a5^t9V{dJ3Z*FrgcWG;BZDnL> zVJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^Mz?@2^KRCt{2o4;#RK@i73Bbs1TEEGG% zB7%Q_X|&LPq!7UfM$kf0u~4y7f>k<&SST7R(Jo?bAYB@bjra?DNeZ=0QYeU$1RRU^ z4x-$9_ipd)Ok(x}$3b>??z`W&yE$%WAhEuYkU^@t3Ah2A1a=j4TLQiTv%m*nN<=Xkp!*y!0gQ>ra@9FB2sPj)a5Z3m=sVz^h6;yRIuopN2Tm*Ku8Dbt72VMc6 zMdVk1o%$M>>^W8K0Y-tribE!Wkyw*niP@o}ssh{xPPFJc2@H#f##d#0>gFrq1;yK8 z9vHBA@(oP?4T{K5;Au&ham&er&-Z|rC2iAIA{uxY@TH{ftC@-%a|7~i&~{raJXXM} zA{pQCr5n`^XGvIfOps@_7#@`VJ}Y2%N!uPX6*(RT43xC>o2kgLPL$k2mMFQSpvwYTqNG`}l-UZ%Q)Ndfo;+k3 zq@#IX6HE-qpZpkbyh8Uu;DObF7&BeIhb&#bAGkpIlW)cXSz7HhS-O0bZ4t9-%!)Nt zHTEy>$;#^v)etM_>MZmOsN?GEEpQoXxI#Ti(m|R$z6U5-Da<7i`5_{Uz%{b{Zc-$% z66>n5H^6BTx!tH41Q3yB5xE7NAzK+Cth%bPMc_LyL$=qaL}aF7{C&VN{w|&EF6bUL de<1O{^9N9N!%wn9Eqnj~002ovPDHLkV1hEWj?Mr8 delta 809 zcmX@e{)BCUiV{n)lV=DA5Y%v_bTBY5a29w(76a)|Aj~*rt8V8+Gxd6=hn_BuAr*7p z&bG}Kag;e$|6e7+#KWakMPpIM!rsgyha_ADdk%`{==@<&s$frjVJG&i=X_{^!V8`=j?tP7*}uK+#e|5>E0k~ z>dJi}JmJ)teIjq|ZQc1daNpp|sb977S5DgFvlho!O*C1Qlcs7rwIue^J<%^a^=+Tc zT=Jgxm%QfZTc5geQyg@?CuzOxIQi=JiX|7fQHjDpBe_)xxa*z44O81-fTk7teS=RkRU)FQ&q;sBC(~IN0FGYK%t8T4&oi8;h zO6BgE!jI-EtueC?DZPwq?%w})?fMdx+`v!26D*AfQbZbVIP33>K`VcNEgwD3l|1x^mir{Yr58q5zAKbSbP zHs{KXGinWvs*bO_4`@CRxOwpOA(Ldm7`gfXJtzH`lXZzDW>i1IzjmXWI3oamaR?s( delta 45 xcmX@hbeCy@iV{n)lV=DA5Y%v_bTBY5a29w(7Bes~Zv delta 45 wcmbQnyo`B*iV{n)lV=DA5Y%v_bTBY5a29w(7BeugCxI}dMb*sP8_g0J0qu7R%>V!Z diff --git a/app/ui/style/olive-dark/png/box.64.png b/app/ui/style/olive-dark/png/box.64.png index a1563674fccba4e1373efcf439e93ad552e4c17c..e2772f56227f48d8e1d123f185ac8e565a410f55 100644 GIT binary patch delta 29 icmbQl+Qd3RMToP&BeIx*f$uN~Gak=hk+RXvhY0|8(g>UY delta 45 wcmZo-oy0mpMTw=@$uool2x>S|Iv5xjI14-?iy0XBj({-ZRBb-#jb=Vf0P4RAD*ylh diff --git a/app/ui/style/olive-dark/png/clock.128.png b/app/ui/style/olive-dark/png/clock.128.png index 2cd73d9f7917152eb8d935165682b2baa7652d95..5dba6c2668ede8ffb1c44b99822484891ce7f8d2 100644 GIT binary patch delta 10 RcmaDNb46x?%0?3dJ^&ds1IPdX delta 24 ecmca2^F(HX3NK5slV=DA5Y%v_bZk^K<^up+%?7Ig diff --git a/app/ui/style/olive-dark/png/clock.16.png b/app/ui/style/olive-dark/png/clock.16.png index b04ecac3d71e5efe46ec12fba7f1e729cba8198b..0496d972537260fea4e837a04ec906cf906e4fc8 100644 GIT binary patch delta 29 icmX@XvV&!UiV$akM`SSr1M>zDW>i1IzjmV=6B7V?90%n9 delta 45 xcmdnNa)M=oiV{n)lV=DA5Y%v_bTBY5a29w(7Bes~ZveXuhzX1U delta 45 xcmZ3$w}EehiV{n)lV=DA5Y%v_bTBY5a29w(7BevL9RXp+soH$f8_iy^0RZ_`3mX6c diff --git a/app/ui/style/olive-dark/png/diamond.128.png b/app/ui/style/olive-dark/png/diamond.128.png index ef74178f1272c85388e0c9061cf6c6e8018bad9a..4959f0847989801499254f0220b7be4ef189b1c1 100644 GIT binary patch delta 10 RcmeC>{>wE%Wur+XD*zTq1D5~* delta 24 ecmey%)yq9Wg_ot+$uool2x>S|IyNfCumS*9aRzz- diff --git a/app/ui/style/olive-dark/png/diamond.16.png b/app/ui/style/olive-dark/png/diamond.16.png index 26cf33d5d471a1c8c92513d49a9d3ab2a609f762..02461123187cf29cdeb131d75f6aad673c837573 100644 GIT binary patch delta 29 icmeyv^oD7IiV$akM`SSr1M>zDW>i1IzjmXW86yCOcL;m{ delta 45 xcmaFE^oMDJiV{n)lV=DA5Y%v_bTBY5a29w(7Bes~Zv%MToP&BeIx*f$uN~Gak=hk+RY4FcScTWC?-* delta 45 wcmey#+Q~LSMTw=@$uool2x>S|Iv5xjI14-?iy0XBj({-ZRBb-#jb?|L0RKM=5dZ)H diff --git a/app/ui/style/olive-dark/png/dirup.128.png b/app/ui/style/olive-dark/png/dirup.128.png index d0f3f6acb92269faa1778cd3c8c996ce049f4793..b4716f1dcb814dfce1354bd89ee12e2b468255ca 100644 GIT binary patch delta 10 RcmZ3(J%@XO%0`n4Rsa;c19boZ delta 24 ecmbQky@q>&3NK5slV=DA5Y%v_bZk_tW(5FHSO!=C diff --git a/app/ui/style/olive-dark/png/dirup.16.png b/app/ui/style/olive-dark/png/dirup.16.png index 9929522d13b028ab6f52436d98a0b598c8e8aec1..67961b82da5d5202413f7cd7ebc7b21b3defe226 100644 GIT binary patch delta 29 icmZ3^Je_%hiV$akM`SSr1M>zDW>i1IzjmWrA|n8FYX|=T delta 45 xcmbQvyqtN0iV{n)lV=DA5Y%v_bTBY5a29w(7Bes~ZvS|Iv5xjI14-?iy0W$lR%i!qH5;tjb>*U0q4aF6951J diff --git a/app/ui/style/olive-dark/png/dirup.64.png b/app/ui/style/olive-dark/png/dirup.64.png index e7939f95c5ef86b1dde590b54ce4b25e9d5ee476..d5d55cfa4d9b3f50bcd42593d70ab39894fcb7bb 100644 GIT binary patch delta 29 icmZ3>HkWOJiV$akM`SSr1K(i~W;~w1B4wl7b0z?PCJAo< delta 45 xcmbQsww7&ziV{n)lV=DA5Y%v_bTBY5a29w(7BevL9RXp+soH$f8_k|G0RZ)r3jP29 diff --git a/app/ui/style/olive-dark/png/error.128.png b/app/ui/style/olive-dark/png/error.128.png index 0b3ff459b77192ebebc21617da5e892f0442bbba..055051f5648fc749c6634ed75cd69d6499e08449 100644 GIT binary patch delta 10 RcmbO((=IbXWuwVsUH}y@1KS|IyNdk;{^avTn57c diff --git a/app/ui/style/olive-dark/png/error.16.png b/app/ui/style/olive-dark/png/error.16.png index 30b9aea3667394d266f280e729dcd7e0839a3444..5222d8ed1dc988453633634d8ea754581d59c061 100644 GIT binary patch delta 29 icmaFHa*btziV$akM`SSr1M>zDW>i1IzjmXW0uum%=mS|Iv5xjI14-?iy0W$lR%i!qH5;tjbzDW>i1IzjmXWB_jZbB?yH8 delta 45 xcmaFQ^q*;hiV{n)lV=DA5Y%v_bTBY5a29w(7Bes~Zv80st4k40Heh diff --git a/app/ui/style/olive-dark/png/ff.32.png b/app/ui/style/olive-dark/png/ff.32.png index 17d5ef0147877866f3afca8b357a2eca58149b54..94d7acc8d5a3f019d9c7c5138d41c3a1a31f7497 100644 GIT binary patch delta 29 icmdnVvXW(jiV$akM`SSr1A8I}Gfq9cW7|fz&x`zDW>i1IzjmXWI3oamaR?s( delta 45 xcmX@hbeCy@iV{n)lV=DA5Y%v_bTBY5a29w(7Bes~ZvS|Iv5xjI14-?iy0W$lR%i!qH5;tjb?U?0Qc7l<^TWy diff --git a/app/ui/style/olive-dark/png/folder.64.png b/app/ui/style/olive-dark/png/folder.64.png index a6dcda3a068a6b0cca9c7d40ce1f6a3bddebb23d..316b73edbc84c2dbc98a1f2ffae22f721c75bbb8 100644 GIT binary patch delta 29 icmeBW`O7>(MToP&BeIx*f$uN~Gak=hk+RY4I3oar-wBBT delta 45 wcmey%+{-dSMTw=@$uool2x>S|Iv5xjI14-?iy0XBj({-ZRBb-#jb_Ig0RRaL7ytkO diff --git a/app/ui/style/olive-dark/png/hand.128.png b/app/ui/style/olive-dark/png/hand.128.png index b06108fd3d2702ac3cfbe7e1e11554a9c66e9966..5ecbff64560329d77c91b1739d637e6907128670 100644 GIT binary patch delta 10 RcmdlkwOnd~%0?4rUH}!313Ul# delta 24 ecmZ23wOwk03NK5slV=DA5Y%v_bZk^);{^az1O^`f diff --git a/app/ui/style/olive-dark/png/hand.16.png b/app/ui/style/olive-dark/png/hand.16.png index 6ebfd1c1551b5959fef88946e622ecdfa1e3460e..a297b6246e688c4a825829eddae9719f604e0365 100644 GIT binary patch delta 29 icmbQs(#tYIMToP&BeIx*fq4T6GpZlqU%S!mIwJscT?k_U delta 45 xcmeBWnaeUkMTw=@$uool2x>S|Iv5xjI14-?iy0W0H-a$Z*XFmL8_ljW0s!~u3{n69 diff --git a/app/ui/style/olive-dark/png/hand.32.png b/app/ui/style/olive-dark/png/hand.32.png index b63c4f0a41099a74fda4bba38ed0b41d87d3c980..e2708650f42f921d56c9e88d618cd0858768fae4 100644 GIT binary patch delta 29 icmZ3+K8<~XiV$akM`SSr1A8I}Gfq9cW7|fz1ZDtrmk5sl delta 45 wcmbQnzKnf>iV{n)lV=DA5Y%v_bTBY5a29w(7BeugCxI}dMb*sP8_g1!0q)TX*8l(j diff --git a/app/ui/style/olive-dark/png/hand.64.png b/app/ui/style/olive-dark/png/hand.64.png index 42134e130790cc966e46245d1c0315a815bd46a5..3aaf52faf833acd20d0b6b795435c5a534d05c54 100644 GIT binary patch delta 29 icmZ3>JC}EYiV$akM`SSr1K(i~W;~w1B4wjnIvW6gqzM54 delta 45 wcmbQsyOwu?iV{n)lV=DA5Y%v_bTBY5a29w(7BevL9RXp+soH$f8_m+$0QT_;kN^Mx diff --git a/app/ui/style/olive-dark/png/iconview.128.png b/app/ui/style/olive-dark/png/iconview.128.png index 086a769ce33c18a646704b76e93710428d5ad9c1..23c259030a8e58e2fce7966eaea30d07d5585786 100644 GIT binary patch delta 10 RcmbQj-oidXWur*~GXN5q10w(c delta 24 ecmZo+pTa&tg_ot+$uool2x>S|IyNdMGXnriCI$uo diff --git a/app/ui/style/olive-dark/png/iconview.16.png b/app/ui/style/olive-dark/png/iconview.16.png index a73ee1d9ee9f2fad852d08712a57800ae7184017..93229c26c3375385e6f7a48e5446c964316de4f2 100644 GIT binary patch delta 29 icmeBU{>L;yMToP&BeIx*fq4T6GpZlqU%S!GgAo9HCkQhD delta 45 wcmeyz)WS|Iv5xjI14-?iy0W0H-a$Z*XFmL8_hfz0SB)PA^-pY diff --git a/app/ui/style/olive-dark/png/iconview.32.png b/app/ui/style/olive-dark/png/iconview.32.png index 0082db5508c3c1f1793c74407bc2be5505eb86c4..5e7040ce40f098070ba0d02ca9eac9105e19cf4b 100644 GIT binary patch delta 29 icmbQq(#bMGMToP&BeIx*fjtp~8K)lJv2CNS|Iv5xjI14-?iy0W$lR%i!qH5;tjb@h_0qQ#oC;$Ke diff --git a/app/ui/style/olive-dark/png/iconview.64.png b/app/ui/style/olive-dark/png/iconview.64.png index 9a81cf3eb9cb2b7d5919a46f1e83219746f72ff7..4381fa95766b9a7cac3a6d62f2c383352d1b465c 100644 GIT binary patch delta 29 icmbQn(#A4DMToP&BeIx*f$uN~Gak=hk+RY40wVxS|Iv5xjI14-?iy0XBj({-ZRBb-#jb;}Z0qoEUv;Y7A diff --git a/app/ui/style/olive-dark/png/imagesource.128.png b/app/ui/style/olive-dark/png/imagesource.128.png index 77d2344b5e6a3c08ec6c46416b35ab5c39cd1810..b1642e03da59eb54a14e6fe35c8203111bbab608 100644 GIT binary patch delta 10 RcmdnWx0G*!%0?4Lb^sKi0~i1R delta 24 ecmZ3=x0P>#3NK5slV=DA5Y%v_bZk^)VFv(Fjs^Pw diff --git a/app/ui/style/olive-dark/png/imagesource.16.png b/app/ui/style/olive-dark/png/imagesource.16.png index 716aa7a189305b369adb7a6b4b2d2189f86aa9a6..2e861f80effdff015d55c09ec1e9b9727d75189d 100644 GIT binary patch delta 29 icmX@cyp4H+iV$akM`SSr1M>zDW>i1IzjmWr10w)?aR^)h delta 45 xcmdnSe2jU5iV{n)lV=DA5Y%v_bTBY5a29w(7Bes~Zv4nJ zys-db#zO5=Kn8_@`LlruHE}NYNTwBcdbtQ=Kn>Y-*^wh0oDgIUnnxL z@9UI%=bO_zFZpPB+P8FwNCJC>SyhLq=5>3XKT0R=)+-O`H;m!tloac&Al%a%?#%-X#C?l5+L~E-Ld`if9;jE<=()( zCpC?KG5gIU8PX3-Ec5IRgx}1!>rr=@_T#to51?JS5^fDCAIs04`PU(rB;6+15c9EI zwW=XkQjJM?@6X-5du|^7EYEh6;pDwPu`i!KJFLL8;D@!zUG4=xqTRj&+0icF1y=ys z*QFgkZlAM`6-ds=V-5H-bzwAPz#q|tw>d(9?9;pperUT-2ddY0D`(R9ck0qypi{dp z#jX&PS)GwE26sa$L;l?0RANoR#NfgLVV%GTg>S8NU{i=y^3`gT*FL5_K zTCep|IpAaX^eaGX!{=WC8ob&s3aB;LLz|&%zuJ;shokY*L3u#s)e*JF z4)cEe4*dANJ}Rf7_(>-y`coEHvF!S-e_;34^_y9{_M3*>1*S4NV9aX#yB73Yuwdh- zpSKtNxZRw^wBxtogUM0P=Yt>Sp_ zZaw4j>^Zd@BK6WMwldnOADlmT;g8$X9{~*!d{FbUn7{K;zI;|r1An8i=s8=SuKl$u z6dk7B|C`Tf@6JDQ?joQ%?*lU@rRzPIG_&%Hz)i#Q{d{`@U+j6_Fr9nu)+yEpn%S=Z zJaDE=I%YYSKl6Hq_3r#Zjp5R<&odUk4pIE|pSdFed(OnnvgecqO*6Z@;!bP_7Ca1| Lu6{1-oD!M<1rHN< diff --git a/app/ui/style/olive-dark/png/italic.16.png b/app/ui/style/olive-dark/png/italic.16.png deleted file mode 100644 index 2e2418c266df8abdf7ebb12216bb8420493c3be4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ z$hLzpWB=2SsX#%=64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1S#JzX3_ zEPAg_Hsm_wAmI96Jj91DY3}I=jfe_`)iD}V%O{Gg6s<86vufLrtQBv$`TyHbiE9}g z=JY1sp0q{7(&p&&1NthtDqj<8Yi|29zxkQMu0oM*ahh4nsVpdu0Rs#F{J~>=?vhVu| zWrd##%}?&m`CZO&yN&A>XV?jvM9;Uxa2XzH^1-o2iAmqlK8wf$Rs#iAbDTuqBNP< z+4>WV8V}aYoux0ZyXm=cyh0jN^Utms`VZDVs5~p4G27w&v)h(;|1(_l>fV1R?Y(wgdCkM0&Q4nJ zl*xcF9gP2NHH)le)Dv3 z45^s&cJ^K`W=E0M^SnulPD;0;S>L>QoBNhUI`_}ZT7~(J8^YpMrbciIvTXF2D6=|R zLSYFYZds(Wz@(mY9-T99t~$@YQ!Fw(i(#p_hA;1eFHB2UGERwG zP(Hy%WoJT<3E#nLThbczp3p982*hry`f$KYmwtKg~K| z`RLPZrV4>KpPFMBS3EHnK68@W^i%W%ndLY1-I+x`RU2*YOz?|avHR!Ar_Yz@3i8sQZuk8Ze4zm-Fw5)#&w;WJXSPn5f7zrV?(}&T<3l>T=-&pc;n2y+~@vH z4nJ zys-db#zO5=Kn8@bJn5sQF&g9YOe zP6a=PLKGpOQD6|0c85JH8{@HuxcieMKjrXTzC~KfQ18zRl du`p{IPS4nJ z$hLzpWB=2SsX#%=64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TaJzX3_ zEP9jw{Qv*Io{ft^SalXVdx8va^F@OMAZRi4;N^A$0=Bk9K{kfaWde*HSKh1wYGm+q L^>bP0l+XkK!)h?F diff --git a/app/ui/style/olive-dark/png/justify-center.32.png b/app/ui/style/olive-dark/png/justify-center.32.png deleted file mode 100644 index e430894058e1ccee8e964fef00c117a02d47d60f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK@;M7UB8wRq ztocBg@yxb`%|JoP64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1U7JzX3_ zB3j>GQ50fO;9))}^Z$SGg$Faa@=|@1q;8otUrX7+x4nJ zl*xcF9gP2NC6dU<^lmqQ&@O1Ta JS?83{1OSqFO-=v+ diff --git a/app/ui/style/olive-dark/png/listview.128.png b/app/ui/style/olive-dark/png/listview.128.png index fb5f2547787a1fabc994ac21a5ee8678ba80f4ef..1fa312d62d345f413c32c5ef13e40d103e9f413d 100644 GIT binary patch delta 10 Rcmdnbww`T*%0?4zW&jlB10nzb delta 24 ecmZ3_wx4Z+3NK5slV=DA5Y%v_bZk`QV+H_H3I+uL diff --git a/app/ui/style/olive-dark/png/listview.16.png b/app/ui/style/olive-dark/png/listview.16.png index e8d4a930e4955ee980fc2600322241098e7e6118..88c68b9d2321671d0b0c1c21af224c9113b2a5af 100644 GIT binary patch delta 29 icmX@hw3lguiV$akM`SSr1M>zDW>i1IzjmV=J0k#l(FgAU delta 45 xcmdnXbe3s?iV{n)lV=DA5Y%v_bTBY5a29w(7Bes~Zv delta 45 wcmbQnyo`B*iV{n)lV=DA5Y%v_bTBY5a29w(7BeugCxI}dMb*sP8_g0J0qu7R%>V!Z diff --git a/app/ui/style/olive-dark/png/listview.64.png b/app/ui/style/olive-dark/png/listview.64.png index 13bca5463d8681fafa735b2a6c26f3a481c5e2fb..8e1f6ef2e60590e405c0ee1af05beefab54776e1 100644 GIT binary patch delta 29 icmZo+`NBLwMToP&BeIx*f$uN~Gak=hk+RWkA0q&Q)d_9@ delta 45 wcmeyu+`=+JMTw=@$uool2x>S|Iv5xjI14-?iy0XBj({-ZRBb-#jb{580sPPk{Qv*} diff --git a/app/ui/style/olive-dark/png/magnet.128.png b/app/ui/style/olive-dark/png/magnet.128.png index 8847442506fe5af5f5200b4528ee5c9f0b3b12e5..773f44c45a5d217aec0f4ddff3076244b5467f0b 100644 GIT binary patch delta 10 RcmbOu+9NtaWur+37XTC>16}|C delta 24 ecmeAXog+Fyg_ot+$uool2x>S|IyNe1a{&NP6$U{7 diff --git a/app/ui/style/olive-dark/png/magnet.16.png b/app/ui/style/olive-dark/png/magnet.16.png index 0994379eab3ff8ff75d90bb1f7e816eea097f43f..3677c8169784f6ab9fe9957d87f0cfeabdbc6365 100644 GIT binary patch delta 29 icmeBV`N=#%MToP&BeIx*fq4T6GpZlqU%S!mFe3nbI|!x# delta 45 xcmey#+{rRQMTw=@$uool2x>S|Iv5xjI14-?iy0W0H-a$Z*XFmL8_fS|Iv5xjI14-?iy0XBj({-ZRBb-#jb@Il0RKD+m;e9( diff --git a/app/ui/style/olive-dark/png/minus.128.png b/app/ui/style/olive-dark/png/minus.128.png index 4db41bae72beff90ee6cb80d09ba376d740f737e..0d3681fc30a270c03868a9d791ebd9c01a039abe 100644 GIT binary patch delta 10 Rcmeyt`hszDW>i1IzjmVACjf8%2#){& delta 44 wcmZ3%w1a7aiV{n)lV=DA5Y%v_bTBY5a29w(7Bes~Zv0SBB5H2?qr diff --git a/app/ui/style/olive-dark/png/minus.64.png b/app/ui/style/olive-dark/png/minus.64.png index 85d53427097fa7b5ae78ff90042a94c9a9279c8b..91676b98dd8b6821ede749345851ec2c5c0c6b88 100644 GIT binary patch delta 29 icmaFNe3^NIiV$akM`SSr1K(i~W;~w1B4wl7Tt)zizX^%} delta 45 xcmcc2{Fr%yiV{n)lV=DA5Y%v_bTBY5a29w(7BevL9RXp+soH$f8_ni20ssb^3mE_a diff --git a/app/ui/style/olive-dark/png/new.32.png b/app/ui/style/olive-dark/png/new.32.png index 314977971658a8a6ccc99e455cab21da80f06090..134cd50f212af4b5180b246a4290ab42421d56cf 100644 GIT binary patch delta 337 zcmV-X0j~ar1cd~Uy?--FL_t(oh3%K2P6I&@hQFa8P`p8FFd%pYOoPO=lB7@27XU2J zfh57uRDkM3R3ln2ID)AuVGyOsW{=(5-P`8O{_19KX8$j9o4q^1kgE283!p=oK7gr+ z`~=olBo@F7=ti#b2wbN^>{)TFIlvIOQ&oGdAnkkZJvj2Gz<-&Q8vv@R(Ub52yg2e} z1KKg5H;ME96 zj-Ebn6$rK#krQ7*$^^b6Y7goPQUK<_dqUs8@|^=NeFC>NHTR*5<=TYFDgXtb02F`% z&?Up1cn5Vy?-=GL_t(oh3%I+P6IIzhQHxaP;mp&(1d~`&_tAUNr}V>a)F4J zb5KU2Axe={9D}_S#-Y+xV|`W@r3=nzg*Uf+1Dy0N21FVOjuF z5%~+OuShI_7vL;%jVEA~3UOe?vE~2+;6YXGwSsiyxi@y?FMohbE7u29Rih{21DHGV zD+AygINe+iSW`qnB#q6`6qp!s^y6p>pun>Q(T{;>3eXrL2f!9$0?aIkQC*{b4!jxR zouj7*+y;WJM5OC0NSVNIMD1~1K?=Yt@RiWFQ@(S+r6q7*Q}YaaBcRZATL?Eq}e!T&nG+P69QKgqI4M9y92P~C(dnf>2==1`qL2e<)FGMN9c k{&W6xnO6YzA)h(GKk8g)x9E7ydjJ3c07*qoM6N<$f+Z=LPXGV_ diff --git a/app/ui/style/olive-dark/png/next.128.png b/app/ui/style/olive-dark/png/next.128.png index 54addef3259a0d2f94b5d36b47fcd0e8dafce3c2..bd29200be580888b040050fb8c00d917770108b3 100644 GIT binary patch delta 10 Rcmey#{gQiv%0`o;tNS|Iv5xjI14-?iy0W0H-a$Z*XFmL8_j$e0rIp9uK)l5 diff --git a/app/ui/style/olive-dark/png/next.32.png b/app/ui/style/olive-dark/png/next.32.png index c7e65548be2fb662e688e424cadaa1ac9ef065b7..40055ecfa8ea0f8e802e248c8855642f260e1330 100644 GIT binary patch delta 29 icmX@ivYBOqiV$akM`SSr1A8I}Gfq9cW7|fzzl;EUg$Z5& delta 45 xcmdnYa+qa;iV{n)lV=DA5Y%v_bTBY5a29w(7BeugCxI}dMb*sP8_oVQ0s#2`3#I@7 diff --git a/app/ui/style/olive-dark/png/next.64.png b/app/ui/style/olive-dark/png/next.64.png index 160542719e3dea3291180395e6a2702c2023353e..f4ed8489895f4e0fa027f16cb4f336146074f1e0 100644 GIT binary patch delta 29 icmcc4cARa3iV$akM`SSr1K(i~W;~w1B4wkSATt1ls|fA@ delta 45 wcmX@kcAag4iV{n)lV=DA5Y%v_bTBY5a29w(7BevL9RXp+soH$f8_fin0Rm?VeE4cw|Nl!RpyQ&S03OU2>WoqgzjxaT>~^WmOz?{gnu8uMKcl~Sh=JC@;gTe4>CW1nt z_-CCxPGvkfVG1?*nj%fDPm7N!oaSM4E+X-Sb|KJW#Y?wwC6aNVg}l#uRY`~cw4pX5 z@O(C`Q`O>-h@-)aG?OLjz|DIT+($*soFt*%yeHcV34m6sx`b=tLv^yZ2cpb!BMTyp z^5;&EUwq*&f2hkQ3F`Wr39&3ped)QZ*NpV>E(4|~$%lKSN|wTgL#07c^cKcXPj!1NW{rfdP%SB;^NkB z@@+YG%t07pw$e&s<0pNlxu`B4YVPciOg$?J#S% zi(Xd2>QVJVg>V~ZSI=olpH$P8)F9CCemE{R*2D7%c7Z)HrMkF6$o?`%tH|!dPOmH? zVLBqh%6(B76K-t|P2eKE_`W^QVtLtJEs|nB+CToP@K?9=SWrSHf-c5yycdjm&Z4l!m0{8@bCixNk2=(<($Y9zNlK z@O&H&PrI#LNj_`JM zolF2axpxav2b|(mJIE>pk-=DBcP7YM-aNMlmh?6Da=vf%J*t!IBxK{&o&|_!yPmAn#u*?m5ex5<>CE{6*5ZGdp3vf0525{ zk2W#w#f-)kXA{C66@`6c^CC2frasd0@<^hb#2x4 zc{JHqwM(YN+J*Csj=|QMSVYcaQ6JsEIT>pB%_C|;SfP99ufhEpfEqjEd_r*Du_(`J2sV>+kn=exEWe?fd81 z#rq>~e`;0WXj0&?nY4siX4;(3nGci-_$*l0^vWcPS1{VJZ40jV+TZ)m3ixzpAp!Sc92L%>RoOxLKT1n#UwPP33}-qw`Id_h;FE@a)i& zUBqh4d%^be`^E9MBnuRme(|w7A+SaMS)5*?@_WHk?ZLtk78g!MzGUEC4GF9*4Cgo*=Lj=dsIwIKaXgqKaKKWrq1cJxIk^(a zo(<-g7^Nz7WfL@}u~cZvE?_i{)aCr(VdcP_wkb*|VfLn8Z);<(`Y_=cf(vdR-mW?~ znV~$`>-Pg>UV&SCdsn9m^JC-aa$fxUv&1{ib(pMLAJPG)*C=XyiDruqKX_d#CvvL9~6 zGu}7b_m1yFrB~+mk5+{~w)ITkKCr$u|6hJ;@neO$g?BE9`7wk`uMcdrWZd=g|0jXz z|7HYPec0Z4SLA<9$MyZwinnb!$z!0wuzK#lQ@OXIA0$8UdTjb=hET%Q%kdwtFfC(A znDcV|jtoX)rXJJ3qWZcCZVbnON}og@Xkke9uRrR{Jwt$D=F9ayyI8MqE13SRpSp5; zLlxr$pqi9uhph~kF2~O-;$9)fAPZ!qaIX+`IQ=Dj*)66lR)_0f!qu)bX|Y}~`#V*0 zTZ0$l1djzPtDR@;KxwnU!Q8EyTFU#El_t5_X;5fX&}RedxhYEQ$S-b zF=eqFxb`Ld%=QK@#x=h6sa(4C3!E5o{OXUEaCdMgl>XAb7VQwjkOOpR4tEDvLhUc@ zY0(b57?&CR6`icBpmrc++5V)htSZtEwBBCc@BH(9?AjUGjm+PfpUm-R7H=#*pqY?+ zb>Y9`^QSo9Wt3YsWuN@dzq3zR)*r4H50{a)Jf!!5se&h`eD_qbO#uyg^5@kG>Lq`k z=bBnR#Wm1;SE*svhN`%|OeOcv=sq}eYSCVKf6d<&Asz`o_lV8h)p;+U?bNgluP-Tn zOZc|unbd;nXZPLxdv%l8Vmvf$C-Wr!-Sf*SKI%hhuFS$3i>b%HRDNZ(-~CI+J2}>h z;n?}r{tc6rSt7-xHf5bKn6h(CEmOz;)>V!5z&v137bi9^_8=E^a{w?iE%#?AmEQ5~ z;nos{p84VP8T8#bHtCq8T%C}pQ5^Z3rNYE%LVfB&#no**&NENnQa@mpx_e4l+LSey zX4tIipDzkTmMCtQHVQGiA4 ahxG2#v-HIISKSL_00K`}KbLh*2~7a?ku!4u diff --git a/app/ui/style/olive-dark/png/nodes_btt.16.png b/app/ui/style/olive-dark/png/nodes_btt.16.png index cca34dcd62a163bafbc1102a08d080741f665d82..bdb35600a6652a2a5462060dece5181e4e875a0f 100644 GIT binary patch delta 258 zcmV+d0sa1@1GfW^y?^CNL_t(IjiuAQE`(7K#_`|qMj`QW9Z19t5N?4&uiwg5P!U^- z)-9+cS_#p*2oakomKcSV-F+P=Z+OaQX8t+PWKLw}GWIZQtjCDB)LGYJu}zQ8-Wt- z{*zh+5%CZa2iPqPLsS7>)YOWt2p@hfJ)6wj!I|kL-s8o1iN{#P+CX-UN8$_p!f9jcBAc)mL>9v4y%;+hqh( z^+O#-tgpVS(~ECEH$_c-0OlP3^G(Lz0lL6O1=swQ;s@DCU}C`T{RIF3002ovPDHLkV1mSqYw7?1 diff --git a/app/ui/style/olive-dark/png/nodes_btt.32.png b/app/ui/style/olive-dark/png/nodes_btt.32.png index 2e4d2d1b239d9e41bc6bdcce131612acfc7416a5..548929dd1cf4f4ff9497b597afd89ad121c038b3 100644 GIT binary patch delta 372 zcmV-)0gL{K1gHd%y?<6oL_t(oh3(cqO2j}E$MNq^MSCsO&SDV)UP15=TCTUS(i^1o z1S?p03#|k}Ej)s-jfGuS5f88m&tfwYWRpyi2|?M{q?wub$?)DwpyLpLne75+z-qzT z5fDpyXan#Fta+?YByEQT%%xAC z2HXP!Nl#4yzH{ImSaJI@kXztf($LJ7fIhHXaLxyCC28ycJ4_~F5h4L%;0-th4ssw1 zz@Ep;+(mMng{kh0C&*NC|(4PfQ^E4 zUidYNJNp>bsevGgn*jQfhD{T@sN6Oolh*=-jv2rKMxN`Fwg9mQ!u^u{ulNRk|9`+j S;Tq`x00008%b(S^)F< z6SzvK+l@$veO-t;(Aa&AY%Zj9*2jg21D)O17~F+E9i`?Jo^%S_0(&joPmeb`;5Y=n zfL+!uJet{G&P@`SN_vqCcqO*+l#))`2&uK|w~ek_kyR_H)<*peM**XNtOBCzR%F#m ms#Ob^1`bz#U_`SAm~^v}vehH~@(0000q6ja8<#KO|Rol=mD#ofCMM7h1adGkhZe$`$w_vX#-cK3Gw zyHJ^IB>oUWxC5*Mi@?p6HM_t*@LEK^jMtt$0|EWTZvnRw)qg$#R!f&K6>YDRZt?VM zJx^HAgjm3$LH%Wenn{TTv_0mpV%DH$Ql^Fv`M;?Gyc_VQ3h-{gn<~J&0dJ}R>j^># zFGC1(*7LL_z8U&#IL|ro4tOIXUk&FOnOp*t;zZ;YpcEs*OMv1oA{KB+`a8mI!;CjRHe-vRE)x`qlfo;;ILO+0q^!{p}0FQy`hTk0= z8ua9uMRk`$(RttnutfVXqXX;$uSDc~RC^A13Or)8J>rPoUX+p#BJvC_3CKYU5x;;N ziQDLi$O1SBP(lc|8U4^mhKSq+M*)hLh++gNxkVHwK!3?4qF4b+bh2Ets9(GQ#p)7W z1=K*qy8&+|UO>}J((FVhK~stoko$U|7y({agzf^o?+M%lcrRSZE})Rx;ZxnX(12z1 zG)5qD4BT(o%iq}34fD6efHTI6#I9iw)oEH43wR4WNHmFZ04y+mC~6kfS;yi(ftd#5 z++y+gmw&N%OKjNU-5-p2{SCS=T*)n~Q< zcsJlp72w@~H&uXl1Kv~t(RSCM{^{@`zQh9d4eIX=AL5JoTViqgQX+#rpdVna0w3wc kM{Vf<@A(H7U#Y-vAx!H9ESbbh00000NkvXXt^-0~g6~f|XqG6%af(pkXb1uirC^ECx?9rSL1ex(J*Q~v+aE}`b|2IJ; z9AjJnHi1RpT|=2m-~iYPAsktG%aH_7J^UW<-bnHc7%D<|V}C7Jv5DQoQ)z7&>WxqZ zuqe>{BG8lt(DXh36f*)%SpYAF5`eb>Z%P2(2D~W&cpLDh1mJDJn-YMx0dGnG-Uhr; z1#l_QJQrxn0yq$8{uF4+j>P7Hee6z!{sK!Ogi|BE5t0T}XLm#3H*nQL>I(RU=;1;8 zNAL#t1Wec5+kXuqe8|6m-I|}920jA=l}Tj)Yt$RR19obzZv(eA*9X9=p|1x>0*Eor z0?Uuw-VY%hk6#QSoB-b*dCf4!IA`TAN7aCJV4~*w9q{#u*LB_k^8lJmKjF~=MFW~n zKhbFmOao{${Y2L-ux>!x=_fjCfmr|+(@%8S0?P(iO@BYpNefH@u$+FPs}@)_z_^>wpL?JIu^^mVgK>MIYRubW*`UwHt1-RzS3 zD*qYsHeldQ3BcQcHzfdX1KyMXybX9$0`NBAO$or;fHx(8?EAiMc1eBZ0rYjVOX@2> z66@t=m)h5;0oi8P58$H3FSr1{W3<`TS6_wK!ac*~!q;haXI%gQ002ovPDHLkV1j?S B7l{A> diff --git a/app/ui/style/olive-dark/png/open.128.png b/app/ui/style/olive-dark/png/open.128.png index 04927db6b71630b1bdf8e3f0e6dab0be053176de..220a26e4e26028258a8baafb604c3c9ad1096240 100644 GIT binary patch delta 10 RcmdnSwTx?m%0?3=Rsa-p0}%iK delta 24 ecmZ3+wT)|n3NK5slV=DA5Y%v_bZk^)Wd#6H3zDW>i1IzjmYBOhy2K8wjTW delta 45 xcmX@le4lxOiV{n)lV=DA5Y%v_bTBY5a29w(7Bes~ZvS|IyNdkV*&t7i3W@S diff --git a/app/ui/style/olive-dark/png/pause.16.png b/app/ui/style/olive-dark/png/pause.16.png index 8308a3144bb945366d0a81bc380dc459a6b8d094..835f00768a1fe5b0253d58fa9d2740a9c45f98e2 100644 GIT binary patch delta 28 hcmdnaw47;ziV$akM`SSr1M>zDW>i1IzjmVAM*wfg2#f## delta 44 wcmZ3^w4G^!iV{n)lV=DA5Y%v_bTBY5a29w(7Bes~Zvbbx7siV$akM`SSr1A8I}Gfq9cW7|eIE=B--3kZP# delta 45 wcmX@Wbb)DtiV{n)lV=DA5Y%v_bTBY5a29w(7BeugCxI}dMb*sP8_l>F0s7?%$p8QV diff --git a/app/ui/style/olive-dark/png/pause.64.png b/app/ui/style/olive-dark/png/pause.64.png index b055c92e9061946659208522eb3aac9b6f18d712..9465d00075921a61f65601c0fca73103d35c89b3 100644 GIT binary patch delta 29 icmaFDe1&;}iV$akM`SSr1K(i~W;~w1B4wl7JVpSC`3a2x delta 45 xcmcb@{DgUeiV{n)lV=DA5Y%v_bTBY5a29w(7BevL9RXp+soH$f8_ni10ssc}3mgCd diff --git a/app/ui/style/olive-dark/png/play.128.png b/app/ui/style/olive-dark/png/play.128.png index 514c41d079c7a0a4b0415303e7546779c0f51205..88864f4b7bb815e27e4099d263fc025312e74a10 100644 GIT binary patch delta 10 RcmbQu)y*|QWuwV+7624h1HS+O delta 24 ecmeC?n$0yqg_ot+$uool2x>S|IyNf4VgUe6`v#%_ diff --git a/app/ui/style/olive-dark/png/play.16.png b/app/ui/style/olive-dark/png/play.16.png index 045e06337a05b44c6f8cfb41de17c5565d247e08..c226d007167f6239641083fcbc9f73139962447c 100644 GIT binary patch delta 29 icmey&^q6UaiV$akM`SSr1M>zDW>i1IzjmXWE+YVhZ3tli delta 45 xcmaFN^qFabiV{n)lV=DA5Y%v_bTBY5a29w(7Bes~ZvS|Iv5xjI14-?iy0W$lR%i!qH5;tjb>*U0q4aF6951J diff --git a/app/ui/style/olive-dark/png/play.64.png b/app/ui/style/olive-dark/png/play.64.png index cd069a7963b7a2930734991fd54b9b92a5e4916e..b3d799b86dfbbe92ce00f800dbcc8c9fc2e303c8 100644 GIT binary patch delta 29 icmbQu*3C9SMToP&BeIx*f$uN~Gak=hk+RY4DiZ*E5(zl~ delta 45 wcmeBXo6R;sMTw=@$uool2x>S|Iv5xjI14-?iy0XBj({-ZRBb-#jb>Mw0PjBv$N&HU diff --git a/app/ui/style/olive-dark/png/plus.128.png b/app/ui/style/olive-dark/png/plus.128.png index 02f7da28a6b1288b61ebc8294db71d44f108d2f7..45cc1474fa8f278ccc720ff8c79039dcf9281455 100644 GIT binary patch delta 10 RcmdnMwSa4a%0`nvEC3by1O5O2 delta 24 ecmZ3$wSjAb3NK5slV=DA5Y%v_bZk`o&jJ8Z>jvQf diff --git a/app/ui/style/olive-dark/png/plus.16.png b/app/ui/style/olive-dark/png/plus.16.png index e8280ca599087c3ad68b3529932ad5c8ca1205ec..65e0e1c0aa5e60c22a59e6c60d8cfe7821e89aac 100644 GIT binary patch delta 29 icmbQt+{`>dMToP&BeIx*fq4T6GpZlqU%S!Gmk|JO;|Ie4 delta 45 wcmZo>p3FQ!MTw=@$uool2x>S|Iv5xjI14-?iy0W0H-a$Z*XFmL8_j$f0rL(EvH$=8 diff --git a/app/ui/style/olive-dark/png/plus.32.png b/app/ui/style/olive-dark/png/plus.32.png index 27e50d8ce885b00a3e0de0a208d8c35694879547..4503736e53b60b6c3fe20ec6b9a3074d5fbc8c73 100644 GIT binary patch delta 29 icmcb|e2#g7iV$akM`SSr1A8I}Gfq9cW7|fz8H@mdZ3!&^ delta 45 xcmX@de2;m8iV{n)lV=DA5Y%v_bTBY5a29w(7BeugCxI}dMb*sP8_i}g0ssLv3v~bh diff --git a/app/ui/style/olive-dark/png/plus.64.png b/app/ui/style/olive-dark/png/plus.64.png index 7e82c2fdc9262e6f0d1d4951c1aef2ce1ed9010a..9f1f4ed52d44dff42fd1ddb658186f515b5f77da 100644 GIT binary patch delta 29 icmaFPdYyHGiV$akM`SSr1K(i~W;~w1B4wl7LM8x<6bYLE delta 45 xcmcc4`kZxwiV{n)lV=DA5Y%v_bTBY5a29w(7BevL9RXp+soH$f8_gCn0RRZF3n~Br diff --git a/app/ui/style/olive-dark/png/prev.128.png b/app/ui/style/olive-dark/png/prev.128.png index 64d4ec40a9fd3c651a58df0c303dc253e769bdff..6ba54194d5d380e7e1103399461886e77d655947 100644 GIT binary patch delta 10 RcmbQp)5tSHWuwVmRsa*P1Ev4~ delta 24 ecmZqVnaDFig_ot+$uool2x>S|IyNdkUS|Iv5xjI14-?iy0W0H-a$Z*XFmL8_j|l0re^i!~g&Q diff --git a/app/ui/style/olive-dark/png/prev.32.png b/app/ui/style/olive-dark/png/prev.32.png index 090ff97c9614979042e0c90efe49ca6813472503..b8b9aa861794e719aabaaf4c9bc9efc5f2aa678c 100644 GIT binary patch delta 29 icmX@avWaDaiV$akM`SSr1A8I}Gfq9cW7|fzKa2o;O9@*5 delta 45 xcmdnQa)@PuiV{n)lV=DA5Y%v_bTBY5a29w(7BeugCxI}dMb*sP8_oVO0s#1>3!?x4 diff --git a/app/ui/style/olive-dark/png/prev.64.png b/app/ui/style/olive-dark/png/prev.64.png index c56efc0cf9d1efa1d42eb22d395546bba52abc18..8c05e4aa321facf69b32b0ec15bc5d7852c29070 100644 GIT binary patch delta 29 icmey!_Kj|n^g delta 45 wcmaFJ_K|IZiV{n)lV=DA5Y%v_bTBY5a29w(7BevL9RXp+soH$f8_l$t0Sk)?%K!iX diff --git a/app/ui/style/olive-dark/png/razor.128.png b/app/ui/style/olive-dark/png/razor.128.png index 9b0731538a17b29eb3813879ec151a17bdff1a0b..acad2efd08bf13c739f954141a3a414b93602a32 100644 GIT binary patch delta 10 Rcmeyv^@eML%0?3pRsb361LFVy delta 24 ecmaFE^@nSM3NK5slV=DA5Y%v_bZk`gW(5FVEC$8^ diff --git a/app/ui/style/olive-dark/png/razor.16.png b/app/ui/style/olive-dark/png/razor.16.png index e9c021a6ae99afcbf74f59506830a4607a6a318e..5553dedaccd3f22ba49276515d3e0cea94672415 100644 GIT binary patch delta 29 icmZo?{?0T(MToP&BeIx*fq4T6GpZlqU%S!Gkr4oTkq90D delta 45 wcmey))XqFXMTw=@$uool2x>S|Iv5xjI14-?iy0W0H-a$Z*XFmL8_gUU0R=e>4FCWD diff --git a/app/ui/style/olive-dark/png/razor.32.png b/app/ui/style/olive-dark/png/razor.32.png index 8fb76172dbf3234469e363fa0c80b8d96865e882..03f1319189d9cac6fe264e0faed2d230fb9a154e 100644 GIT binary patch delta 29 icmey!{E&HqiV$akM`SSr1A8I}Gfq9cW7|fz)rNriV{n)lV=DA5Y%v_bTBY5a29w(7BeugCxI}dMb*sP8_iZT0ssf(3$6eF diff --git a/app/ui/style/olive-dark/png/razor.64.png b/app/ui/style/olive-dark/png/razor.64.png index 7234af9e13c30461bfe698d045708429a34ef218..5f3445353d317c686e041b9d11dcde378ef7ce89 100644 GIT binary patch delta 29 icmeBX`^`E*MToP&BeIx*f$uN~Gak=hk+RY4C=&pL*a?UL delta 45 wcmey(+RZjWMTw=@$uool2x>S|Iv5xjI14-?iy0XBj({-ZRBb-#jb=xg0006D7XSbN diff --git a/app/ui/style/olive-dark/png/record.128.png b/app/ui/style/olive-dark/png/record.128.png index 5dba7468a03be25433d4ee7cee24d894ec2a54e4..9199f79cd9c0250ba3151c94f6a4500b3f92bc5b 100644 GIT binary patch delta 10 RcmZ3zDW>i1IzjmXWG9v(jDF{OV delta 45 xcmcb~^pa_UiV{n)lV=DA5Y%v_bTBY5a29w(7Bes~ZvzDW>i1IzjmXW5+eYC?+8Eu delta 45 xcmcb?^nz)EiV{n)lV=DA5Y%v_bTBY5a29w(7Bes~ZvS|Iv5xjI14-?iy0W$lR%i!qH5;tjb^7A0q1KA5C8xG diff --git a/app/ui/style/olive-dark/png/redo.64.png b/app/ui/style/olive-dark/png/redo.64.png index 5ca9146d232b14b28fd2ed170e4b5de83616c777..f4b8839cf5c1a17b2aaa6370527804864b0c1cd9 100644 GIT binary patch delta 29 icmey$_LOaciV$akM`SSr1K(i~W;~w1B4wkSJ~IG~cL_)U delta 45 wcmaFL_LXgdiV{n)lV=DA5Y%v_bTBY5a29w(7BevL9RXp+soH$f8_o2Y0SxmB*8l(j diff --git a/app/ui/style/olive-dark/png/rew.128.png b/app/ui/style/olive-dark/png/rew.128.png index 73fffbb176c3012938ef1700b584c614e6cb94a8..4ecbcb909177017fd89c7bda7211db8f2da3f95d 100644 GIT binary patch delta 10 RcmZ3n5#MToP&BeIx*fq4T6GpZlqU%S!Go)G|g9S9fz delta 45 wcmey$)XF?TMTw=@$uool2x>S|Iv5xjI14-?iy0W0H-a$Z*XFmL8_nz)0R)8%2LJ#7 diff --git a/app/ui/style/olive-dark/png/rew.32.png b/app/ui/style/olive-dark/png/rew.32.png index baa89324ed42fb67b2e41fdd89f3bbf200d8299c..b803501239e0d299c46cfc5e2e43ba137a7f38ef 100644 GIT binary patch delta 29 icmZ3c7SbyiV$akM`SSr1K(i~W;~w1B4wi+7c&5b6$se? delta 45 wcmX@Wc7bhziV{n)lV=DA5Y%v_bTBY5a29w(7BevL9RXp+soH$f8_l?w0srC(XaE2J diff --git a/app/ui/style/olive-dark/png/ripple.128.png b/app/ui/style/olive-dark/png/ripple.128.png index 9ad2b7b08b4cf11570eebcd6f9cffb759afae0a4..a5b69adde8aa5d1eef054fb3ecb9caa3e901651a 100644 GIT binary patch delta 10 RcmaFCdxLj^%0`ndYycUI1TFvo delta 24 ecmcb?`+|3Z3NK5slV=DA5Y%v_bZk`I&ISNm@dptA diff --git a/app/ui/style/olive-dark/png/ripple.16.png b/app/ui/style/olive-dark/png/ripple.16.png index 1222fd0a54b3377b1f3bb8f9d9c2453d684a7238..dfbd97a5e6b4c91c393caeb9adb4de41675ae15b 100644 GIT binary patch delta 29 icmdnXyq0-_iV$akM`SSr1M>zDW>i1IzjmWrIU@jhX9z(6 delta 45 xcmZ3>yq9@`iV{n)lV=DA5Y%v_bTBY5a29w(7Bes~ZvzDW>i1IzjmWr4I==0i3m^t delta 45 xcmdnQe2961iV{n)lV=DA5Y%v_bTBY5a29w(7Bes~Zv diff --git a/app/ui/style/olive-dark/png/rolling.32.png b/app/ui/style/olive-dark/png/rolling.32.png index 2e91f35aca05ce9e9bf9310a496fc85d07fd4886..c985072e95194e4e1a15e385b19e891fdaf62d6f 100644 GIT binary patch delta 29 icmX@cx{Y;$iV$akM`SSr1A8I}Gfq9cW7|fz1||S}Y6$88 delta 45 wcmdnSdW>~~iV{n)lV=DA5Y%v_bTBY5a29w(7BeugCxI}dMb*sP8_gP+0QqDKG5`Po diff --git a/app/ui/style/olive-dark/png/rolling.64.png b/app/ui/style/olive-dark/png/rolling.64.png index ffc6f510946b5317cf323dbac978ad1d0a09fbd6..9a2a970cb5dc874daae42f3695604a33bee4c4cd 100644 GIT binary patch delta 29 icmZ3-F^^+{iV$akM`SSr1K(i~W;~w1B4wl73uXX+%?Wn^ delta 45 xcmbQov5sSciV{n)lV=DA5Y%v_bTBY5a29w(7BevL9RXp+soH$f8_ixY0|54#3kCoH diff --git a/app/ui/style/olive-dark/png/save.128.png b/app/ui/style/olive-dark/png/save.128.png index e47ef5ff9b2fb5379f266db3b5b0ef124fd2abe2..631df4fbadda37599b2aa2c6f47d50055b2dd721 100644 GIT binary patch delta 10 RcmX@ZxrcLt%0`nJEC3f81JD2f delta 24 ecmdnPd4_X>3NK5slV=DA5Y%v_bZk_d%>n>b{|2)F diff --git a/app/ui/style/olive-dark/png/save.16.png b/app/ui/style/olive-dark/png/save.16.png index ad801619ab9dccadddb141259765bad22efa431f..5a74368135747c593febad024828b309ab135b0a 100644 GIT binary patch delta 29 icmX@YyoGs!iV$akM`SSr1M>zDW>i1IzjmWr9U}mG{Rmb7 delta 45 xcmdnOe1v&|iV{n)lV=DA5Y%v_bTBY5a29w(7Bes~Zv3!?x4 diff --git a/app/ui/style/olive-dark/png/save.64.png b/app/ui/style/olive-dark/png/save.64.png index ab4b3f22a9d4b7482392e9b04883e77491610ec5..86577cd0ad08dd6950eab3d1a27810d488e53bd2 100644 GIT binary patch delta 29 icmey)`kZxwiV$akM`SSr1K(i~W;~w1B4wl7MkWA`vzDW>i1IzjmXW0wVx{dk8uJ delta 45 xcmcb{^o(hOiV{n)lV=DA5Y%v_bTBY5a29w(7Bes~ZvQr%0`oeYycXN1XTb4 delta 24 ecmaFL`;~Ws3NK5slV=DA5Y%v_bZk^S!Uh0dVFx$> diff --git a/app/ui/style/olive-dark/png/slide.16.png b/app/ui/style/olive-dark/png/slide.16.png index d3f9ee239b934beca6d8e9ee3e7e9f468f20163d..04cea2422e72120b8e6b38b29f8ca693e795cc65 100644 GIT binary patch delta 29 icmZ3>JePTbiV$akM`SSr1M>zDW>i1IzjmWrIwJse#|RMs delta 45 xcmbQsyq0-_iV{n)lV=DA5Y%v_bTBY5a29w(7Bes~ZvS|IyNf4WCH+BeFmuj diff --git a/app/ui/style/olive-dark/png/slip.16.png b/app/ui/style/olive-dark/png/slip.16.png index 2fcaac045aacaed31fb9fdbf9c3c527a5cf5b4ca..a69104d88004afd86294c3c7846e1c080001f0d5 100644 GIT binary patch delta 29 icmX@dypMT;iV$akM`SSr1M>zDW>i1IzjmWr2O|J|K?rmJ delta 45 xcmdnTe2#g7iV{n)lV=DA5Y%v_bTBY5a29w(7Bes~Zv5q diff --git a/app/ui/style/olive-dark/png/text-bold.128.png b/app/ui/style/olive-dark/png/text-bold.128.png new file mode 100644 index 0000000000000000000000000000000000000000..21989be83f4cc78c2167773f58143a40347478a6 GIT binary patch literal 2352 zcmV-03D5S4P)VJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^M(UP(kjRCt{2oo$R< zWfjMN{}#5T+gA&vrCVsBLco$nND&kyga{ZS0{tQh@r4*QT0R;Kl9)haI>h+DEYcFuLx_=nh z4-5c%s@nlzH_!*{1p0v;z%EIR*NtnE3t(mwfwO^y!0CjYJR6u(J)Q%c0ZdLkmlikz zybo*!wp6zpflZPIOHM2{(F8EFnS`CZ7+3_HTW#k6r^Jd=n8O4S-Uc=RFH724c1mL- ziU4NzQQ+4x#_B*e0xtnC0&hqfDm$Ilh$X-!KyQq(I-EY>S>S0&+e%NS877pTz&K+r z@KxXsX7*V1hf!->fHX`1t_FI|Y>k;+R(e7s;R2-RQs5~wd(g~gm7dJ;xB&UM30P-l zx0Ig9a9n`A%myAXvz2Cc>Zs4ofD2HD<-n75cuQ~r%5f?1D>Iu{auO~;SiTAh55xe}s?(3L!Cc zBG5%hAe~&@&INj^Z9etMOBC=~;4i5Ib(#Rbko40O1Dlx$XXZXe_+EZFA!)S~H<;N< zNtQB5rwNdZ>KFaDYWt;`O#rR{z5rZ9{uKHiUu8N*(XI)Dq%Iu8P`XNq-}nN3d_zy)ZL zYT?IsbA=0RI)Dq%B2~GU+cJb2AXFbq ziVM&JX7*uV6(PYiHR~iDN*%-nXc9BK3V52ZdM7nUfk!gL@ubkvFtY`~HwaZdawUeY zm9!;CAQ#{SnAu!HTKH#xE6H=nZ?K>6Hj{;uS^zWa2F@a!)td(_1ug>?6r9$5lD6jx z)@cIVWM)g+cwM7}{B*+So@s=#^GWmV+F+fetTmTAO@Ir?a|*Tu8-crX2la0O^-T%x=$H%XLB(=I?<7G{hU<&v}u5Q%Dm z=lK~!`VpXJTnNn06l)L{pmuyZW2~*!iKj8+0z|;fP6IxdF=Vtt(k?(8RuEFlbKwHi z1v9&xge!MOU~{a2T!1lPW=nz9fjaD&Tgv+*5fHSDaUv@Jb1+JFV7jw`~I|3ZfDZrd+8}B?Dd*_3H z4eS*51K&?EunW)`Je;bfj0;eIHUp2R8r%h_HwSU0QKfOk~XCb-~!Z_CnP0b zZ|DNllV0Hd9D!Vb`q2yA6D#FwG&=o6(0Iathk+mFY$xXe)PudiU6NkN9oPjZ&!2%i zCB0uFxC>B@1HdZa(b!k`TEPX#j}fYh-7jfp>B+bN`4}Q3bF7lIq3~S(iwlsRgTQmZ zBa+@NJ(=Ti0n+g{@C@*bq}`<_GZL``_yBkfxQI~D_+;b|;dihecwW->!t-g0s6A`V zYyxmL@DYLx=L6>v^6hdjo=D9B;IF_NgjDU~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq_xY)5S5wqIc@#yZu1LGbBUr&3N6Ra^z+8-H@TNkLkJT%*xmDTX^fsHe-o@SZDy!(Jz0f)(* zdyV!MbA&HUy2A784aAyS}~85+bJ!P4iXaX@B+y~cw6CF_<%KR9>OdnvPw zvEO&2iQk1+r)~48;toC_w&CG7`QNf>i;hH}s9-HqsXh4L?FFOxfw(Z4as$s_bA%Th kx?dstKr+K4>-ft3398;J&OSWL2n=urPgg&ebxsLQ01IBj&j0`b literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/text-bold.32.png b/app/ui/style/olive-dark/png/text-bold.32.png new file mode 100644 index 0000000000000000000000000000000000000000..2c91c56f6439d8062f70da05aae92daa2cc7ea1c GIT binary patch literal 758 zcmVVJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^MzBuPX;R9J<@m%VEg zQ5400Cu(#tMPk$#l1d^rN7YqZ35XLap^55Enr! zg@D8+h>8mdYlOJR;?2S`J8#0UGrI>~G56egbKZOR-FpWH45baW_XD%QG%%HnQD6kv z3DlCY25bO7fp5Sv@Byex`q7JkTfn7)3+Y4)cnds~^l>xip&mYzH|Htfx$Wz=bH7oA zfHt-O^T5?X320;9_H2yYT416Eun4RJO+x&PCF2Begs|!~hJZQXTCW0DB|VLB_iWDq zPk_A{{IS@ir5%B!CE#&{9<^PoR6v5S5xamL{SYt}u{S0Cu2g{SJ;3D%{U-Kaksutl zeW>GEgcQAtkh;$#&uOd!kIE1*0lX^U5204vl=P(x0Y&i#xG1Tf=Tv1TtO0jypB|I| z2qk^d_JZxM$_vGgU;|i5*|r1YWT)UxTmU`;U756qfE7t6vk2Q0z;WOTFcW!y&h|4& ztxjVpM1LRXZ9Y2awuSZWMN`U^bBaXC<_fCRC60I;tg0>*Q=WDXe`q32w z+?CX|{ZMT+gb?)$l3v6dsuIuuUIX_f{mOI9`Zt^;^!Nt}J>DeYZVwYm>^4F?2v{Yo ovO!2dOF$iXC+S~Fi>Vg>0TfbzRu;?rJ^%m!07*qoM6N<$f(a2lhX4Qo literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/text-bold.64.png b/app/ui/style/olive-dark/png/text-bold.64.png new file mode 100644 index 0000000000000000000000000000000000000000..d2682fe23426c19d79eb3fa0c81ab8efef20dfe8 GIT binary patch literal 1295 zcmV+q1@QWbP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H102FjZ zSad;kbZBpK08L?XbZKrNQgw4{Z+5rK%$WcH05fz&Saefwb#h~60BCe{a5^t9V{dJ3 zZ*FrgcWG;BZDnL>VJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^M#JxN4CRCt{2n_FmH zRTPH5KWWn@F^SkF+FB?UY((%y3W~HU`qYXd3L+w+pjee^MM0=ONktI^eG);%2Zf?& zUqz`{jW?=R!7G%YO$#a*nwmCkY_fdV=g?88v-dhPb)PXm9A<{Bf9*M6X5Y_-1^vIJ zRD+rI0;_-#U>H~qoDB>CX99!8`vIW0u=N3pfmvV%I0Bpi4g*ub0bruxb)Tdo-kVBM zQvhbx4?GN<2dn{B#P}*|9{35^3+x8QBpq%?K`{VU03Wua@B|$P-T_{d^m!{2*9AbM z#(<|J{m_bJU9CuRnzbI-X=eACS>>u&M*t8S)CYm*%&ezMqD8IwKL43E0hrlVN%Nir zb^Qf2Y7?;8YwiR909(v#)MM-v0E>Z#JjQml0mp&gfIonv#pm)W)d%zg=MqMeRsR`R znc1kMA5%>20rOFb2cSVu^7l3)Mm>bdTC}nSP|W^5c31~eg0lrs=%B;1G$lB9 z04E%t>6GBy0VLIDz<^&<4A}xOvn9Y~iMENjA~W#-+e*gduUN-j?)zs;ON7mYdneQ~a%q@YC)FmJudHtAUGvCC>6DfyX_@ zIxdR-Q^$ZiB<=B-vupzrG!1O_-aOPBz&_w6Nn=%#WYY*HY8<#l(qz>{b^Qgb0d|?$ zBWAX&N}{>~fY6iN1-xr!H+wfp>I|UNAg~>H#>|qdbSD5Pbsg|RC#?v1bOo>_#n7&S z&>`U4h`2Kd%UG*OpZJ_gbHMen!{T;zgWseqivyV1S%l&62EumNh_mc&;BH`ROmH?; zK+>e7-IBHwCPR-AHdZ{^7~4H&1E5ioW+m+)G;E%A!EWH{n7}Lnl#(<7JV1D6C{^oY zg0cnxAn7aMGl%tpn4s(d6x!wRtd1ES)&+pK9q4NoR2KjYwr%H%xsEq zFap9{eVXtT*rMXK>0rg7S0!0Y;OVFWL--$i^JqV?BR04Wy+DfQfNhdyV-1}K;8{tZ zrWiU2z{`@JPc>!N4LURjJT2)ZkGbvu#(_tx><-rz!0*6|z$=petdgj10QLfJ0Xrof zYemACjgel$BkZHV+Tt2)Md1;e0=^&|m3v>({#F;@+EF#Lm7F~2FkDHrvLx|002ovPDHLk FV1kp&IMDzA literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/text-italic.128.png b/app/ui/style/olive-dark/png/text-italic.128.png new file mode 100644 index 0000000000000000000000000000000000000000..bd4cf588bcdd143ad54a458ed2f9c4e8c484631e GIT binary patch literal 1631 zcmXApeN>WX6u_VNMGzqq6h+)L5S_XWphQkmL5&sy=;Fx&pr1(_x#R%?w2+-InkBm zLjnM}3bycsm_!_hNWku!vEo5YxG1({Dgp4-I1beCXtn?|GF1Ew)w}XSm0Da@0Mu%A zs8m*}l!z4tq4Kh#6VIZ3FejSBDZX4)EH4Aw#bqj~j43Qvmdf{hJvh{ay@&q~DKC>0 zfMS(Ov4O*p$an9S%aoyNX{mH~LB3S%z;PTJMr(=>hjkgV;OZx9C#*IHK{^8d{9+6&*_zkNS)pS-bc^2U3*@vV^O01{B&zB$l~ zulurhEF$tuV#?jD%DX4m&U|Y-o;zwY#)Ma%ac&F{GzLhiA--)K(LZeKgOT;GFYtJ= z(_bu9Und>qr9DR0ZF{Wv{bKAv4Gl!$-#W7Lw}Fz@?>b1&_dEf~ze49u>9v2{Q~gb zoNI9?>lo%t%Lr|`siox++KuSf)#ObpXxous5Ay|Hera8Gy9?zsZpDb5r2~emPSLpz z>;+U!WCK&ep~*x>Dq?yJ6~?E<5hm6g9wXe*TI9+4eL?*}xA18#&Ud^Acb$9E;1*(* z<>0&yttFi3t8M$!&%pQ!6XlMmbHqO-53dR()WbI6*TPE$2S^ zdzBEFY+!P!IfGCAiEaK+(zKRZF|9xAw4KcDSVF&*W+R37(2bWuk#cx1eW9Pd zCFHm#H?5VB6LBPyu6OpU*!qJJEHtx>dzSk)4Z;!VD-F%ukITEs-Xb_o9uSY7ibGCCGtx;-TgzaY0g=mZyMbtE_B8D9x^{TY8X5&7f-f9k8mlOqv9 zKyjSFL6X|}P}y?dL0Vp9LJ~N&1`?&2a=|y55AixdL?C$XZpt@O&n$1Mg!eY1JfEeB}>n zeo_PrF~pLa!;WM=U7Fdsb+{HxEmrxTBkE>QmrgJ`8>G0;wu})uh#_?38qTDM=h^2h z;gS7ht{Td}lflkk(nLC0T&z{YHQ;Ao^KPrMfhh^N1PqH&4;WnXQT~)$L$t$So-wl| z^`^U3bsX+_6xB?_89@liSmDH2Eyl{Q-fHX_x*SaBzCld~SAXeC@hPp9p_HA-E;J=R zADV+Lv|5_=2Rvn_3QW@UwwSp?O*(jZ|AA?-r2aWZUCs3aEsb696f_(nfL{JVx9-%u z-VxM{wdRWGqPLVeydT+j$6SKIefvD02hHJ!W9x#E%Q$RY_BnM|r()R>TRVG(vIejW z5d%T?5?xYXI373P!OR6uKQD$e)WC*28eQ{af;S}k$HiJ8X>z50^H_h@tDnfdXFo^h z8kR|8nc4vCdqvDf@Uu(av;&1D*bl~<{i6{7zRIa?Ed?IV1{FgY9o>&6SMG4K(7EC6 ze5@d0udw2ZILIhoH{(BdG4bShR}Q#(yOl4gf8&?90SeO%@u_2SlYy(~ZF2{inGVUc z7PVhRNoNT(y|OA=Vw~+x)Ma&NBOjofOXyhCjP7hu>b&52p>C_mXW*>V9X&E|3=U+5Wjm zFGK65!_#0#>@w>PpmT6-$j5e#xP%;eYwy~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesQsR&i(`mI@7&9K^;`l)j()uVZDNPp!jQ!m1mx$sWIPu%v0?LH z6i~s=Z^$X6)#;;R)$8T#H0_Xv+q=1^-=sZFS^w4ET0MRGG_Or9ao)f8tg>5hjG?dK z)`hB7tD5H@_K{{dZ*kae+Qs9ta>r7n)OY$Ad2G6UW&SG;{RGzeJN}w8%yvFs8@ktz z>4wy+(Af*QHyB@eUC%t}Od{`0jt1T{k2bD~Q)A5G-}?2Np2KtIZA_DVlK<*AOk6)F zMYKBNh|Rr=-k-uk#eEwlrg{}MJ!XsFzlzUV{lJ0mOn=wSUS?3k_|n$?-t;+n*ML4{ N@O1TaS?83{1OVi(sT=?R literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/text-italic.32.png b/app/ui/style/olive-dark/png/text-italic.32.png new file mode 100644 index 0000000000000000000000000000000000000000..48bc6d415c90d620f8314297ace529e24548dff5 GIT binary patch literal 532 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?5GL=a}2dU(e+prB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq~J<)5S3)qV?!>L+>LF0we&HQykEnCc0ulENWCQW~N{;Pv+ zkbTcI+duail+LbYkm9k_V>=M5d;ZemESU6U;q~>R4Y_9-IiwAw8E&wbW&PyYq02ep-2cE!?(-QUKW%4x zk@7E+VOx3Q-X%7gYz#b;{&-%>_G~!!D*k=t#4mT)5+1I- z@y*nL=Z*Q)5;?|<8AfmF~=)l PWH5NT`njxgN@xNAt$*2( literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/text-italic.64.png b/app/ui/style/olive-dark/png/text-italic.64.png new file mode 100644 index 0000000000000000000000000000000000000000..110372100af1145531fa958c8dc011f7c08cec24 GIT binary patch literal 889 zcmV-<1BU#GP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H102FjZ zSad;kbZBpK08L?XbZKrNQgw4{Z+5rK%$WcH05fz&Saefwb#h~60BCe{a5^t9V{dJ3 zZ*FrgcWG;BZDnL>VJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^Mzr%6OXRCt{2o6Txd zQ51#0RVvtlSP-jFQK_H7-9fl)w2du-;@q zB!IgCJw8aohQ zV53y?8UT1Z#0^QmOEv!=02GTqBm*$BOTZPUti1s6cZgl!O-TdU0K5rsQ_|0p2C@O9 zKL3yiz|7`>8&26+`}-!!Ou*_0{TuzfHI6a?c=6wo^u4r+>;w!`@%Td$05h8dZaZbg zCqT$czzQ(y)U+Ca7yoaPzC;+w0&vf{{vyN$2>{G&7Fc%5LMA}SNx(8N=hTEe|BwT~ zTmN@~PZ35S2Y|c&OF9g3LNEX`n*lmbSy=obJ^{CYd8a090)%(~Ui|lg_Yp>ViU#0K zfa{VDLY(|lZ3zgCKLi3Wvuh;202!pn1bExu1K@3hk)x{VgvdKd`yoz_sHQVQFGF1P zDe8#K0&vwS3!eZXE&<-Be@NjMAcIs3fRB=PL!9)fmNP;r@rM8aW_BL9>6C@9|2;({ z;LZqr+M59U_pld=QssWbp@{oj$a zUD(4=l?LEVfT_>_Y| zx>kU9b22kf2Au~IN|MhknO5Y=#>LlndqnUc9 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/text-underline.128.png b/app/ui/style/olive-dark/png/text-underline.128.png new file mode 100644 index 0000000000000000000000000000000000000000..8ebd4ab8d0d949c8b55c77ab2696d32d94cdf7be GIT binary patch literal 1623 zcmdT^`#02S82_4Kavem+)+DiP6f-2bEK@Tims}@>3Ny@@Y0PD3hLLd@si>_b%3+L4 za!Dw5+$T(1k#gI0DZ|&!sg00HQMn{Lc7NVKV9$9j=Xsyc=Xsv@oaa23{e6#Wsqat+ z06@#r!!1zZ`J1W=Q`kpn{Bwm|?ww{wmJb8rk2hl^(s0WOz| zq|mACNIa8>WU!(OJvTtk{zg5ly2zD4imuP8jEMydnFw;7BK%n z{;+mzf&$@aS5HqF)rXo}9G*>g+C#natFR!r*?yDM0V$gpuXqCw%+gnaUr!eA6c8YJ zW5yBDSjud80K%iE<56$mmR?ufsxI{?wl73J**eY_7i$Z1{a1N%%QSNp&IqqsRl~~GFg&6n81lhaCQXNQ)X;SOrLm`GWg!t-` z72Kh*d@xe@y0ir#eKuGKA*>{FJ8hzidM$6Y1(w&{TUs{~jMEn5u1SOBlWk@MZZXU` z^!8;go4EZ_h4QlM%bZ}Iah*wIu5<}jS?$sJWdoLY6ZQLtp$x@{2Js?yJ#TQm==8b$ zbvs+i-Pfhr`}lg4clFP}XkacCx3$1QxyD-LWHQnP8bJMWzI8VsS|0WW-p^XvZ~qtG#GmBGB{!;Sb)+n@MEqZh5lG$jxf{G}L({YT8v}^7Kz%a#Fc` zZ(F-o-FUT^S?q{6a(3!k)zk`G*o@*6eYC!<9zX(o@c=YzPtxJ|15LpD0H38owM5s(F#=+wsrt;<&Y&bs2R(<(vqg9~ z({V)lqlZ?b0F_2w0qS6BA^zu&-Ny^&0T-45uXc&!< z)?LTJ^3n2Sn+5BUKd9BPItk{kncR+)`w<@XJ;zItLjQa=G)}EAMSDO=W+hvhRFAHF zTLvU0;2JfmrlzO2IWOU5)Vs9PbAqtJD%VPtybSRGj1HN?wR=0bEE;#EqN<#dlNe^A zMWHoh=VkGLG7?IH7<@_|C=o0g&8;tm|0#8CMAj9b)v<@iluN6dx4ld(<+SKvRX1;% zs`0D+Gj3U8hJ~)%RhTVe8T6u^3edZF9eDWP@()#M#URu|f3~qNazSy=0na18ZuhVe G=l=%B#r5<6 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/text-underline.16.png b/app/ui/style/olive-dark/png/text-underline.16.png new file mode 100644 index 0000000000000000000000000000000000000000..d48167781fbf07085174d0fc3b9ae819933cea7b GIT binary patch literal 402 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9G08$g&*{RsbBprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesQrMai(`mI@7oE6Sx$ihuIE_}DhaI#W-FA`ywl<;wxBh7VT^*2j#=N_|FGXtd@$qBl?&0C%cB|ZpVa4NJp5#SG~?_iD{rlK`6@Ug z^=Bks$tfkJZLh39u&ueO|A1!?)A<8NN@e@gURAGR?D@~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq~J))5S3)qV?^xgIcbEB5nIyoji>UFJ9GkRf}uTn_0!oEO+35 z_KX?Q2@8BaaHz2zDZaxq<%ol4VAuTve!Hg@_tma1IrZ=Lm8k6h)ob6Ee0wRgVztUv zm92|cPu#Hm;kRvFdu;bN-`;8Dz;=Q`Qh_<8A&Pm=&OP=E*MI*NXU|ko^s|8JK*wo$ zYsMYrKSP)fY&rdY662XS*BnLuU9DMsRAZl^alP?X21oJ0Jqnr2vNkP=Ot90MJN@Ts z20q5t9pX2pUeS@XW6WU|^Ll@v@Fs(HG>@-&)anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq`kAr;B4q#hkaZc4vzOinQ@#w4Wqk%slJa z&2RqhD#)w*dG@%?yBsm2yS)*0o}u~->P(L(D}6c;r}?Y=J3~0r$f&J68H-M^is%;`W?a+>Hh*R+j(j%%2b zwr!U(UTq*UbMI!LLLZm3+aXuKT%9ek>Xw4ugI3k+Dh@7jjQPxu?Gi3b+RfqIlE0z& zK(=?rspJA1BWb@Ayn?@i#11G626|_7H5{K9865gsXw!d((BF-JC#rs5b5oNkkJ+AS zv)qFkr*BOA*Zu82@ae#$^#^3L_eC~zoM9?g_U2phDl@yT)A+!<6Mv?4)NE)|zq>ZH zR3L-#w9@HyjLJ$vR?$v3c^}9WXl;69y}{pQ*{zd$lfURGCN<^=SvT}29Q<~e47&AD8RyPJF6t_OrZ~T2g!oc~XMreZW1^zb+Ebgw(SvHT+-Q`L5 z!f#Alb0R`Y8Fn~sWRKuVYdoxEG*>F*^y>{BK1|0s^ZQ;s;VoFx*W4~;&o40Xxr1;; zQ1~P delta 24 ecmeys(ZD%Dg_ot+$uool2x>S|IyNf$vj6~7s0K~| diff --git a/app/ui/style/olive-dark/png/transition-tool.16.png b/app/ui/style/olive-dark/png/transition-tool.16.png index 75b4e04f1a339a20d050d6bbb72e9bd035bd76f7..60dd098d5a9c89b52f092e0959f8d29a4f939355 100644 GIT binary patch delta 29 icmeyw^oVJKiV$akM`SSr1M>zDW>i1IzjmXW4kG}BGYDP) delta 45 xcmaFF^oePLiV{n)lV=DA5Y%v_bTBY5a29w(7Bes~Zv&3{3z4 diff --git a/app/ui/style/olive-dark/png/transition-tool.32.png b/app/ui/style/olive-dark/png/transition-tool.32.png index 793cc01420b13c275b3df60c2352412bdb24ed4a..a37c3e70e9634bfc1c0b0eb49688267d4097d39b 100644 GIT binary patch delta 29 icmdnNyn=axiV$akM`SSr1A8I}Gfq9cW7|fzB1Qms(FnT$ delta 45 wcmZ3%yn}gyiV{n)lV=DA5Y%v_bTBY5a29w(7BeugCxI}dMb*sP8_kLs0rSfX0{{R3 diff --git a/app/ui/style/olive-dark/png/transition-tool.64.png b/app/ui/style/olive-dark/png/transition-tool.64.png index 81b6efe82fc31775c2f85be09a9123112fa8a6b5..fef6d67f910002ad0ad31ac9864a3c245e998b30 100644 GIT binary patch delta 29 icmbQn+QvFTMToP&BeIx*f$uN~Gak=hk+RV(fC&J2x(KKM delta 45 wcmZo;oyIyrMTw=@$uool2x>S|Iv5xjI14-?iy0XBj({-ZRBb-#jb;H%0PH6UHvj+t diff --git a/app/ui/style/olive-dark/png/treeview.128.png b/app/ui/style/olive-dark/png/treeview.128.png index da0ee79379b3668c3f2082f7a9bf372068b9b0f9..963ad9acb18fa1e2779af3e6e502c38591a7f0a2 100644 GIT binary patch delta 10 RcmbQi-oZXWWur+7GXN6l11|so delta 24 ecmeBRpTRysg_ot+$uool2x>S|IyNe%GXnri<^~b~ diff --git a/app/ui/style/olive-dark/png/treeview.16.png b/app/ui/style/olive-dark/png/treeview.16.png index f1510308c717ff46c5659b1f66cbac7e3dada21b..779bb2435b2c63d6d1dc45faefb2726f030cf1cb 100644 GIT binary patch delta 29 icmX@Zw1;VeiV$akM`SSr1M>zDW>i1IzjmV=8zTUFmj~S|Iv5xjI14-?iy0XBj({-ZRBb-#jb>LE0q!^ozyJUM diff --git a/app/ui/style/olive-dark/png/tri-down.128.png b/app/ui/style/olive-dark/png/tri-down.128.png index 34afa6bbf3b061ccdd189490392e63caa6667e8a..d326bc212aca585f0bfe70435bf96cdca976b042 100644 GIT binary patch delta 10 RcmdnUy^wo?%0`n~RsaS|Iv5xjI14-?iy0W0H-a$Z*XFmL8_hf!0SE~UB>(^b diff --git a/app/ui/style/olive-dark/png/tri-down.32.png b/app/ui/style/olive-dark/png/tri-down.32.png index 4a708fcb41d1b48ea1f7e63f039474a049e7e182..b359304973fbea303c60995ea2ee46b4027bd498 100644 GIT binary patch delta 29 icmdnYvY2IpiV$akM`SSr1A8I}Gfq9cW7|fzw~PRIL>zWur+HD*zT;1DXH; delta 24 ecmeyz)yF+Sg_ot+$uool2x>S|IyNfCvH}2Bp$2^b diff --git a/app/ui/style/olive-dark/png/tri-left.16.png b/app/ui/style/olive-dark/png/tri-left.16.png index 14af417c11ee44284cd5ac09c488eeaf84cbe1e8..eff00ebadf8aaa8177c25ac84ddba3c7143d5f80 100644 GIT binary patch delta 29 icmaFLbd_m>iV$akM`SSr1M>zDW>i1IzjmXWJR<;sK?pYh delta 45 xcmcc0^pt6WiV{n)lV=DA5Y%v_bTBY5a29w(7Bes~ZvS|Iv5xjI14-?iy0XBj({-ZRBb-#jb?|K0RH6*4gdfE diff --git a/app/ui/style/olive-dark/png/tri-right.128.png b/app/ui/style/olive-dark/png/tri-right.128.png index 4106005821747d0a67231711326cb67dbe8a36cd..b38b18f3086c4e846c6cffcc36889a2f5914bc6f 100644 GIT binary patch delta 10 RcmZ3@J)3)i%0`oNRsa;I19AWW delta 24 ecmbQuy_$Q13NK5slV=DA5Y%v_bZk_tVg&$DCzDW>i1IzjmXWDkA`bod`() delta 45 xcmcc3^qOgciV{n)lV=DA5Y%v_bTBY5a29w(7Bes~ZvS|Iv5xjI14-?iy0XBj({-ZRBb-#jb_)F0PmR!%K!iX diff --git a/app/ui/style/olive-dark/png/tri-up.128.png b/app/ui/style/olive-dark/png/tri-up.128.png index 408c6b759ac8ae26dccda7fd9bd678d0375a550f..43becb6a52ed139ee841c6e663cd3290947a21b1 100644 GIT binary patch delta 10 RcmaFLb(L#^%0?4IRsa|u1D*f? delta 24 ecmcc0^^|LZ3NK5slV=DA5Y%v_bZk^KVFdtL+y;RF diff --git a/app/ui/style/olive-dark/png/tri-up.16.png b/app/ui/style/olive-dark/png/tri-up.16.png index a030e28bef4113d934495af87eba645497f7d712..22ad8b19c29e579c5f883412b1632da60b1598e5 100644 GIT binary patch delta 29 icmeBR{=qasMToP&BeIx*fq4T6GpZlqU%S!Gi4g#L%LpL= delta 45 wcmeyt)WJMKMTw=@$uool2x>S|Iv5xjI14-?iy0W0H-a$Z*XFmL8_k>;0R@u`5C8xG diff --git a/app/ui/style/olive-dark/png/tri-up.32.png b/app/ui/style/olive-dark/png/tri-up.32.png index f61984c9db6f01586a83262664c3fb99218b5883..1dfa4971d232cfbc7a1d12a9814d86aba6e1eebf 100644 GIT binary patch delta 29 icmbQq(#bMGMToP&BeIx*fjtp~8K)lJv2CNS|Iv5xjI14-?iy0W$lR%i!qH5;tjb@h_0qQ#oC;$Ke diff --git a/app/ui/style/olive-dark/png/tri-up.64.png b/app/ui/style/olive-dark/png/tri-up.64.png index 06de4807969af9f49796f0054458d4fb143e69f9..1935275e00744d5ffea7f6fd247e72e9501b9ed7 100644 GIT binary patch delta 29 icmX@Wwt;PeiV$akM`SSr1K(i~W;~w1B4wl7FD3wkbP1>c delta 45 xcmdnMc7SbyiV{n)lV=DA5Y%v_bTBY5a29w(7BevL9RXp+soH$f8_j+(0Ra3#3pW4& diff --git a/app/ui/style/olive-dark/png/underline.128.png b/app/ui/style/olive-dark/png/underline.128.png deleted file mode 100644 index 67ad4981b5aad1cf566a523bb0844b02bfaafc82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1303 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zys-db#zO5=Kn8Ic)B=- zRLpsM+qOeCRN~mj|EniC2rUwbkuL32IL3d4MO@UR)l4gCrrVtbt|1$QlNGg+5*JQQ zP+TOYq|wy6NXV6C?H`8g{Q^pl+!IR@g;^HwIQV4ajHx=>d3UPMo!Pnj{paQ>-)+;= z|LweEZEUWg;FO$^Y{M09Hp1{*0SM=j6)Hhf+hQeIm{mC7*(D#Oe$tL zIf#YBl^g7}&q&N%Qp$ThF5V((-zhh)D;y85a~XT(l0BEAQ&v`b@~?c5HgU<=xX<|9#G$iKSw9eV4v1nLaIl z;qC(=xBU-n>#(?W_|3!+eg=n2R}Zv1Y_9&AoE7e}=USC;_t#G@0WLK@ypL&ZbziontzP1s@Jkm`nPCz?C*&C*}V(Xl^=b)Hao&^{d~r0leVx|NNLp0Dl@GR z-C?WLxBcFUA~s&2bCw>^K9K6X-gbd_qb>LQy5!ss@@+0h>K;Vx;%}F#`a6%aLPhCa z6tB9x)E;IXwM?!Gwi#JF`@Nnu+!g#-_PTeC)}(V2O6D(dwv8#5KV|3ne4E|0)w7nA zPFki~d;43=x)X|?m)G{+owZ1>CHB?7@ZQsFpDs;PeH+?*{9<4nJ z$hLzpWB=2SsX#%=64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1SlJzX3_ zEPCHw-pG5%fv5GMF{>%FitO)={$VFLd>D2w&|v-Qp1kC;C+EZ~wMgRZ+ diff --git a/app/ui/style/olive-dark/png/underline.32.png b/app/ui/style/olive-dark/png/underline.32.png deleted file mode 100644 index 1c5e4cdef6ac996ba7906470e93acafd9ede7148..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 353 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK@;M7UB8wRq ztocBg@yxb`%|JoP64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1U`46?H&uw1@x7kh&<9PV&y(RQR{|^;#!4{hzOh6y3q`NX}92LzAlAhV@h5eQ2|sXQivRvy0_Y n`N4DCi+4ZT|3^Ab`~k~ym3GbP0l+XkK`0Iq= diff --git a/app/ui/style/olive-dark/png/underline.64.png b/app/ui/style/olive-dark/png/underline.64.png deleted file mode 100644 index 2c0bfb5e51012f7e106d3aa7e67734eeaa5eecf9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 641 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=EX7WqAsj$Z!;#Vf4nJ zl*xcF9gP2NHH)l{_}Kk z45^s&cJ_WhkwB65`f!fkUA=8B5=%A+I-O<~Q2uDU#rVjN=d533pK#{nzBQ5BGL4O! zyF)+0q^09_jTpCAM?w0xGjIA|{G7D*+q~+!=d(TY%&db$7#D1NrsJil8WjIp{_cOL zB|qX7Sa&e*@ML_)kQdZo-7s6^0p9~Pa)i{F>fEFlrZaDCJ~b)8Y~{>`^#|pySFiai zcOyE;nDO>Ox$MSU)>Ge?GgW(MsXcJsaNIUwRj#0c?#sN?o7XBP{=49E;B-R2s^|CP zE25{DY~J+jtHkeZ>=oWUiUqq}_isHsYx50ey>FJ^KRT>-WONsjGuXA&|Fto%O^$)h zfnzRh_G0f`*@YOkHM$=#DtP%}Gmj0Mo#~y&3=uQ7G%$YHsmvKTugo-jbvsX^^dvLY zv!$X5JomhJg?dRw?PB&mAbxr3eb#kRZ1#$YeLqfKm?oQW(e`(KgXROy#gA9y-z$_` z_vb#tI>z&j^0qv63^vSZcZ$Op(YT&(wH#m`KJ&y&Jb*Lp-v*`n~W zYf0mh$@{t6ChhaQHT6s2C27y~UYfsaQ@kgscurEWT;%X(?}5*LZ}%ShlYT<>fG<}8 ld%6+@;OXk;vd$@?2>@-83daBd diff --git a/app/ui/style/olive-dark/png/undo.128.png b/app/ui/style/olive-dark/png/undo.128.png index 8fbe34362c576c16709c4c7a374f340289d30a83..544407419fd9598a9fab8079b90347160fe17903 100644 GIT binary patch delta 10 RcmX@YvxR4Z%0?3bHUJf@13&-( delta 24 ecmdnObA)Gt3NK5slV=DA5Y%v_bZk@zDW>i1IzjmXW5+eYC?+8Eu delta 45 xcmcb?^nz)EiV{n)lV=DA5Y%v_bTBY5a29w(7Bes~ZvS|Iv5xjI14-?iy0W$lR%i!qH5;tjb=v~0sEs1eES|Iv5xjI14-?iy0XBj({-ZRBb-#jb_fw0REN=lmGw# diff --git a/app/ui/style/olive-dark/png/videosource.128.png b/app/ui/style/olive-dark/png/videosource.128.png index b0747ba1a83fb17f8db9b4e32e241c2376474065..17318679c7f6e0757304a62c5e7090852eb6a422 100644 GIT binary patch delta 10 RcmZqV`p7v!WuwVi762AU1MmO< delta 24 ecmey!*~m3Pg_ot+$uool2x>S|IyNd^U;zMC1P0Rp diff --git a/app/ui/style/olive-dark/png/videosource.16.png b/app/ui/style/olive-dark/png/videosource.16.png index 030ff60a77ac79a695c65ff1f636a2c8debd942e..8eaf73c30e88c636723ecf6c5dfcd35423e85f0b 100644 GIT binary patch delta 29 icmbQk+`~LUMToP&BeIx*fq4T6GpZlqU%SyQj1d5F?FZff delta 45 wcmeBSp2IvrMTw=@$uool2x>S|Iv5xjI14-?iy0W0H-a$Z*XFmL8_mKP0rofx%>V!Z diff --git a/app/ui/style/olive-dark/png/videosource.32.png b/app/ui/style/olive-dark/png/videosource.32.png index 64fd4ee1799add7573fb8b6103669867a91a88fe..ceca642e1ac365bf5f9b37bbc1ccdcb8dfdd1f6f 100644 GIT binary patch delta 29 icmeys{D66aiV$akM`SSr1A8I}Gfq9cW7|fzRg3_IfeB*( delta 45 xcmaFB{DFCbiV{n)lV=DA5Y%v_bTBY5a29w(7BeugCxI}dMb*sP8_iZR0sse!3#$MC diff --git a/app/ui/style/olive-dark/png/videosource.64.png b/app/ui/style/olive-dark/png/videosource.64.png index d96e9eee232884a8b77820a5e5d7e91ced4ce304..85f9b5f7b360535a36be51002aaf2290dc0ad9d8 100644 GIT binary patch delta 29 icmeBS`@=dxMToP&BeIx*f$uN~Gak=hk+RY47!v@65($d{ delta 45 wcmeyv+QT+MMTw=@$uool2x>S|Iv5xjI14-?iy0XBj({-ZRBb-#jb_J~003MI8UO$Q diff --git a/app/ui/style/olive-dark/png/zoomin.128.png b/app/ui/style/olive-dark/png/zoomin.128.png index d9df8ee670723e28d0d6cb595d923775b3488b89..1b0445b5d030d4a5ddb2a33d87cbaf8e563c1805 100644 GIT binary patch delta 10 RcmdllyIyvJ%0`oJJ^&YB1KR)q delta 24 ecmZ24yI*#K3NK5slV=DA5Y%v_bZk`Y;{yO!2?o9Z diff --git a/app/ui/style/olive-dark/png/zoomin.16.png b/app/ui/style/olive-dark/png/zoomin.16.png index da94f7761a879097d5e25431ef3ff88b06747e90..8a74cc99e3df8a7fc29725463e567d99ec120ca3 100644 GIT binary patch delta 29 icmX@gvXy0miV$akM`SSr1M>zDW>i1IzjmYBe?|a&Z3x={ delta 45 xcmdnWa+GC)iV{n)lV=DA5Y%v_bTBY5a29w(7Bes~ZvS|Iv5xjI14-?iy0XBj({-ZRBb-#jb_&D0RDOkkN^Mx diff --git a/app/ui/style/olive-dark/png/zoomout.128.png b/app/ui/style/olive-dark/png/zoomout.128.png index a2526d460714e573b2bc82b81663e6bc858f675e..970fbdc7343f4211a94429c23e2a3f21270b0942 100644 GIT binary patch delta 10 Rcmew({YH9%%0`nDyZ{^n1dRXy delta 24 ecmaDO{YQF&3NK5slV=DA5Y%v_bZk^S%?kixAO~;& diff --git a/app/ui/style/olive-dark/png/zoomout.16.png b/app/ui/style/olive-dark/png/zoomout.16.png index 1db06cc50daea228a396e1f49402cee7a26253e8..74db77e461fd2248fbd2e780e489ba44c5451360 100644 GIT binary patch delta 29 icmZ3>GM8n7iV$akM`SSr1M>zDW>i1IzjmYBb4CDm{Roo) delta 45 xcmbQsvX*6niV{n)lV=DA5Y%v_bTBY5a29w(7Bes~Zv delta 45 xcmcb@{)BykiV{n)lV=DA5Y%v_bTBY5a29w(7BeugCxI}dMb*sP8_ni10{{f93y}Z- diff --git a/app/ui/style/olive-dark/png/zoomout.64.png b/app/ui/style/olive-dark/png/zoomout.64.png index ba1f1b3e6cd292ef4e400002d5d6c1c7fd59d29d..6ce3d944dfe95d88371337a42356b6aea02966b5 100644 GIT binary patch delta 29 icmZ3&H-&G4iV$akM`SSr1K(i~W;~w1B4wl7JvIP-& - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,11 +138,11 @@ diff --git a/app/ui/style/olive-dark/svg/add-effect.svg b/app/ui/style/olive-dark/svg/add-effect.svg index 5074e60c0..513b3df3e 100644 --- a/app/ui/style/olive-dark/svg/add-effect.svg +++ b/app/ui/style/olive-dark/svg/add-effect.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,16 +138,16 @@ diff --git a/app/ui/style/olive-dark/svg/add-transition.svg b/app/ui/style/olive-dark/svg/add-transition.svg index a04cf2948..673805423 100644 --- a/app/ui/style/olive-dark/svg/add-transition.svg +++ b/app/ui/style/olive-dark/svg/add-transition.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,18 +138,18 @@ diff --git a/app/ui/style/olive-dark/svg/align-center.svg b/app/ui/style/olive-dark/svg/align-center.svg index a75dfa755..093697b28 100644 --- a/app/ui/style/olive-dark/svg/align-center.svg +++ b/app/ui/style/olive-dark/svg/align-center.svg @@ -1,3 +1,171 @@ - - - \ No newline at end of file + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/align-justify-all.svg b/app/ui/style/olive-dark/svg/align-justify-all.svg new file mode 100644 index 000000000..1b7972625 --- /dev/null +++ b/app/ui/style/olive-dark/svg/align-justify-all.svg @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/align-justify-center.svg b/app/ui/style/olive-dark/svg/align-justify-center.svg new file mode 100644 index 000000000..5de36c32c --- /dev/null +++ b/app/ui/style/olive-dark/svg/align-justify-center.svg @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/align-justify-left.svg b/app/ui/style/olive-dark/svg/align-justify-left.svg new file mode 100644 index 000000000..6c3eea5fe --- /dev/null +++ b/app/ui/style/olive-dark/svg/align-justify-left.svg @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/align-justify-right.svg b/app/ui/style/olive-dark/svg/align-justify-right.svg new file mode 100644 index 000000000..ea55e93e6 --- /dev/null +++ b/app/ui/style/olive-dark/svg/align-justify-right.svg @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/align-left.svg b/app/ui/style/olive-dark/svg/align-left.svg index 379dca5b5..ba54c725c 100644 --- a/app/ui/style/olive-dark/svg/align-left.svg +++ b/app/ui/style/olive-dark/svg/align-left.svg @@ -1,3 +1,171 @@ - - - \ No newline at end of file + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/align-right.svg b/app/ui/style/olive-dark/svg/align-right.svg index 9d1759517..7b6d470c0 100644 --- a/app/ui/style/olive-dark/svg/align-right.svg +++ b/app/ui/style/olive-dark/svg/align-right.svg @@ -1,3 +1,171 @@ - - - \ No newline at end of file + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/arrow.svg b/app/ui/style/olive-dark/svg/arrow.svg index 2c5ba8708..20a90b162 100644 --- a/app/ui/style/olive-dark/svg/arrow.svg +++ b/app/ui/style/olive-dark/svg/arrow.svg @@ -1 +1,161 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/audiosource.svg b/app/ui/style/olive-dark/svg/audiosource.svg index 15aba5f6c..5536e4da7 100644 --- a/app/ui/style/olive-dark/svg/audiosource.svg +++ b/app/ui/style/olive-dark/svg/audiosource.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,11 +138,11 @@ - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/box.svg b/app/ui/style/olive-dark/svg/box.svg index 830514e4a..02cbe3e8b 100644 --- a/app/ui/style/olive-dark/svg/box.svg +++ b/app/ui/style/olive-dark/svg/box.svg @@ -1,16 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -94,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -115,7 +138,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,7 +138,7 @@ + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -783,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -804,22 +138,18 @@ - - - - + + diff --git a/app/ui/style/olive-dark/svg/diamond.svg b/app/ui/style/olive-dark/svg/diamond.svg index 523802d5e..e59afaefa 100644 --- a/app/ui/style/olive-dark/svg/diamond.svg +++ b/app/ui/style/olive-dark/svg/diamond.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,11 +138,11 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10998,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11019,11 +138,11 @@ diff --git a/app/ui/style/olive-dark/svg/error.svg b/app/ui/style/olive-dark/svg/error.svg index 19397e15d..abe02702b 100644 --- a/app/ui/style/olive-dark/svg/error.svg +++ b/app/ui/style/olive-dark/svg/error.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10998,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11019,7 +138,7 @@ + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -783,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -804,21 +138,18 @@ - - - - + + diff --git a/app/ui/style/olive-dark/svg/ff.svg b/app/ui/style/olive-dark/svg/ff.svg index feb801b45..7c6ae47b2 100644 --- a/app/ui/style/olive-dark/svg/ff.svg +++ b/app/ui/style/olive-dark/svg/ff.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,17 +138,17 @@ + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -783,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -804,12 +138,12 @@ diff --git a/app/ui/style/olive-dark/svg/folder.svg b/app/ui/style/olive-dark/svg/folder.svg index b9adcd958..0fd51978a 100644 --- a/app/ui/style/olive-dark/svg/folder.svg +++ b/app/ui/style/olive-dark/svg/folder.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10998,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11019,11 +138,11 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -787,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -808,7 +138,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,7 +138,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10998,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11019,7 +138,7 @@ diff --git a/app/ui/style/olive-dark/svg/import.svg b/app/ui/style/olive-dark/svg/import.svg index de67de1f6..e19897d3f 100644 --- a/app/ui/style/olive-dark/svg/import.svg +++ b/app/ui/style/olive-dark/svg/import.svg @@ -1,15 +1,7 @@ + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -783,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -804,21 +138,18 @@ - - - - + + diff --git a/app/ui/style/olive-dark/svg/italic.svg b/app/ui/style/olive-dark/svg/italic.svg deleted file mode 100644 index c0e5700dd..000000000 --- a/app/ui/style/olive-dark/svg/italic.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/app/ui/style/olive-dark/svg/justify-center.svg b/app/ui/style/olive-dark/svg/justify-center.svg deleted file mode 100644 index 73a98ff9f..000000000 --- a/app/ui/style/olive-dark/svg/justify-center.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/app/ui/style/olive-dark/svg/listview.svg b/app/ui/style/olive-dark/svg/listview.svg index 062cebc39..84ed91791 100644 --- a/app/ui/style/olive-dark/svg/listview.svg +++ b/app/ui/style/olive-dark/svg/listview.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,7 +138,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10998,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11019,7 +138,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,11 +138,11 @@ diff --git a/app/ui/style/olive-dark/svg/new.svg b/app/ui/style/olive-dark/svg/new.svg index 933cf4cab..6bf5eb326 100644 --- a/app/ui/style/olive-dark/svg/new.svg +++ b/app/ui/style/olive-dark/svg/new.svg @@ -1,15 +1,7 @@ + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10997,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11018,23 +138,23 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,11 +138,11 @@ + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -783,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -804,44 +138,40 @@ - - - - - - + + + + diff --git a/app/ui/style/olive-dark/svg/nodes_ltr.svg b/app/ui/style/olive-dark/svg/nodes_ltr.svg index 591e38844..e750a42fe 100644 --- a/app/ui/style/olive-dark/svg/nodes_ltr.svg +++ b/app/ui/style/olive-dark/svg/nodes_ltr.svg @@ -1,15 +1,7 @@ + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -783,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -804,7 +138,7 @@ diff --git a/app/ui/style/olive-dark/svg/nodes_rtl.svg b/app/ui/style/olive-dark/svg/nodes_rtl.svg index bbc1fb23a..389a974f9 100644 --- a/app/ui/style/olive-dark/svg/nodes_rtl.svg +++ b/app/ui/style/olive-dark/svg/nodes_rtl.svg @@ -1,15 +1,7 @@ + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -783,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -804,7 +138,7 @@ diff --git a/app/ui/style/olive-dark/svg/nodes_ttb.svg b/app/ui/style/olive-dark/svg/nodes_ttb.svg index 018493c2e..b01c8a910 100644 --- a/app/ui/style/olive-dark/svg/nodes_ttb.svg +++ b/app/ui/style/olive-dark/svg/nodes_ttb.svg @@ -1,15 +1,7 @@ + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -783,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -804,7 +138,7 @@ diff --git a/app/ui/style/olive-dark/svg/open.svg b/app/ui/style/olive-dark/svg/open.svg index 765e28a68..176c76e6c 100644 --- a/app/ui/style/olive-dark/svg/open.svg +++ b/app/ui/style/olive-dark/svg/open.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10998,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11019,18 +138,18 @@ diff --git a/app/ui/style/olive-dark/svg/paste.svg b/app/ui/style/olive-dark/svg/paste.svg index 3e38d2ec4..e5d60f0c8 100644 --- a/app/ui/style/olive-dark/svg/paste.svg +++ b/app/ui/style/olive-dark/svg/paste.svg @@ -1,15 +1,7 @@ + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -783,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -804,7 +138,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,7 +138,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,11 +138,11 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,11 +138,11 @@ diff --git a/app/ui/style/olive-dark/svg/prev.svg b/app/ui/style/olive-dark/svg/prev.svg index 2f84badf0..5d9b5c111 100644 --- a/app/ui/style/olive-dark/svg/prev.svg +++ b/app/ui/style/olive-dark/svg/prev.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,11 +138,11 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,7 +138,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,7 +138,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -94,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -115,7 +138,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,17 +138,17 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10998,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11019,7 +138,7 @@ diff --git a/app/ui/style/olive-dark/svg/rolling.svg b/app/ui/style/olive-dark/svg/rolling.svg index ada28aa60..53f1fcb7b 100644 --- a/app/ui/style/olive-dark/svg/rolling.svg +++ b/app/ui/style/olive-dark/svg/rolling.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10998,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11019,7 +138,7 @@ + style="color:#ffffff;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#ffffff;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#ffffff;solid-opacity:1;fill:#ffffff;fill-opacity:0.8627451;fill-rule:nonzero;stroke:none;stroke-width:8;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> diff --git a/app/ui/style/olive-dark/svg/save.svg b/app/ui/style/olive-dark/svg/save.svg index 840663468..575496ea1 100644 --- a/app/ui/style/olive-dark/svg/save.svg +++ b/app/ui/style/olive-dark/svg/save.svg @@ -1,16 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -94,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -115,18 +138,18 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10998,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11019,7 +138,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10998,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11019,23 +138,23 @@ diff --git a/app/ui/style/olive-dark/svg/slip.svg b/app/ui/style/olive-dark/svg/slip.svg index 853534591..6fcb99af3 100644 --- a/app/ui/style/olive-dark/svg/slip.svg +++ b/app/ui/style/olive-dark/svg/slip.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10998,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11019,7 +138,7 @@ + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -783,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -804,12 +138,12 @@ diff --git a/app/ui/style/olive-dark/svg/text-bold.svg b/app/ui/style/olive-dark/svg/text-bold.svg new file mode 100644 index 000000000..45eb3878c --- /dev/null +++ b/app/ui/style/olive-dark/svg/text-bold.svg @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/text-italic.svg b/app/ui/style/olive-dark/svg/text-italic.svg new file mode 100644 index 000000000..ae05cf939 --- /dev/null +++ b/app/ui/style/olive-dark/svg/text-italic.svg @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/text-underline.svg b/app/ui/style/olive-dark/svg/text-underline.svg new file mode 100644 index 000000000..dc1cc0eba --- /dev/null +++ b/app/ui/style/olive-dark/svg/text-underline.svg @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/transition-tool.svg b/app/ui/style/olive-dark/svg/transition-tool.svg index 590aaee7a..3063898da 100644 --- a/app/ui/style/olive-dark/svg/transition-tool.svg +++ b/app/ui/style/olive-dark/svg/transition-tool.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,7 +138,7 @@ diff --git a/app/ui/style/olive-dark/svg/treeview.svg b/app/ui/style/olive-dark/svg/treeview.svg index bda0c0248..694fcacef 100644 --- a/app/ui/style/olive-dark/svg/treeview.svg +++ b/app/ui/style/olive-dark/svg/treeview.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,7 +138,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,7 +138,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,7 +138,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,7 +138,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,7 +138,7 @@ - - \ No newline at end of file diff --git a/app/ui/style/olive-dark/svg/undo.svg b/app/ui/style/olive-dark/svg/undo.svg index 065384d5a..2c378b84e 100644 --- a/app/ui/style/olive-dark/svg/undo.svg +++ b/app/ui/style/olive-dark/svg/undo.svg @@ -1,16 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -94,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -115,7 +138,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,11 +138,11 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,16 +138,16 @@ diff --git a/app/ui/style/olive-dark/svg/zoomout.svg b/app/ui/style/olive-dark/svg/zoomout.svg index c3f928aa1..0652ebcee 100644 --- a/app/ui/style/olive-dark/svg/zoomout.svg +++ b/app/ui/style/olive-dark/svg/zoomout.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,16 +138,16 @@ png/align-center.32.png png/align-center.64.png png/align-center.128.png + png/align-justify-all.16.png + png/align-justify-all.32.png + png/align-justify-all.64.png + png/align-justify-all.128.png + png/align-justify-center.16.png + png/align-justify-center.32.png + png/align-justify-center.64.png + png/align-justify-center.128.png + png/align-justify-left.16.png + png/align-justify-left.32.png + png/align-justify-left.64.png + png/align-justify-left.128.png + png/align-justify-right.16.png + png/align-justify-right.32.png + png/align-justify-right.64.png + png/align-justify-right.128.png png/align-left.16.png png/align-left.32.png png/align-left.64.png @@ -94,14 +110,6 @@ png/import.32.png png/import.64.png png/import.128.png - png/italic.16.png - png/italic.32.png - png/italic.64.png - png/italic.128.png - png/justify-center.16.png - png/justify-center.32.png - png/justify-center.64.png - png/justify-center.128.png png/listview.16.png png/listview.32.png png/listview.64.png @@ -210,6 +218,18 @@ png/smooth_edges.32.png png/smooth_edges.64.png png/smooth_edges.128.png + png/text-bold.16.png + png/text-bold.32.png + png/text-bold.64.png + png/text-bold.128.png + png/text-italic.16.png + png/text-italic.32.png + png/text-italic.64.png + png/text-italic.128.png + png/text-underline.16.png + png/text-underline.32.png + png/text-underline.64.png + png/text-underline.128.png png/transition-tool.16.png png/transition-tool.32.png png/transition-tool.64.png @@ -234,10 +254,6 @@ png/tri-up.32.png png/tri-up.64.png png/tri-up.128.png - png/underline.16.png - png/underline.32.png - png/underline.64.png - png/underline.128.png png/undo.16.png png/undo.32.png png/undo.64.png diff --git a/app/ui/style/olive-light/png/add-button.128.png b/app/ui/style/olive-light/png/add-button.128.png index 6c93ed99cbb618871addace18145505e64463364..e58a26a920354c0315a732039a3aef2a57a8b9ef 100644 GIT binary patch delta 1585 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 diff --git a/app/ui/style/olive-light/png/add-button.16.png b/app/ui/style/olive-light/png/add-button.16.png index 22abdfd9d8158821618fd7dff771e1952a1ae593..2b14b44f30983fb71bc3dcef98b5ce9c592baa30 100644 GIT binary patch delta 288 zcmV+*0pI?~1HJ>0BoYa5NLh0L00Xc900XcAC&Uk}kw%Aq>`6pHR5*>rkugrgKoCXW zmFw6e|V4n$h3+ zvwuG9iGwX%=DoiuisGbcnomHZ1j@3U0uPcd^E_X)ZTpejG9+MTlU{o?_{||=SL`id zose_x8aP~k6K3a`ucqR6M zlXMDTX79jTM@agLF}|!Vq~M&ZfqK=>VvMuYyZ?>RIahBJ`0mw<)G$yF-T=s|s+t0X m5T1bL<}m!FuroG}%P)p@M2qy@elh?6002ovPDHK)LSTXrkugpKF%(4K4;R?2Xd>Gc5;atzrUWSxTw_~~fM|0Mgal_G73oPTn~rYx z0vVblSjZb~l!B?gHJ1AScUM)_dDnGIKnEFk@26(=1YFm3o!YkjENcVM1z-!aBlU~K@-xqCBvJaG9#O6hqU zp;*xn|65}Sq1k8fmCdOn wmelnA0Wk93PXSU&FTnb*7=BwAj9d)x18j{-f(CKrr2qf`07*qoM6N<$f*lQfQUCw| diff --git a/app/ui/style/olive-light/png/add-button.32.png b/app/ui/style/olive-light/png/add-button.32.png index c232846a3cba8ac6223135d5e3371d312d8a84a5..a3a19f8180987248be6b8eda6e9e47db255c06ef 100644 GIT binary patch delta 385 zcmV-{0e=3o1fK+uBoYa5NLh0L00&_J00&_KmBYBUkw%AqO-V#SR9J=Wmpx9yKoEt$ zVYi5akW#p$n1Ty%kMP$6M@U6MK}&&@9E1vxasfIH;lgzyMJYit9tsjp`DpLc{0MrifZ4#<#Yc^!M1in@)G!~JebFLr9@!Q;V`4yc` z=LWb0+7*Wb>;i{bmhDZa)91OFZ-D^ETL@m%8M%|M;|^r`hdjXitF~2%$m1*vShxdG z6up>P8`$TwXH{xsX7}Fv{$w(F{{jlBq^fa|pCrj-LD^ch&w&Que*>s$uQmWx?E%36 z;{tC~HXH(5AR@y>&&+;!zlB5Ke}QwZpQfn;PG>+5-upq>a0r})1^aE~swLr70Ia2D f;eP_KDjeVg5>`=(0|xWb00000NkvXXu0mjf{kp0> delta 405 zcmV;G0c!rA1hWK?Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L00&|K00&|LIC`1ekv4~a zQAtEWR9J=Wmpx9yKoEt$A*>VyA*FDM0#bKGIR4Ddjys~?@81D8K(FR-fCJzpP1D2Wa`~2NLb4}@W87#I1| z>GZg2ug33z7T|vaSZjxk0a$B?s_G3eFYsnn!@++G#v6L2;o$jSV2p{9Bq$gGRCt{2o55}pQ5Z(g z4+X4K#WhfvDoNkM2hdo30lR7IvP%=+r8TB;XI#`+AHa9$qN$N#%F5WJ#MX*K=em$4 zM44eI%)Kq#v*i9^zV8GkaAyWA7K_DVhDxO}@4D_SlNm(!0qgbp-HVHh4PZqnRqnlf z1nd?Hh3$iXgM%MB^Jo=Ntyb@6GMU#vC1S)^O06}U&4#W_+60tJrQ7*@{v%M0n-dW) z2!bcAR_k0xu8fX@0Oa%eRfd!YP)fPET<*DsNPtEGBJwEdtWqlR?6_zX04yaP6p;sM z2I)te0HxG?8nfe~^Am6_u>wp7FpU*pI)G`c0Mh|~Ok)L@4qzH9z;po9SOKO3m}cmX zP;Vz^RYV>GuFijIS3yM1fre6QuiNeJ4BJ_X6;P|ymPBL=s7*4YE=0r&!*C;Rk1})M+G43SzG=(sxcowxV zP(Y=BQkf@u@BSvT7%%|+p6C4nTAH(@iQnt=A93e^-IT(ZAhJuO zfI^|L#ovpTHyz(`ob9N^Y}CT>@$v6svG_TY$vgz^r4lV=M5F<%A08fli<*fP0MKr? zPZkyy-et4dQ=lj!cYxf4b54}rPvHX*c@qSG!7JbQzsJsN%7yE?Uq+etJg=TsmVRdb z-=Gy>I)G`c0Mh|XV+EKFU>YmHbO6)Lv;fz2H)mFW>$;o3Yznw64>R}`=r0d??-WgZ z@2`mbOe4d;0Yo@ zDn0G>dSxPdEv0-m`f-DZ&a>IvKl+yn#a#0OB0 z+GA9{1orm!@&L}Tyyb!69eY|R6rQLClmhPV?%o5~NgR=+D?aE*Zn!md=LbGrL?k)v-Y0` zjR5Wd+!z7e0k|;&xC3xw1aJr7W~~Kyo_D;q0zA(#fcx^m8omU^%L94^#QyFt z5p~iC@PBzgqW~iMHN*HUv$2>|9?*LS{D?akhT%n$3#-Zl8U^(G{R-l3uhqgZ{F2nV zQRM-R0!F8_WegvRP!Rxf_>k1I0@KO^Q}zUtrqya)TbA|BvaB8e8^HGHQiF&polfWD z<>lq?B-V;k9$Q?XFq zO31sEa3s-FnjKQxXm*yD2xark^F05Y>w4}#?$7nPzxVfhUH5f=zMt6IN1hj7 z&wuu6e2(8gV()Ht*)SfjV4zHB>~Ow)_oY2|hhlTF^64V$f?A~SA%kao$zhRq;KbvJ z-?C4(7uQy*kCa~Th`CHM{Y0F4I&WIhMw^>9w%yOpJv16sf^7B+^B<3@mR|U_3pucX z89E9;ap(2`PA#C#8+@T-Mbz|4L1^srJ*42^;KWvLvK_A5yi%x%Kp;km?Xg0=Q$hE~ z)Sc;mbuD#M;ajlY+6KEJ{fRi8i?YH9-u*FwTW7kcec;2Fr%(Xi79o0DH$ZdCs_TQ5 z0&LHa2F9l81uP4DFn>6)kJ+$&iq=80%NfeOqubmpN`b12dw*3itKpbwl-xV@JKv`Q z2Yf#K6A!>SMYsTRT22)}HgTtCz1}fs@i%yE;srqtw3YKmLDoA-mcsLKEF^FMhyYP( zY!0PcR8`KiFacZaBU3QC9C(hB6H&MA)rG?c8xp(L%7sGV(6QT*1l(m6T0u(ZTVX6y z(OBP#8H1(!1Z51#qdQR1p`oGk?>>I~i0pNxb2yw1Z*OmW`e5=<+9#zU_R`YQMqs9k z*1(1)J=87GHW-3lh}eecuX{)vvQR2yFg;b5~&0xZlcScZPTO+JTvxSBHaXz0P zV^bv6T_*jU52ev%Z_G58Z;6-%JhIbz-*^LSJxD=LRc(Q|CmLBos(}8i=JZP5YZyB;Wn9 z@XEfi|H;AkVL{%oz!!)?EgxV7$kFXCe!WAx3sb(~SBIGnZ>8-b5pmIg?y@iPVm{+9 z@M12{LiF}82loh&S@oMxUcIP$$4vV4)gCx}2tr+ceofOv_FoaMS`R|N&wAsg<{bET zJ>rRaPG(U$1ZDZ-xAwpR537YTY@~3~G2!A@)Xoqj!iVmCEIG{V$ft+zJt9VkDl||X z83me_A6s*W@T!U!S)H?o+yZ*s(7nbLvCHySG>qxxdpVmfjPA99EVABhM6dD7PSr={ zjFMIVcMtw-{3TOjRUePf%E+mrN$i7CRszu=zdG;4 zq@*P6UXe{v57AI%H(5|J6DXpoLg6`s6Bjj#VJqHq(s6F+Z-d-NW8drO*PY82e(R`8 zJHVTyI2{D2e-!g!;|;~5b80Ag(H0N4G27*?xtbvH&gE5>@+^8li|4X!&;j9?;-1x| zY2g{A6Acp)WXV$~y{4un2)!j}{dGuz?J1<@nyr5Fid0lpQ(I8Ur1hT%O3)nf1oK=z ze^?eSjG23xyyrNjJlMBrIKs_ zN?46$eUZ$*Jz@zt-{iXKdP~;J3D84wo<@0JEty{uv0<+X9<8P6@$^(+wy10q5Qm@&@T2Y2d+8t9x}3`v)|~Xs(L>( zT!jIZ9cAHG#(Q)}WU0QFa9Kjx#XhN|j;sB7M6Ba#$sFm+@TX@m<9z6q@d~GALDp`| zL_j%b7(J>Yf918B36bDz@yzxx2yB=?{JLIL1~h7(zSK9M4d?LMKUWB%HzH|GoJYYE zP1E3{doqawc!tw^NOji)o*Gtn3pR7AW2#JN<-;0dFkEKinR*6@!=TMX3tMivqw1Bw zBETj`F`D2Ss`RJS+MT|WF&H{-w$6sl++eH|2`=MB94B|6+^G!q%G!yG3jwct8LHrK zBt@LIVlC{=>`&<-=NiytMdHnqu0r)w)+PgsTi7As9j_=Df0;qTS;w8b?Z;Q8l4AbY z*$3+k_a-|1ih$HiEV}f=euWF*b0r40&qMwT`cjo!EVj@8@&4^eV7}CmQn)U-?mo|Z z1yf#D)XA$=awmXRw6tli>4WhInCZB>jgfDcc`jIzJ?0ob-PzU|G{7{0tf!?s_HuJ7 zqa4v-^_FHRbTX30atB^cUhOx#)mv>RtO7<`n;Zf z%NyoNxJpujqCm&_$nbeX*_`!s`TM5zAMU$^E!EeSOMfAH56G6Y10Gj@jP(1z0bBn7 AAOHXW delta 2114 zcmZWqc{tR27yr$WrO0~Iq8V#@LwO_Wj_p^r7^!O;#!^O>A(3t5N481B=pu$tm@B05 zCMs@5H%l_O7)#9z$~D#*WSc2*r}zHzzR!F9IOq91-*cXG&hz-;0xt}w{UMKGe zm^GVeOTk%d66W982LxlDV1_HPF1N@F`Rr)ifPmSvdM&=>;G?3tsSZKjo^E5vKNHYQRy^#NBI3Ev(L=b6 zH|?qi8~5N%eIry?_6623x|wNrre*P?FaTs-wY&#Sot>205T>g((C zU~&H5X&^E)BjdGW9}Pj(UfP`VTe( zDWYqeFMj~@4f)zGE4H-6w3kp31R6S6&XO8gO@I$d*6h6v;N$?$x}ltqlMR$VkkptI z6v(sOP2V$3r5EjiY|<9)H6;IV=lB&GtFYdkf5|B0`4C-y`O$Sd1B-nv+Y|2I_bc*r zbrsGJsSQi$8ymmU&hC5wUo0c-SV<<05?-)7((HBDZ*MqXzDZ3WH3AM43Z>*&URRKr z9$;W#upVVnGytr%x;>O$re45Dj+83btd8Z!9H}am`*IPL_s#y52ZXx>{5cbWOEvaF z1M{!KCfbpy`&*d{Ru{>M2u39TV;JDr6txf!Z;85sdS`&&jHj>3AEu%2R3RkxA6MNz zkWR{M_w0O3nx>l5vG-3Qe>wh}55AhsM>vBK`U2nc=Rk>GU@&lXdqO?w{fR#FL9a%F z7QUJ8dQ6}mA*Td&&Q8cH_F1+oNV?r`OTzi{T1sw>9LtYM)6&Y$!_yn1o5we;kDSQy z#b=kW_PBmyu~;Yot5wxzoleDcc(y*y7cn0WH*p1{j{{HSy5n%oW+1ZNljH)ftc!(m zH!0JH7YhDDsZ<5XVs!v5j=Z;c=nN|KhPf}E#|%EP zT<1c^-Qu?-N?^+#+rt$T&zCJJH>Ne#jog+oBeGIK*7k>6ptvJ`q`zKX{RdZx zY7uD~a7SdlrU8XBq?$RQj({RQj#)$9xZS6?M@T^2d>P*gwo-BpJ?xR%j2nmoa-2dl zM{;tVpj9>l)@&GPsTF(ZorRz+3J9$KSOKm)9gYMedibrGpQN6;$^E1F|}xmEmuY^rXlLh61y5D7hZukr7HhNYIaA4bHAU7hiULG&)|n#gvP{ zfNBIb`X|WOX71{t)9}d~F~{?|ezpQbvja753b?;O$c6oXW17!!QNH^suI(ddt; zED}Nrz~f-oAF=txo^EbS5w`0@S$z~>Q;4Bp1L1#`V5Ie%`bNIKUTgU<@4Kb#81y}T z=<7u~|BGlNzGfB4RWJNY6fq#eDY4k;{H&p`5QDkV>@+LhiAO9ncv4tU@Nx2V4|(D= zMX65{U+f!c)IW0t{XIF&uu_#54)ap%y9s#nibgbo-xlwvB@k1oV@oD9ThNon!tC0$ zYjc8D6yVE{l&ejlBE5Oi;}aLMSHul<%!PYCGT`Ui#vk1d~fW^VY?RgMPa2mzq87-LkV1hf7U*EmCFYaN*WvB&p~ z4C2|}jT)en0u#d>+9;UT+4dsX=OJwV$u1@a9$mgZ*DIEgf87Uz@bGY>i6^~BWfPeof#t$e{nbTOY&GN3}q7Fw_&QL05(Ee%(YpTAqkApZ)& z$NM=Pjy;WaLT=|9U2(`p*kuFJj@5&+uRH{Y@o3oi7|5C>M2htA=zCq0#U}$)74@&1 zxN=aP7%5o^>;HcFJ?5ieTDTih*2e$;CqNpLancDSr==28Lv5`<$uOziF$zc}J^Uso z3WyVY(*At&O%!mR`_`(pnvwSF0zhs|qmW!61)7-v{`-H<=Mc8eilNb>FMbuS$BKhq zu)Q=(>6RgSDwR={@oyXWYTt;5wrwIU1)R5O)H?HZO^$Y{bHTc!vW1Lh@)5-!{(oKn Z=Ph?L&71nys+s_?*_?9#pIUg|{u@WR643wv diff --git a/app/ui/style/olive-light/png/add-effect.16.png b/app/ui/style/olive-light/png/add-effect.16.png index bbee6c1845f135058663a8c334697f5caee7d9ad..2d943f96af156682593e93afb8df84151612516f 100644 GIT binary patch delta 314 zcmV-A0mc6F1K0zQBoYa5NLh0L00Xc900XcAC&Uk}kw%Aq21!IgR5*>bQ9DWmK@fe_ zv zv>4-ss!oCIh|amIloB`WYyjqJejAwCsfYl;W3H4JFZuxBGJD*;rAn*dmjxG;kCPso2^+L^aoa&Lh76=ncNePT;|=M64JrrBq9WJLP=Bz2nYy#2xN!=000SaNLh0L00XfA00XfB^@Ht6kv4~a z5lKWrR5*>blR-+vKoCV=#de4o$PLo%!i`%IT#FuI&>I9qaOEl7xtk;CAv}P%P+SN) zVCD!}8HZ%bg~`xHGcytVtLm!yRlk4JYt%@RT6Y155}0`BC@K!h_&{A3D{`W-ixBx55w?riGZmA&VgMZt&=0*K8m8v zvMfgn$SE+8=47pX26Qr+bb8>Ny8&idmYrB@$KaW$s%IjiOC-+sg! zpeqXD5G*vrM3-KO2@4gL9>GJ1YZ6`R8O+cff5H*SJQvht0t3`xU^f0%ZS%F? zOW!wNGeF63eWB54+yNK>5Xo*F$D?BkFzXAF9wePfI!}`1@tDao1pug~#j z&0Bxf)jhF)b7M>|j^mNFwgcehpv2@-8IweUg$C zIp;pI;<9RBo*IW(lZi3r2|(?)*tW)HZ0rG809Z(W>g5#>%7z8L_aEHy^kGYReZ$>*oRO4?8k77y#@-q0q5M%S__gIkH>E(7XUz^*PdqY zYj|ufO0R(p0VJoVN=|Z;^g^8;GVqEE-9d#nHe002ovPDHLkV1nLX B%8lyxOo!Woe2X48*) zget=VM~c# zGgWw$@y}*ysASeZ-1}O z%~L|R044w^B7rgHBa4?+1KY&dC7L`u;kS=;Nlx-e2L?!vMPw%;I{@Pf2Aptz5P|Le zmHWSl1SF>bsFVtFdFchM^#H)9o%W3}?|^%zMJO!7j1Cvyf;dyyOmE5v~^E1dg)&HVZZMQN>vmOF#vTTxph(pnEmKHD*jF|RJ)wO#|Yoq#cBrnQEM zaIsjto!kHbx*mHHg|A`LXuSq2vJ9+GsK3hkFNhmX^Wrr&w151gG=2c?;EiNNI`jMQvJ0K&x$w%lh`ZZa?abcF+7GDE%-(x%zM7l&-mHL^Z~4k$mjq2Ao&)+^&kjdy9zE3l)*F0 zM;8wO@z_oKA?1sS0CQvJF4+oXQX~o>B4@|UowFNG{+R55PnuGINe3`#2mrqCf2owZ z3EfY~hevqExzPeh(+t=Br8PMcFxQ(sjol?PcD zKE%;m5m^kwFgzUdeg7)STQ>bwO)-I8>^7q zBe^nvIHt8OTPx~Q=Gm{SBIQYI_S4u4dm2gHkC7m=?;}1=Ug#AYC=Rt&W*xEfM190f;io+ zrFG~SN&A6B0fHcSEh38m{vde}*YXxeS)wK4~W`P4taPa`p>2%s6vOw}T0J{KoNj?#gg)j{NN^8%5 z=*>`CZ06~#BvpbYrSN?bd04GhH(RaNHt?aV+uz^6Nb*J)hTjf8Kai)7rmCKZEJRVX zoq81+ND{#0445T3+wb?$Y&H)7px^IT$l=-<#jptW8D&^tPQ+&t|X>jKz+&eN`Oavu<`>UTh6DZr!y zm^3Eu26KP^mm~k0{Im4P8=jL6$&Ew-M&0n7bPjK*5^s5Xz24uoT5Vk^RR>T9@R|GY uoU%*ucM delta 1023 zcmVG7o{Jkfm*ehs_jcxXW$h1^gEzPH z-h4MZZ{{rr6eOaguTKWX`I7JZlO)%F0L%gq5!nZ@9){ryo52l(NC74%Cw&pw7Lk$v z-AJC2T&h$mf7lDpK2FpZlv1mmg9iW+8Bt0t+X-uUL<)e`wC@VZ8H2H8LL31u_i7N4 zD+Xi9gg63x(i8$@9YEF)0DRxS24ES$4Ej9tG5H6;?<9W;g5YI)L%CdjBqG;;Q}&+< zlJ5cRDWx`!j*bpFF){Ha$)Aya;GK?60W1VT5S-b3-(LjqgGoOrr~{aHNUp%};DOdY z0l-?jt#p<1mTlWbb_mk5$`7kUvCkabK#gLD*g+-2m*kcbpV6l`~Db!Rg!bs^l@jGw6AkF z1N7jx0emGQSM+t0g~P+cKL?659eaJ+c9V7% zD+}l&?OptLu*vK|qmq+}dngyE3aPR=2Q{6m(rzGEzdOr&Qw(g zFdv5Dak3$#BT9hCH9*(!uDh;_a=F~pwvztrc1u*Az8~dtm?YW?$2rTBoa>d12FcU5 z8R}MekUVW08v+>3)3z}#fKqA$tp%@>f%3F%j0<2oPus>yJwT^_x?HXHy~t%jWNK>a zvy+pP2O{#dHa+${Z}Z^b;9t|eaw$NqR{I{nw{52HYPA{w7(adHwIcLQ7u%u@M|l;X z8_Gtfc@^MsOj~MlDS+pBn*g=|yw=y2=Xnop_$pqE3@ebla^VF?{Ro_QF8mBA1jsso ztcmk(FpKwp!{TjHoEgxs!gJo)jq`tjUKO76&Kr{JkyYM$z5e&;=;$_pF_L2dF4>RG t9=byH8_9cltWXsc6ciK`6ciK;ix1>_MX3_O^ZNh*002ovPDHLkV1gW;*oXiC diff --git a/app/ui/style/olive-light/png/add-transition.128.png b/app/ui/style/olive-light/png/add-transition.128.png index 193a290b4e948197ec327742616cd2b27843c137..7c9762ec14a74c9840a74840244be907e6a80699 100644 GIT binary patch delta 2131 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 DfYO{s delta 373 zcmV-*0gC>M1e*kqBq9WJLP=Bz2nYy#2xN!=000SaNLh0L00XfA00XfB^@Ht6kv5Ni zld(zzK@>&L%dQbgAb*fq3mYpN1v?RK6$?K>1QG4hiuM-TiG`nFVc{nTR)V0Y0e36w zXc959du=wb#&t~!Z!^QYbMAXHFdnJu_4;zHR-0_KTF;CizrQiFV?e<4NCD2dMKha{ zGzJg^!KS3AIF4_8-(N3+B|VyR?iQGT81UZXIG*!7@Ai)YdL>{NILQ=GfE~~C<_o}w zbS+!I;+(q&RIOHLI-SnGq!nO1OPN^$oK-57!*;uU2bo8dv~6bUcDoCb^6vg3sS!od zRoakm0i{xDNz!MMBx{4DnO*q4zt?OwUkAPH1bJQGfP*j$&vU%*0Xez?8c`HTy%e0u z4d|KKQ5c4&KvD$%7H|m=1i?lTDCtK)4=4kxeRBwXWdFjJq}gG~l(`<|{Qu|++aqwY TDjSu$00000NkvXXu0mjfKu@4$ diff --git a/app/ui/style/olive-light/png/add-transition.32.png b/app/ui/style/olive-light/png/add-transition.32.png index 686c5a886f973cae265bc9d76a163a4c25792733..a8a1024a99ff74bd890e1739b46e9bccdf7799bc 100644 GIT binary patch delta 576 zcmV-G0>Az31>6OYBoYa5NLh0L00&_J00&_KmBYBUkw%Aq3Q0skR9J=Wm%oeCU>wGu zCp3Zt9TciUhcpx_xai>QpiUy=70l0 z)fm$Sfbn?znWR=RAn7v67ll&bI8J31_>74w7ReTXVUGDjNi6_~fZ1i?N4lQm&30+wZU0Gt3gk<$#npamw*q9 zF;Am^DC*^zpJ@Qe4L2T-^X@T)e~{FPqUh%`>(+6h{Fby6hT*#+i&rv0vX_K>P;`%? z24VoOf*^Q}|5SKc2EI#r6h+b3Rlrl_z6nW+fpBq9WJLP=Bz2nYy#2xN!=000SaNLh0L00&|K00&|LIC`1ekv4~a z3rR#lR9J=Wm$7ftKorKmceao!2L_M=NS5OvQjl0+VD12&5JLPb2s$K+5EYCSVn$WP zhSY(9p;PAoL$?Sa818v-Q*}V?5;=(KduUnKUIBOyz~dkYzRV9~?d38473BZ`n$705;c$3JlsoGYfNf^p1rTQiq%t5P zT_QRmq7wjJ0EnXKL0&R|pGv7`%)IkIIABmnuIsK@mbC}qjtP~BVgS32<81f){b+uC zzQ$5p;QRhMfN!>KUztoM_eA7>g@_oz0fZv5$;>^&__TrKgd2@UrfVeHC!(&_`cIxo zi#Slu0BkYy=OUBK8t4JoWahBw0!0l(MD$*3{Q>7xcvS{|0eG&p{!s>;D9>di06x}g zwWrLy5IA6-fslw^YOTL63Y^F!1N%huqzX7-a2r;wm46dv88})ZKg{|hFX$}EM5vVN fEP->WOP#O3lESqI1QAV^00000NkvXXu0mjfeiQ@^ diff --git a/app/ui/style/olive-light/png/add-transition.64.png b/app/ui/style/olive-light/png/add-transition.64.png index 8eafa836367ec4308263de8f68dd6f22edcf5871..6c47fcd1f568d0ae196ebbaf2c3f0948f9d08626 100644 GIT binary patch delta 1089 zcmV-H1it(73E~NmBoYa5NLh0L01m?d01m?e$8V@)kw%bzy>A>v7{;GxjzhwSaupvb z?70t9KttmYTu_h-1UM23QvL-B3KBsP3M>Q`iDMx|2So%`prLRFd^U$25OJeTkykCdepLB(HcISQOz1Q>1?Ct>tBT?#ojtmSr$y!@C#>@kl z1t0)x-us1rcDsEuO>tQ;Gy(N`-2zyaH1WWNn4|y^{4L=p`xRn1guI07$JYC9MFs|BW}B&8Gl7mR7vOV7&JWy^T$xklZCX z-+xSh(o0FliHm8s+c!y`A$cu{MDzxJjpUgqirW2clFr8MKWT<;hikQ3Yf!s$ZaO58 zwe}RruS10;z#WnwOZsBaNtsN7jYi`+W6Z@YVgUfjRY`9|QM5el+_WboT5DhP-hT$* zSjw>gV2|Wd6h&76_>c<{Pr&r_^fB-KvyxtamUJ4xi%G}$7dA+q8}$y=&;<0Bw2#~o z>b33m|J`Ubs+~^fw^0Pdg`@y{H!(4BaeaM#Z`A8UD&SWDuMTMI=b2Fj#DV0t_x{6n zyS;kYK0+qJ%LmzG&+Zock9qG0-9Aecl0Qj$E6(77fCNNQv>|B@z%L}by|w&x0CSsv zo13@#H3685BPNhLB;Svs=soA$?YNxe`E8=hQ?a^I?1o%3K|5-)n3VOhh8&m z9W$y69JrI4oSbZu{B*>=Mqv-Ymr)dbgFt%=CAJM(Yfl+tK9^KYLeK#m%HBd5nt)oZ zc2&|3<#Ktg)oN`6=r)_przM?`bXL-TY#KXUl3vo4N~N-N7<&sPqylD0&U88*)a&)G zBz3#pR9BEm*jp$g?FA&2kn-|5DSHcLoNi9smGp^o?#C>Hjzt0vV{b{3cLGwgw@~s- zz%5DV@_xx8^G9POMe^H9rE)s&!2=mr0Lg7hA2{c3WEpo5nN`5Py^Yi0fov*&AQyWJ zCGAB`ZuS;RS_#PA-a<(u0b^lrp(Hj5j+?!Ol1K%NqrHU^y8_15-a?7}Z1BI%|Nbqp zA^~{|$eW=Fc=-9>5#w&i%hD@ZD9Hno*M}y+d%p-^Cj&j1Lh`nxg`vOy+1c6ovs$e# z8)J?GI1b?P^yQ_>UnGB)^saLx?vK316ciK`6ciK`6y(J}up7g>Z}O8u00000NkvXX Hu0mjfT^|EV delta 1105 zcmV-X1g`ty3GxY$Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L01m_e01m_fl`9S#kv5Qj zzi%8x9L3+;vyg~Su^WD*u;+Yd3TS8?f(r^#fgp~Af|P%Of`UX)gaQkJMKBgZbWlW4 z0S$$VG$>7w9V}5=Aqw)%oOC)m;shJXw>Mu3U(jOiytCe&-NWohy5e?b=lh*^bMtm) zcY%^bRQjJ|16?X9rDjMj0+Mcyw5Sh>T~LOCh)j zaI7f>C^~_nApj_)o(6Ckz!@C!pLgU>0Jli4Xsv&V7Sw9BZ$xA+W&5chxdUK-&04$M zYPGgFJw5#l$#0Rq;|Bxn0$9*m>xajbQm+B{ILkOG*aq-wK=KMQ?mV!6od94ldMpgX zjjZFOU;@CEfaGb9LFN%zJG9&F4#}R!c!?nSLf(_06%olf=1@eW8uS-7Ua;1#0r>kD zZ!{W@0T}ZY?tW@_m|2%VN~yB|zHrPd3+{`^dn7+StWqwMV7*>{3c%Go zV)a=E@Jg%IT8*pddqSd8>ZM+<_aT6jo?`*P9)J~N%ryYk<%G-yn4O(}J!!3dQbeA& z)}9COY}PS`a3=_YOG$UAVg(?%J7`C!U$ztdUa!|Dy4~*2NfO8a0q}LTTD`itxw)70 zl*cfWHT2DkI3`5^nkR1_8WpAz|S__Cs1^zFeGqE>UMrm{60f6_7 zG2iDIbW{XLY;Rdnv;f}h&6OerxC`Kt*1FJ#EQ+`_CIG&wR;%Yn;R%zxM?i<<+gj^e zImaDJo+IEo$#bKB)OjGE5m1P|x#C-Z!tBizUjh_vZ?54zld zrRT?ICgEaktG3V{wjd{Y30>?hiRB%q=X3SE9MQ%1sLbjQe zY*s3}_OPWoIkNLRw0>gJT=9l&7RO27rWV&}YOGFOW$)g6eN**s|1Y7t_xkeQ?w)&I z3Fs~c1_dtJU+kA(ezAD|$IE5j>Q|5Fd_K(eoK-pW@6_Udic0aJUk}&V{Wp8@el7dC zw9S8Czka=aRn?^8d(t(_R``YH7oU5sx%Bes)2Ht*+rLr9WcJx_`FVNwp3j-Tw!G^G zTj*X33yX?e%_jC~^)rI1)RpwF*%{}YzL>Rjmd^Ck`b(L+%Nt&nROu+q-|_alYiPdf zlhl{Sj)g(R=hpm`J!Sd+=^THrFaKG|hTLg8H|sEpOIwKl&^R|YmD6JXZ?DF_6|dH=nm4^q+m0hjZ@RtuQ0eod6C#2(h7h*6o{{v!(r_?r*s0!{~BCUgGlp z_-J8P0p0opkN;(G_uc@`v&J#@*sTx>4-dyEul4pV^}%c2_fcyn#ww`NNnEH1i#Q6Vr448Na?~ z7w>28IC5HE;?n;3*}r8SRQ&!OnDOuLty#M-?BN3?Zy1Q+x0krMv($Xf3~mLd|8?(= zJ>j3hr4R*VwE$?42#p#+1 z-{s1B!sb|??swn)eM7R$={u2j%sZg0X$=Oxv#nQHluuJtNCBF=<|p$}cE`rw->cJ4 z$s5$}@4vSH{%*ye%*)&l2LAe9ZLU_|aQ)z1<$9P4LG+*XJLlT&-u7_GS6=C}A`UHo x8V&#c-f9}iaPbp++ZSM99qD%)$go`TSl@jU?|dcc&~lJ-Jzf1=);T3K0RVOa2=4#@ literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zys-db#zO5=Kn8J1i* zM>rMy7z&v>gpq}Srh&l&!_Os*@44@6{cdOFEbNG`3_~YOpH14X`}fn7G%!s@)dExB za9rlEt^F~Hd*VB?-`AG3sWstq9oP(*)`~Oo951=8mxOJ!1qpe&`njxgN@xNAI2&%J diff --git a/app/ui/style/olive-light/png/align-center.16.png b/app/ui/style/olive-light/png/align-center.16.png index dde5957bd6b4cdb24cbbd32dfe9fde879bc6777c..e7278103c774b09b41c2f893b4698db6410e0b0e 100644 GIT binary patch delta 208 zcmdnMIDu(`iV$akM`SSr1M>zDW>i1IzjmUVM!iUhYeb1-X-P(Y5rc1HQAuW=LQrXO zc7ECR(`RNfFfbT{uQ&Tb%_413-^+7!S zki@+7{P@h|{JgmN8WVup?L1u^Lo9le6BY;<7#SECXlQ7xNk~XAPz-!Olbv7A#n>S5 zRZ}B-&kH7&Lyyliv-2xWU~Ti3=vl@bV({e>BZJ#25#EjEVfsL$7(8A5T-G@yGywpq Ca7Hu$ delta 111 zcmbQhw1IJgiV{n)lV=DA5Y%v_bTBY5a29w(7Beu&wu3NZ|I?4D6U{W7bUj@hLo9le zLjnSRoOfVMSmg5g0Yi@g+sed`4-PWBv9&!EWLx|)!9>=;z<_}v=_S|c6OZny0F7ht MboFyt=akR{0B=ks5&!@I diff --git a/app/ui/style/olive-light/png/align-center.32.png b/app/ui/style/olive-light/png/align-center.32.png index c3a186bdb6f030b56b10a40df4df366ee3b08427..f0969bb528f3c73b9a8e70f18fa5e0110a535abb 100644 GIT binary patch delta 284 zcmX@Yc!z0%iV$akM`SSr1A8I}Gfq9cW7|YGje3z1*N76w(vpn)A_m{YqLR!!g`m>n z?EJFrr_an}U|=u?$p`0`7A2=LWR#Q?Sn2C0=jZ0;=N0RfXJ%*Srlw>j>g5-u>w|du zA&GhE`SF>_`FU~kH6{SHcX_%vhD5Z!owkwpumKNCzvQ8{WhY}iQ_nw*y^_VbY-4@z z3V|G#2`LKoqPzb;<8P@y{!O{%gUM#r8B*zL<@HA;!W)iXJd*QHfX^T|GKJNxP^93y z`2?$!WxC!R4^A_yYW6RYqOx44$rjF6*2UngIOeb4LIG delta 131 zcmcb^bcAt&iV{n)lV=DA5Y%v_bTBY5a29w(7Betd^MNqqnQaT3Cz@%5IeNM{hD5Z! zy|z)1L4m{h;scd8_Mv7MrK3_I57({9x g{AOUNZD2USs2#y|+gU?V1!x6>r>mdKI;Vst0HbOu-v9sr diff --git a/app/ui/style/olive-light/png/align-center.64.png b/app/ui/style/olive-light/png/align-center.64.png index 91e052ad9144d58504dceec2a3de1f613cc6f06e..9f206a5553682d18a767fd40d16a424e00dc505e 100644 GIT binary patch delta 471 zcmZo+n#wXkMToP&BeIx*f$uN~Gak=hkuuRuqh6%MHKN3^v?L?Hh`~3ps3bE_A*i%C zJHKrE=`%AK7#NH}^1=C~MaiiQ86_nJR{HwM`MJ6IdBu9=nc11SsVSL>dih1^`XHWu zNMc@ketc$feqP*sjR_14jLx1ejv*Cu-rh3wJ7OTv`cP8&V!#rYkZbdp`wlv4e3PiJ z7RhsPWPa|jlTmZq*9%J`ZwqabITrP)eyMrUvB^nKFA6hmNRNu{F_d%Sa2KpJ+HC!N zmf6x(>4HB!H0M66{HIlSUOcIXJ+xMI;>pDh?%gwOpZjwB41PWRe}22T;LK~AV>P4_ z()#Vb{#ZSCZN`CnBD?`t&kMFztN`*Hyk4r*D|LIj?wj^CM?9}<`Lw6ivzBcaIJ9?_ zUB`*F-j($(q32iq%1hJVy5Et3VMF}YN(b%pKM&@A|NZQ5mAQn4{fc|}Tjh$7L?4bQaZJZHc2o{`}|*a`M0+)tQKuutH>VI}&B z@h8(yhEI$P3<>Hd*uUgC*frEJ{A^h5X1Ac6`4i(4W`>xJ@?Qe4b-q~T-UEyf22WQ% Jmvv4FO#r!U&KLjy delta 196 zcmbQr(!w-BMTw=@$uool2x>S|Iv5xjI14-?iy0WoWI&j4`Jswe6U{X08$DedLn`LH zy|t0I*?_^-@r=s7daZmW=?O|faTDHWbsb;db96>=-0@@QtQMp-z%c{E0wX)y58r+_ zZN2u`IH#6dQ|7=jrX0wnYQ-}`^4zld zrRT?ICgEaktG3V`_jea7I5(hrMKiuN7Z08}bjCG4Fl5=ZVgsU@a z*{p@F;|>eyy!pbohDYBak+s+C$P+1pk4nkT9Sd(d_8l&*+h6s~=wwb=S-$yy4xpnJ zh*#caUUvCq+1jtJE;eV+v~Rukd%J4o^`RO#WvJ`^f=g&@~krL9e=O%ALR_Y`StUC)cBPieGE!F zw(5{k@Cz@Gj)4v&gJ-n>gwwI&CJd1^~Ab8)9kwTS9G6v zyZgqf?_Qegr~NW|;UCBTKRWN1l>{&ZLEy*#9||c?zA)}s!tdbnf_VXdgPp_kFN_@* z*k8=Eb2$Hn(P}wJX#E#PpvY7^hvh(#CHxS*3=A<(nH1K9fROPpgM+M40A8D zD>%t7sQ$%Zdzt;k9FWl7OY9Ev3&MeNm)KuSu!CtXn9A?u<|p6a{foh+1*Gl;a|w{k zQQPqDCG!^_`31!wp)X$Y47Ck$FPTfc+weLpyYcm9R!-WCwo)78&qol`;+ E05`f=+yDRo literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-justify-all.16.png b/app/ui/style/olive-light/png/align-justify-all.16.png new file mode 100644 index 0000000000000000000000000000000000000000..bd93c6859e33846c4c200f140f91a9b6bd48529f GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9G08$g&*{RsbBprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesNKNR#WBR9H#uQ}fPs;Lfq{mG#+rnL1Ovsu_cPh~`AUTM(LM94K)no}u6{1-oD!M~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Akes6ENk#W5tJ_3f06f(-^dM^f56X2;Ip)|$~Bd#8%?vdYe62B(9o zfBD68{_Fc1m>qle4a=$1=T4kCdsn|9)yB|T?F6G&@kfgfqK_TY-Z}UbxD|6Uu3&!E lAn>ZeN}#;@OfWcPe9{R6a(!PC{xWt~$(69DTjZrA_- literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-justify-all.64.png b/app/ui/style/olive-light/png/align-justify-all.64.png new file mode 100644 index 0000000000000000000000000000000000000000..16beb7b41424ac4e562b004979ee7523a46c148a GIT binary patch literal 470 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq{|5)5S5QV$RzehJHs3L|iX^?{RUSC=?jEnJv{O@Gq8 z?6t>BW9@f8f2;7kW<%|yEj4zld zrRT?ICg{7t2(Aq{b?GGi{YFTcC1ZgUk7C za~kd?5B{n#9YQzt9FS@^!NFFc+o1Lv}CnfN7<^G z8=vt{m^pXm&CoS5UdK1R;}75RK8WprE4!$pym^IkOtd%xU0CB5PO-4OQW z(=L^3dLP)+ylX*E#{H!_jGJfg7m*MMy}R<2PMF>=r4^a8=0E=UV`7KR+a+lhQ(s@r z`f3=a@$!EyN8+kgI;_kKSA7;ZWU@5p(&`6atNx}N&8*40UAAVG|C5IG9VgzWt=z|_ zxaZ}UlKKXrMYvz>~IXV_1usk7hy$hhJ9pT;Xd1)}?3#(icFI{*IpwRY+E zNq7JEKgxZ7nBl`5`+z-fkFqyB|I=u~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesNK%f#WBR9H#uQ}fPs;Lfq{mG#+rnL1Ovsu_cPh~~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesJ+J1#W5tJ_3f06ybT5d%po2r> zL+HCV$JpzSUlVY8aVCf9R=f4&-QNw5NiMiKZAP#D6y_~EyOR!t=P=)?Ww^vWSF@ax z@dWdy27ylvHVQ}1F}sKSSoq_&;BxadADlmazs)@FS&2id{Fm?EI+Kq1$X4%AWCyx~ N!PC{xWt~$(697BBdSw6r literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-justify-center.64.png b/app/ui/style/olive-light/png/align-justify-center.64.png new file mode 100644 index 0000000000000000000000000000000000000000..ed1e6ac94d20668466593444abab99eb21f660b6 GIT binary patch literal 527 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq~K1)5S5QV$RzehJMV30<8}vl`jV5bgo!4hq>>dqefAWjHUZH}8(9zwYVpCce`J4lQ0~*Lh;E zcXho>==xQ^^3w9R?ssHhFwpzdu*X3T1Pw%>Okn7+Im%5CKfw%wZB9@o1H%D@Rh16f z=l?v|{&(NcJ!{!Z&hW4LUAy}1?S$ih7VNse{gzF`yq^c<-mCH7sB$>}C!xPQU(Nv{ nrS+-dnckew%-^aRs(&%+CSU7R*;_OnXcL2{tDnm{r-UW|$Gg}q literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-justify-left.128.png b/app/ui/style/olive-light/png/align-justify-left.128.png new file mode 100644 index 0000000000000000000000000000000000000000..7b59187e0cb39a43a6380c6eaa71f5c440fc4ce2 GIT binary patch literal 876 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSoCO|{#S9Fx?I6t9|MX)jP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IXpdt~FBFEB_jQk=7-^8Ml%shpl z(&Fs=vhAnO%mm6CLkuY`N={|SC@Cqh($`PU&&|!xE7mK|%+AbBP036I8K)28>4zld zrRT?ICgwwCM0)Yg3ET$EI@Nsl|A+IZm~BpMy!*2o z=qw=6FS#y0CABg$E#KwI(p7e*n~%HC5EokcD&P3Grqcb8uW3dzYwo}Nx{`VIDy#YD zpT7_Ndg{!%vU!?)excLT%y<-ejy?W3f64VFJgZi{s@WJ(W3pMi-B&O+;A-Id>(#T1 zglxPj4+|V(7pyG(aOT3)?q!)>yVmVL#^z?vcxuxgk%{MP-aK~=ov!rB>f2m}T`SU# znc6$2m8GSHZ!Fa0K3!@be{rj~C8J){3=TQBlDCW08&*YG7du`Lx~BKk`apl#vgUP5 z*TkMuO}KI>=7Yha?CC|E68HWsac~PMUAgM;jU6xK9ZO^XYjr*9?6ApCO?z?bYl+og z5$P#ke%rMe1cd6b&ICG?BXNR}*~|40ZsvU3e*b-a=B#A_SJO8gk9Co`|90swtCkPz zuFiH`y+ig-z2%oO14yueNef#Wfk~FX7=lJ-~fwi_l^!JxviQ9B@g{B6SX?ag36G|2yF=v3jIe`y+%2*^*Ku6{1-oD!M<6mM}P literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-justify-left.16.png b/app/ui/style/olive-light/png/align-justify-left.16.png new file mode 100644 index 0000000000000000000000000000000000000000..feafd0989a36b1882d4b94b2fdbe26c1ba37bdf6 GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9G08$g&*{RsbBprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesNLGr#WBR9H#uQ}fPs;Lfq{mG#+rnL1Ovsu_cPh~Kw}s@UHx3vIVCg!0LH&k(f|Me literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-justify-left.32.png b/app/ui/style/olive-light/png/align-justify-left.32.png new file mode 100644 index 0000000000000000000000000000000000000000..e694eac5133fc54cf21d6384089da292e3822a0f GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?5GL=a}2dU(e+prB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesJ+1(l}g zuX*SH9J;^pGl!y2+BU|=$Im@^SKL#`F0oEEEt}c$z>HWC=Bh&8g72&zymK^nw=i5` zEOp>0b&wTUanMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq_xY)5S5QV$RzehJJ?)MA|?8Hx}Y{b~}>tRi=Q4@6d(hFB*Fp znYrgMKV?gK@#^@brQ1}e9qaq>T{>R*Xj$8-`78-3VbaGW_!V0gFA*=V&)BnUw$bM9 zCFiGH%AEK7{iE+S0?9TrZbn|ZlGMnn`|jT?d8ZTeqxS!)zr9Dr_w~JXBJ2;|ozJ~? zIW9N*(8|{4YM{0rkGP$y~Lk+TV6T kRs8*^?{WufWgYzYTXtUSTw0Yc1Juvp>FVdQ&MBb@09bs{SO5S3 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-justify-right.128.png b/app/ui/style/olive-light/png/align-justify-right.128.png new file mode 100644 index 0000000000000000000000000000000000000000..586e59ab350332237e316140edcb4938aef001dd GIT binary patch literal 876 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSoCO|{#S9Fx?I6t9|MX)jP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IXpdt~FBFEB_jQk=7-^8Ml%shpl z(&Fs=vhAnO%mm6CLkuY`N={|SC@Cqh($`PU&&|!xE7mK|%+AbBP036I8K)28>4zld zrRT?ICg^z1w{@;v!_+6NK@qCGW{x|2l`0I6r$weXrX{JB+gATuKTn$N*(6UR^Zgt^ zXE88zIDOx{Aaho+akZk7f9ThRGw<3T+7sXrT0i5ax!}(=tKLsL{dD@?b^5Y5w!M9s zwz+ccD)F?kP2YVAOIGbN-W=(bxhq1aPAoRqXhrVr%WunmUpq5T#>|z+G4%Q3i!V}7 z`WCEz!W!(A@ABm4LF2;#=YH*zFOU7MX>RbF?}EwMogFm~a_@_W-t9c``A&M%n?pC z4VA4sAC#qBUzfr?Ber&FgYv3f!B->mV!pL6SoeBg|MAD{N}qO|I%6>9^wq4dcIGQy z{I2!NT(v5P)o;Zso24eYlF?s+KUD4gXFAiz?pv*W*j4vW{L4Em_N`v~%V_DBRj(2+ z%(vkCw_m18h6fyI5aOMj97kcF9mBed>zuCTm zMBhq>yk@Qt-D@gIb;MWgp8Qw4Y z#=Gh(;~wri<}0qVf6$A%zo1I~z;2D&W=Ei+LTErN`o$~wjCX#Uln>ZVp00i_>zopr E0DUBF7ytkO literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-justify-right.16.png b/app/ui/style/olive-light/png/align-justify-right.16.png new file mode 100644 index 0000000000000000000000000000000000000000..c0b3cac8cc222c7234ce0000b8bae8569d951ac1 GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9G08$g&*{RsbBprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesNLMt#WBR9H#uQ}fPs;Lfq{mG#+rnL1Ovsu_cPh~bP0l+XkKXcbX0 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-justify-right.32.png b/app/ui/style/olive-light/png/align-justify-right.32.png new file mode 100644 index 0000000000000000000000000000000000000000..be6fa7c510c1671ff8cda80d784b3b54729120a6 GIT binary patch literal 328 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?5GL=a}2dU(e+prB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesJ+b7#W5tJ_3f42ybT5dEEg@i3SPyn;8t4E9XDrJr!r%Us?h02 z${Y1}<>*WOu)f_dk({4qERc8a%saa!Q^XqH{Wy|Sl^~;#6D`8O=V`@(yY3418)k0T z6?BjdV0XE~SnBZPN@Eo7-5u{7*0$xFiwQC`tNZ6?rKC-X+lePd|z~JfX=d#Wz Gp$Pze&UR@4 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-justify-right.64.png b/app/ui/style/olive-light/png/align-justify-right.64.png new file mode 100644 index 0000000000000000000000000000000000000000..2f77169d6b6815aa2d7ceef259afb794046f76d2 GIT binary patch literal 508 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq_xW)5S5QV$Rze8-1M(1sWb&D_;!QBNP}pllfSJ0N1e-8aEr7 z*q%A$Gsi6XdU221Hc?xZnrR>YPn|CE+*|OaIHQ4aE^l&AyTGB<9X2y>&i(9H?-hDp z>C?nwyLGRBh1SOLCH1g}+IF6Jv~j`Wl(h3t1)YAbeLMYse!sY2Ojsa<`u7=cevVYxfdp@@VrK3;*(7i*KgVT_K@$_wNv&@Pp#xuytDdMbH|-s zYp!>$niu-@?wPo#`ep`(gt#vaMGpK6*e@_IbK=)v|H4oO44N4%whLq~Fu!2@(y;OZ z^C?E#205Up+Qm1Fdn>=S#eZ+O$M&tQ)^@@6#=VL0{4a7-@)xk1?2u1L$-i-xxk~zm n^tZ1K@1iZfvsE!PWY;k$+Ft8?Q*f>wXa<9)tDnm{r-UW|pD58% literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-left.128.png b/app/ui/style/olive-light/png/align-left.128.png index 76fa8724a22a33a4accae69cddb2fa9cd576a46e..6ffc28836f359b3f792e44b1d8ec040884eefbbd 100644 GIT binary patch literal 979 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSoCO|{#S9Fx?I6t9|MX)jP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IXpdt~FBFEB_jQk=7-^8Ml%shpl z(&Fs=vhAnO%mm6CLkuY`N={|SC@Cqh($`PU&&|!xE7mK|%+AbBP036I8K)28>4zld zrRT?ICgEaktG3V`_{e3}>BF8^kW^d~BaZXgd9gthtyY-`>&zrl~ z(l;1yd~B*C&TU=GpnaG-Ai{Amui-*Q;ZB*^x*ZSiS$_YNZfkts-*&>xInr!1EcXil zoyEZ5pt&^qS@@)?5|a?53E|H z7ry#xwBXLbtKHX(kDly25f*yf@Yux?tG~Hby{Q4Aq0?V~{k3?!f=e-k$KHogab5FB2-~2ND^wa5A4m?pmP++l#PqF4v@_li^n{5Jd%k~MY zbgx?V<|p6ESFNk=Ejbp+b$Z|X@J(gY*dM&&5I*?V%obUh1m@3%Vl8TZMj zTY;I;2cB>ggA|~7SnJ4todhX zdg9A(yJHqYg4>wXT~dUSWg?Hw`o|TgBUaDWeDL|%w9DcX)fXPtRPuYDw|ZZ%;Xcb( zi5K+xn*Zy!%ds4j-tuz&_r98jzi0k_y*H6R z;P5T5u<05w_kzyvt&{no?ht6>?Z&lk*+y9Ncz2kuH#VBl8p4 z$_MdB<2f|{IusBSyZ7^8zn~TeU{`|yPRsssb#}5wmH#34f>tOkhY2OFl`FWe>aD(`s Lu6{1-oD!M4nJ zys-db#zO5=Kn8JWCA!|;ejK)u0& z@d&4aA44IE5YR9%uzB`_e?xZKxo0)vj;Jc|X*yQlU_qk#RO4c^=es$&@H^`WC(L0F Z4C^`Bxvekn=}QI)dAj*v~XUMToP&BeIx*fq4T6GpZlqUpvuFqh6%MHKN3^v?L?Hh`~3ps3bE_A*i%C zJHKrE=`%AK7#NH}^1=C~MaiiQ86_nJR{HwM`MJ6IdBu9=nc11SsVSL>dih1^`XHWu zNMc@ketc$feqP*sjR`>Qww^AIAr`&K2@3=aj0_A6G&D5UBqSslC=MTw=@$uool2x>S|Iv5xjI14-?iy0VX+d-JI|LMoniDnx1TAnVBAr`&K zAprqD&O0zBEOPn$fT3qe+regbeu;@cl?{0=9Q5F6PMpEVu;?Y%>5BZ1e}QH(c)I$z JtaD0e0ss!{B>MmW diff --git a/app/ui/style/olive-light/png/align-left.32.png b/app/ui/style/olive-light/png/align-left.32.png index 04d42407d5945480b1f07a333749c662533a5c42..74893eb5bfa4016e7b5e89cbabe84d1d0ecccad1 100644 GIT binary patch delta 272 zcmX@gc!6nxiV$akM`SSr1A8I}Gfq9cW7|YGje3z1*N76w(vpn)A_m{YqLR!!g`m>n z?EJFrr_an}U|=u?$p`0`7A2=LWR#Q?Sn2C0=jZ0;=N0RfXJ%*Srlw>j>g5-u>w|du zA&GhE`SF>_`FU~kH6{SH*Lk`)hD5Z!owkv;!GMS5Jdfk-*csefGrD6hrEy+n2rBmS z;1K!~`tILsd&z%&vhEy-2Af%5$e;6hXLn2@yy0C=l9@RN`-|^7o0#$o#R|T2dhi-u zo~OzZaGd$(y7fVafn>gTMYojPg>|lizu4^_Hm*J)t>pawfV$0sSn-XF`w#iZO6!=u Q2Renp)78&qol`;+08k}oLI3~& delta 132 zcmcb>bd+&|iV{n)lV=DA5Y%v_bTBY5a29w(7Betd^MNqqnQaT3Cz@%5J9)Y|hD5Z! zy|z)1!GOal@Px`c`>C^4q-UI3{B!-*32gr1S3@s&>Zvm*c;4H`eD`gpTs|XX!&mDM h!a$ngA0rb3|LO>?+piAT_5tl+@O1TaS?83{1OWC6Ed2lg diff --git a/app/ui/style/olive-light/png/align-left.64.png b/app/ui/style/olive-light/png/align-left.64.png index 708d057ccb643cb3e234f6ae47e390d76c352b15..5541dede6f899a5c154c2decfc8f270af491f9fa 100644 GIT binary patch delta 457 zcmV;)0XF{s0fz*TBoYa5NLh0L01m?d01m?e$8V@)kwz$g6m&&cbU}4=Xm4@=O<{6$ zX>K4=b#rTPcDKvSnE(I)Gjv5*bW?A2a${uxXmoUNIxjC{Z*6UFZgVboX=`b1Wn^h# zE^l&YFL!BcX)jb^Zf9>_X=870UY{tC0003sNkl%}L#qZmN7~?@z&muB;Y|v3Mv)An7EC)Mn7OhKY)G!{eaR?c|dFQ1Ly~kHvj;D zRrfqBfPTP=egORd`T_oi$^+;J&<|i<2jJ@$46N3PBAZ4i00000NkvXXu0mjfO}NXy delta 191 zcmZo?`Oi2(MTw=@$uool2x>S|Iv5xjI14-?iy0WoWI&j4`Jswe6U{X0Ydl>XLn`LH zy>*cDfPx6?!5Lm}_G?*tc752;Vf_8TC%;c8XB5|+KYGt>gy;SFHF!UMq!3?Y5{+28E?r<#GHyy%bZf&YxNp{hWtfhz01zopr0Dl8ZFaQ7m diff --git a/app/ui/style/olive-light/png/align-right.128.png b/app/ui/style/olive-light/png/align-right.128.png index dc9785a53d4eca586d370c7c969662d5b21cf640..15ad029edb1a67f5708edc19c72dfcefb9b1ba25 100644 GIT binary patch literal 1003 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSoCO|{#S9Fx?I6t9|MX)jP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IXpdt~FBFEB_jQk=7-^8Ml%shpl z(&Fs=vhAnO%mm6CLkuY`N={|SC@Cqh($`PU&&|!xE7mK|%+AbBP036I8K)28>4zld zrRT?ICgEaktG3V`F!#v?Yf%cE)j$JNskDI!d6iz+VAyvqtQgx|_ z%}QlgOtaCl1itz_nr`~l)R@~`1VZ(_FOB_5d?n^m7`;YDY_4j(`ZJ9Rz?cJY2 zprBx2IB_Vi>QIG^UD@~WrBj}#eYZjnEOhpI1`%x^eQ! zl>dMJ{8>A5?vCI0dc(Wc8gKS4pMNdN|M};i@0S%v@y+s4`z zH@|!?R0iIiYa2gd_xqi{J+Bw)ichPJ4}ZQjyOL3cRfnZ~@#kBm`xwrgNxs&!aBIx& zY3CX4Cr@hzGj$WhHi+HnJ(qob6RXeqeL)T#Gh=7n-12(IIr*k*ufLwZnDJ%Blusrp zsS>Ad7VZ3Vqcq_1_uo;kSI*oh+F`Ica_!eGPj4)n-xR+3>iolp51*fXHZ3L1|CH`K zrKI2Mw!PXM^?LS&*^d7om3{bo>3f+0IQSsM4cnLV-rU^E9>w;WdBy1q<~O3`9b&ib zbF2VThxR$f0I6&H93vo93Xtlm{V%0h%TPM=H{0Le46ls7^E&+kQ;R?p|JHBsf#%#Y z=Kvb#eaE~5Wa>3@4v^p_bBQJV3;J#!M6y2N`bU1{BfQtxPZ-3n&&#fD$oc&B)uG=E zoX=lhJ^Gb#)4A)bxnDD<%v~QYev>`n{&mqy>?dsE*RQLWSNL4Bch>|vhi5;lN&{;f zOq{1$uKo_=Qy7`K&LvcY^qyu6{1-oD!M4nJ zys-db#zO5=Kn8-SGOtJXQ?#2U^THYXtC^nP`)!-D_cF7AH$x#)hp@vOhDR&{>J1i* zM>rMykcEIIfk8v+xi1X=gwJde6v3tpStm@(0i)x!b+daHU>b_78fY~POtZYq{KMbi iv|9j9=fHHrw4DAU|C;q@<*Nm|Kq8*5elF{r5}E*tjb@nu diff --git a/app/ui/style/olive-light/png/align-right.16.png b/app/ui/style/olive-light/png/align-right.16.png index 34cd28d8bbe38fef536e5cba6a85419b30a02b5d..45809b5e2548dbaa812ed0ccd4f92f8fd749ea1d 100644 GIT binary patch delta 201 zcmZ3<*vT|OMToP&BeIx*fq4T6GpZlqUpvuFqh6%MHKN3^v?L?Hh`~3ps3bE_A*i%C zJHKrE=`%AK7#NH}^1=C~MaiiQ86_nJR{HwM`MJ6IdBu9=nc11SsVSL>dih1^`XHWu zNMc@ketc$feqP*sjR`>Q=AJH&Ar`&K2@3=aj0_A6G&D5UBqSslC_j>M delta 104 zcmeBVTFE#;MTw=@$uool2x>S|Iv5xjI14-?iy0VX+d-JI|LMoniDnwsYMw5RAr`&K zAprqD&O0zBEOPn$fT8CF(~`E61su&6OAKc5Nk~XAocCt!+?m211T=@i)78&qol`;+ E09qR%9smFU diff --git a/app/ui/style/olive-light/png/align-right.32.png b/app/ui/style/olive-light/png/align-right.32.png index ce947f644bf0004a2799bb29584790a133699bb7..1471c56fa94b23b7d377ec51f1667d7137506d8c 100644 GIT binary patch delta 274 zcmdnTc!_C(iV$akM`SSr1A8I}Gfq9cW7|YGje3z1*N76w(vpn)A_m{YqLR!!g`m>n z?EJFrr_an}U|=u?$p`0`7A2=LWR#Q?Sn2C0=jZ0;=N0RfXJ%*Srlw>j>g5-u>w|du zA&GhE`SF>_`FU~kH6{SHH+Z@@hD5Z!owl2|!GMSLJdfk-*csefGrD6hrEy+nU@GlY zkz)h{I$fP+M%ZPn}edih1^`XHWu zNMc@ketc$feqP*sjR_14j3%Bgjv*Cu-rm~i%VH?d`cP7NqJV{q%eAYFsR0~}sWJ7M zB@PZur3>CR@alb?kW;j6q8Mkt|BwGp@4c+&ar;$ODKVriTYGrQCB>ExI!gR$Wshwx z&kwpfxns}sIsK)c&>ds r`UN{kpdj!Cdj-FvJy2l-_b1*vtk*ir_c`nVs$=kU^>bP0l+XkK9IwYZ delta 186 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 delta 2500 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 C+JMIZ diff --git a/app/ui/style/olive-light/png/arrow.16.png b/app/ui/style/olive-light/png/arrow.16.png index 2578e6b2e4a282487ba10e13d77d17fd77a830fb..397f5a270466e1f1813409775f62bb9404cfb7d8 100644 GIT binary patch delta 437 zcmV;m0ZRVX1M>rrBoPU4NLh0L00Xc900XcAC&UktMJRs&6m&&cbU}4=Xm4@=O<{6$ zX>K4=b#rTPcDKvSnE(I)Gjv5*bW?A2a${uxXmoUNIxjC{Z*6UFZgVboX=`b1Wn^h# zE^l&YFL!BcX)jb^Zf9>_X=870UY{tC0003YNkld4HU zU}Y!RXm5WfEQsxbV7b16r6Medt-gR;h(3b7Anpq!(`{!8QBcTSne@&B67vd6JyMv3!vtO8Z;!LX_|kg8$p1G78*2=t+Fid>U*nQ4Twkp z%mB>2_j4k82?8S0_60q_j~BEmiHFGg#< fYpogGX*>G?Q8Qy)c@hBD00000NkvXXu0mjf?S-?w delta 407 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 delta 1555 zcmV+u2JHEm4yX>0Bn<>}LP=Bz2nYy#2xN$nA+3LJW>?AGYGc+dw%xt=&a7E1Q7A!a z1<^wf5%?#?KShFuy$E6Sqz?)C5K9mysSrVJs2G|-K`#+$SrALniy`gqIpemOCN(ru z#CY$omnqb2+`W76IkWftKCioT&KK@??zwa4%nTre5JCtcgb+dqSCH)huJJtYE+Se7 z-~oSTzMY8b0M0S<7hxD4nw*^c!DJpOfFVnlE^WVf@#0PZ>zO%st^XmS2*ANYp|E>& zbhK_FmlVK&QmNDvhT&djUNX&xoa*lG-fW@-`Lri+T@VEKgkd-WV9^X7)?cgDZmLu& zpQV-SAJ;q;iDY=5w>pZVg8*)w>0@)b+{S-mv3N%cv96pa?Fk%}_dM@K0IvX;A7=n& z&WB;RCfQj3)t2@It{E5@xP^#b2XKD^!#$Y57)?n564ZE!w~v|ok{FMOdXpHZ8Ce1n z;(6ZV0FESe@Bx6CJCYjf|Hv6&_Q?1BZOpt4bMR%g6krw>E?n5z(b4fLGe2rOOI&|a zfS5eb3y5exGnZ^jxi@0?ZWozQ2`-4gk2(c9cQiS|XaXouw6Jz5oEAwLTq1(MkYc+RoByoG1VQl*{E` zwbq*;*9BK_rT`70)_RzTUI6fy?J%vtwE_SDlu{o6cnZLI+gWULvH$>}wf?59t!)K> zZ*6C>$=Lz`z}SD-*!j-R&J9HLp6x8QWb#g69KP?bW9FC8Vn3%VcLEJjN*#`(=xHMQ z#da2xqyU#Wd-m+t09F9_&UO}4qySe@N}X$OZ(k4KecM?~kZXV@eBWOOU>7szZDo*a z0E?7ThlywlfQs!bX^{e4$Hc_M$y_eC3cwlLS<)Z{n1+9ei3we=*PjINvF$8LlLAcB z)YQ};TI+2@G)zR1?L0}50?Z66r4BIjRsg@-4wD2aKnz;zPXVkVqA}Z9W=jeXlh%5o zR;#ThqEBpRnGGqxEL^y7p{kU6j)?XEVB2}(kOIseE2Z`Tn3J1Nr2q-hT7N`DYZBgk zntGw6011CmN`2qheEL-q;}OwR65})@1xQ$9^XW4H-cDe+M2ggmwKq93jw_YQiLS1$ z9|1g!c$-WZz>Z3#lIs2hIRm6fYkf4A%WVMgbBu?-qqRPrbf&Ax+rb8uN~NAK4EHkg zlIi?EGoLJ%%Ub}X{!w~40~jziHg>*HC~PF6cbiMSkI?wr{$jECEDRicK+XWh`M!TA zfc4D03_u@%Du8nUPB8P)a=AQiHJ}he2qAu*#j%o!e6UWNbw002ovPDHLk FV1fw7($D|^ diff --git a/app/ui/style/olive-light/png/audiosource.16.png b/app/ui/style/olive-light/png/audiosource.16.png index 76c670b28d6d0176d44536f269f6a28ada60f3ea..669b67d4244b0f750a7856c7465346c368b9d995 100644 GIT binary patch delta 232 zcmV*lCcfKFcd`Z z0Evi|;#yrpG zk`9udW)_*k}(d#FbqY%4H6?ah^#6nVCEEvp$msWoB%PiBTj-4BYV;durfrAnKDpH zlZuHy#`!PycYq&7r5CHJGBL&jfT#DqPUq7SvoU7bw(TCkyj$a(Sww1PKK7XhJFwQy zLI^umT@5|(1`v_6sxAN^gpg|vKxc$fWFDhz27d-1qT5)&*Pocy2;gIlP1D#cAW1}O z09#d^^Z~LNc<)a{v>~ELU%ejlYNI1UVQ@udI&002ovPDHLk FV1j;ZWY+)y diff --git a/app/ui/style/olive-light/png/audiosource.32.png b/app/ui/style/olive-light/png/audiosource.32.png index 2f02821c43f9ed7997f94d08aec76aa56fd2d475..325b1025ed5595baa51d2f85271f1430c17b2094 100644 GIT binary patch delta 434 zcmV;j0ZsnT1kVJJBoYa5NLh0L00&_J00&_KmBYBUkw%AqeMv+?R9J=W*1u1}KpX|| z_bm>B4lq?0+WKQ+)7e1>Hz)oEb#T;$=%yQqt2+26xH>p!9Q-r12PSAFF-J@~H1VDb zF@%7IqlH9y<6ZCG=h`MM@ZTe8Z5#x_7Ric;e3Cp;O5KkNknw&00KoQliO5SBhHJep zo=UR0R4UDXMp1N1a-(ycxTvaK%>!!lu~;Dsv=@W4rqr;sS9JwE`X150002BTJ6plQx=iOu>b&|Uavpp za=EgI+zzrXlN0~|n$2dcwZ6{h^V0xUJEq>W)|aUR+M(9^p-?D<09F9J8)GW1R_i&1 cu0N0!FR$x{g$S3OFaQ7m07*qoM6N<$f|7^82LJ#7 delta 434 zcmV;j0ZsnT1kVJJBq9WJLP=Bz2nYy#2xN!=000SaNLh0L00&|K00&|LIC`1ekv4~a zZAnByR9J=Wmc2>?Q4odC*;s@qqzbFe?#7=Nu(vRUomHMeMJ%-m+G!WCRq+{o0Sm># z$I#u05XFFO(AWfbY(yj^E4jPLg65PncjkQek9&dtE{>|P<2dUiYXCk-9t1&fGcJIf z=Xraoy743SC?YHU22Z8wTq>1j3WdUdv8q;jQgef9QUh=tXWp``6IERprp`*k+;!aw z$%|plf#fSd&+|3`?5e8KWQ+l9+n&zn^L15SGwopvP%f9a@RTV4$^CIa7=6i19wQNdS?m`# zIs?A%OSjvt0=P7(PYeJ6&1UmmM0QBlNg6+oNpFD$L2#z3TL50O0001p$hE3gN#11w z0050fR&-W5k6+Zgu%rPR>BvUs4iCfK{>DFiVVV6x}ifkYgI zB}oNH2aqNeARR!ORDg5msr2*v`!Fsv~1St6PM@I8iqOjfaZP0q?6BS8?9Ovc;%7FhCqe+0lF zfS(rYu8H-p!5|1;YOOC3(HGmbn;~)z2*Yr?Ua$87n3AZ!60w8O?Ck7ZcX#(S08gbd z013G(ynH3@E`V*Doh!*ra8-gJ7}r`~0r1Us?L-IwfG`X{5>X$3Pd4i&MgRc#zW+6U zlgV5L@Z46-MD&1WEcbHHn7#j?x%{Cqu%qKU4qt|cNmj#YXW5xtM1=(Wk*Z6V+{ zQ51d1<#N+RbP7P{%4b9rG4rh`ij3Ylg0>O>0M%;M&*gG&l~Q{F>?fihMD$K6b<_9# gP&!{qN=ke23rP0s@<{ortpET307*qoM6N<$f;okJ9{>OV delta 867 zcmV-p1DyQu2mJ?-Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L01m_e01m_fl`9S#kv4~a z8%ab#RCt{2nm=e0Q5?s=ze`dSxa9s&1QAM(L==+C&%p|%ByBIvz2BYQXT8V!ecy-oez_zM zNJvQdpCRc0y`YpT0hk1EiilFoya-@_#&H}g=v=WApp-gGL=TyH?}kSnfU%$wjQ&Ln z9a2i&BBI$2iwA%#fV)8_P47Hc_!J6--I+}00f2MN+;togoeny8F22$V{t6YX~UIkvI*UWu##(=^AKd5)R)g;^(ZN1$9T?`pML_nG;BqK0^)w=Hxh|gVM!7J(gCDN1V{&vCJ`VVK$=8=bO31*0n!1aNd!m-kR}lz9YC61 zeh~Q)Mi41_*#V1vPa#NP0qu5s27fLj{SyQh;JR)Vz--e(9mkm=qDcV1G}he|?H_}-ZNFmXD@62FckNDyya%|hyWDEEMgc5I z)L)O-i_pr-%4$BJzroDUq%r^zxhuSOCGH-8%ueTuaue)|ZQJwAd=0>N-L)ej003Oq z{bU%%D1gs8>qbTZ09clP^(~XhTqU9xx@tzE2XtbsFH9rg9fnx;fKJ%9J#QGsbs|~~ zvrc3M0Dxs#ONL>L0r(PDjYtasfNHhsHk-{$0N!q6crEDsso;_HQ?J*Xp64y(ayg%f zPNIA7`rvuqn;>(?Lcm`<&-<9oW|xWR41j?Rk84D9r&g;4+6A#T5&!_6=ULfo_8oxz t01g893E+J?oxW{ZmMfbsAt51d{06H5;@5qN!|(tA002ovPDHLkV1n2se%Am1 diff --git a/app/ui/style/olive-light/png/beam.128.png b/app/ui/style/olive-light/png/beam.128.png index dbbb855f25e574468bdcc687f5ba45ca78ca6a24..6da180f25bde0c6fc58dec770711b9fe49bd230b 100644 GIT binary patch literal 2288 zcmb_ec{mj87Jo;wkBsFbWErDENZGSA8k+HyYLaELO+)q>hOs0}2{Vz*2wxFOZiS&@ zD$B>*hHTaJ*|SC2vW?|Rlhilv{rCQN?|Gi{p65Nw?>z50@B5sWe%j?YR7zC}0070H zQCOj*ZnK1#aOK+JyM#hA0__~2%pCw(4j>VG$Kx}NRQ7|zy zihz#@Fd~ry3zlqDg-(jwPDo005Qz*<;>pp$L@g{ODwGuSqU+6Vq5bfGKqzEF00@eX zj<7a1CXm9zNyI3l*x=CM@Bsf{{5G8N_RiQ9PYfja1`|j`pW^-507z(HP)OIf!o|D8 zBrkWR^yKEmg{L+yb1nDHR1%EZa!_9YBcehICVD^qKycsnTW*PZAqb7rA#pSIRDDcw zkj@m;(GX^m_y8tvh|Zmp!pY~1*VX0qWY8C^i@bO~HvX9-eg+!6!bGElWTtNzpPd(& z9QDp__^S_e(^CiPGFA!l+rO$M~rDr8JjV09LMmyu?~ienKpO$w_b=; z;po9WXgXbHn!&89*+~QoerL3MtnS)J6? z&+oc@u_oTUvcq>52C{6ytah*Hi#<-}iS0O@+WyH4eNa(1CvZr7xtpEC-c z91Ee+WN7X4g3CYS!Fyb@n3h_k=ltzMx$T2WTEcP%+s?dBy^A=NV*~XI>}{k370}{d#sUd=*BuXZ$!Cx)m=cTKtB` z^R@6i{t)3py|F*nxfCh)Lxgh^h3KU~F;KtGwMK=SnwmBI^dY3asE1B5kH0ToofC)F zy9hbaKfj)ws`$~;X#n7B8XFr22L?9M$HvBN!4ISKU%&hMemrH6+v$-1*~z)Q3d}EG zZ~a7aoD?6Ga9ZWDaf^ZADzPO)A$U|u_RibsE?_;Di16(2Kh%tp+NX);D*?`^*%fR^ zNP{%D-}zU>oh88rv)=%KlD~r9fVhejxtVSo!O_m00F?Ev^!rM%cVZUf$2ty%TvvFk zT!MXkd1UBGaQ?2I<-%lptT6!DHXoN%VDU#Xai7wZL}=}si&@$NqzbzQdS3Kfm>M^8 z%gM;OQf~a~;&Aw>>9++I_Pa{+UgA@Mw6yd|1pGy-$xWueFqZ@_6K6)I-GdZ>Np&57SmAcO0#F zewKw(Kwc2_@b*qLdY99jMq4167x0|C+uSgjfL1j>7;~_Hz2dCA4!{uZ*4A^z9!U@C z(_vZ|8ZE0njm1=fTqJ$F*)uHH@|mb@B3d>`c&t?D%W*ET!fBGi2olB{$DF81?ikx&5CKu%*^!X zKGG$6XmdI{JC7}939m=^O$^*kqU2Uc!Xb<`q+6up_zRP1#=#J}nwx|c{N{@zPNAb; z|3EM=K`wvfF%G;qk~L}Zds%moidieYSGt5LyK72guK*>k zEjzO&@X$c_8Db4M%gf7D?3@Ms*<$e-)Gh2B>apvkk^*)sy;f>`ePg3o^!0~=KhcyW>gQ)<#KmyZEaP9*{}LP?-msmR!Rb9Q%M@TZ-Nr(rZq{cUsTtaOzt8|wo!TBo>#Fq20b8%%@f#n;oz34(vT3Wh= zIBvsB$ez4LQ-=#~EZWRbL@+SM&0APfDC=R0mWLuERUi<|@137j{4CPKns@I-jZ)q` z0+IF$Rw4H-!-fV4ekU4|44>OwKq`8-WlG9%t9*TF?HTY@I5qcCh9@_Az$8Zv89Dcz zaxyfrR`|?JRd4Jr>pjD)IHSy#CHy<4w92lJD=oYpmXcrF|c@fPQygrbG_F- z282x@oOV57=Da&`@xe?ODpFvHUjCiy73XJNU5pDPpNG+Rw?3v`aJk?$n o3cYKx{w`KHm(#g;i(fl`q>b&K(fD;q_|X6uM;BC;gWuJ^0R`O}od5s; literal 2228 zcmcImc~H|?5`MoBAlwP}5m)9%ga{0W$R)QXnyjdZ+@Jx1K@9{5M?erF4hYB@1}_9T z6m$hVL9QqxC5Ivr5it-*MnF*1C@2vSXTyKHRrBX=S9O2Yuez(=>;CGim+Q56mx`jk zA^<>zOd@zok-hFHIce;64SOmDWc+rr4@zojsE8bCt`JKKj0XUkUUz6kM>kk{sFy$t zNH`EfOJIdD4+9p9WpR{2kEe#k9=3>KMwWka)&~G(O(uBwBwzYiaWD$&ua_-k(LOS; z{&vuiaZoCas-Y95<*AN88njYscg!~(cF$B2WtyQinf|thK?+_T+kKg(N{Z^HIszXb z_swf$**&{0F5UCM;jEL=Xk2{rHBHOc%~Jz|y;-AWQ^x#eNo3Dr#jZP@m1}REZgP2* z6)yB=KzqdM6X0^W5>8sgvK>bW(8v}!eGNGwaLUODj5|8}&xa-^CMs+u_QK7~@!{dA zj;3-Wz8UO@;d?H~aSVu8Hgvs^urMViidm0J&To+cTjEqzLDM`#yTrx6V;=zk+|BR& z#Dm`-xS7E*9A^vIC^|aYvY?<~tzPTG>dK0%ZuXxia4e4C7kH!0tuMzfoQny56nBYo z9~OVhImq7jn#8ncPv9`wVSLHjDD-16aU!y(x7WnLF@Qp$>}w183A0bkFjI8MI;{)P zp`wOJ$nOoJRimq7hPgajIlHFNwJ+1q!EfII-eNZNL9P3<8E*Ki1W{}Oot-L9Lv`&~ zPWwq}3rTPF!vBc3RXLuTD!-xE5h<#COYoH2D}XK*+2FXH+nyRX5lHU#94AUS@ zm@yD{NrSX}N)3;$+HSx;9Z91Vrc|DL=(j&3Bg3M!zf)Co8ZeFow(AbTQU*<<`!Pa^ z8+XB#x0sX_mW=I+RUQi8Q3kXo)kLyFi8yFXlrlMiqd>6-qOOO-OIe0ONlX$p^2kgQ zh7Uqz*bK}&@LWaI4H%FWd!>Hv=xCxCjoG#1DuD3~T;XV{k2gOjeW*)WY`{`~CtGf#HSV9oa`YJSe$j`u5^1 z@A59DpD~@rRg9H=AdZC6RJ+o_<*0?&UXtr(IK!%Ez&@p+u2fMvyp+jPI5lXF9zntA z87*(14qP_i+cN~MGFvZtU;lb@aBz^~PoC&v&JF3r?F>}D<$~; zjidax80x@219kk#D-5}Sz1MxVjg5?qkeQ?U!Omg%DV^2T>O21x$yU@8N{SGz(Y8*x zeRL1BAS*FB;-UUlb7U60@GBTHUCJd)r>?JJ4h=leo#cgO-wz8R)m{!m_uLh>X90jF z4q4J0H!b_v+{G!_A|mec&p{zg)d|(LwNquZS+e3Wqyy`d;4i|o*!K5I=MyVmJ%?pB zA#D)=^bZ}gg_%uSft*Y`$l|4!_I!POD%&EJ;)U*7Ux zlkrh-ztfm~achMK*K`ay*WhOa8w8hZ+I&sjozU{qtEKIohx%`(5Q%Z4npU;G34KUT zPL82j5=_Uh&51;zBj@t&RqbRiFE6hG9~TtzxvP^?M?F7fy^@q(`zi=?y)B7b`zB(j za#p3(xo|A2s0P16SZByU2-)zPP1n-L@o~~Wdfun|_a;u9B8~cvH02qv*tF7Tv_1qN}C5a4IcjxNgs^<)Kc8v91TVOY`(X zpPv17gH#|_vAujtc)Z+MfMT0;Tcz2l*gQI}Wmw9aU9G{lS4hqudq*+?Kv z8n=z=E{g(!gH?(xlJa(iGP~k1gqN{Iv z&z!rbh|cZX2nlHUe0siP$C#W4`jT~zKrJ+YP}%dwoU<)FL+82s6Htgqwkz#-wz0GG ziy|DL4v+z5UM$Yos@!b}UdxBtd*8`xXUL*U^f)oaSWHRD($bPqZEbCgJ-su}OCG`s zTB670wY9aEiUpftC&Khp^N-#*_1uGOW?S0HX|0WIoDg7T1}~P${vHSpz}^YidPBI> z1MM09B~ZvTtyybXkOfWRRTo@p4gP&&gZU&flzQ0OEV%8&<2SyVM4g~=L3rRFe?exC WayyGZM%GAw7=TRNOK932n)z>*KijAP diff --git a/app/ui/style/olive-light/png/beam.16.png b/app/ui/style/olive-light/png/beam.16.png index 2da6659a7e4be2bad092b98390f4ce790fbfc5a2..76f0290b1ad1e74094b4280a1518dc34125de1d0 100644 GIT binary patch delta 434 zcmV;j0Zsn$0`LQnBoYa5NLh0L00Xc900XcAC&Uk}kwz$g6m&&cbU}4=Xm4@=O<{6$ zX>K4=b#rTPcDKvSnE(I)Gjv5*bW?A2a${uxXmoUNIxjC{Z*6UFZgVboX=`b1Wn^h# zE^l&YFL!BcX)jb^Zf9>_X=870UY{tC0003VNklZFr04I71V3u&FAN%o=$tzw zxhrW607%|Ty7t~*{dxzja?TB$bAvYK|A*N64oEHoP#d$*6im~!+w1iX02~2W3B&Ly zNs`B+D9SHI>Ko_WDXPy@X;Q6Qwb-Ti{%qbAMkHS(y#_(>Fr7}v02s&dc3GCIBo`&! c)Dzwn0i3B;ye!}oJpcdz07*qoM6N<$g81{j)Bpeg delta 307 zcmV-30nGmJ1M&ipBq9WJLP=Bz2nYy#2xN!=000SaNLh0L002Ay002Az>Mp2_kv1rQ z?@2^KR5*>jlRZwuKoEt$XS;BhbX1YYM?h4hHtTRDd9 z9g4U}Ojrvfc+F1n>CKznSuv2Ay#PphYMSOI&vSKMcj@kPfU2sFxA|;n;OmeVL%Hmsz3KaJ1UCeMAD4SvmN!! z8*uOL>$ zVJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^Mz0ZBwbR9J=Wm$8czK@`S+Z(ktICYN2}1tDLvZ{EE9=En{!d@y0jpp7sL=T!AB5Tx2$fD@6&yNRfMPw7W zVT@UCwOXG?^~?pZtsn>v8)F{ezo3Zx1TH$~Ugz~PMF86E_8Sp-mTIjRIlM4{*G8&- zThyd~Fo3H5$f|b@U|gC4Oab!zh>W#%8JGnSk>jd*!q?AL^@X4N6vy!zpkoEF)?NT^ zjW~WSj^l@;4E|SFAlBORA~NsS$5izwfQY;TUi$uqbM6u2zJh*PYgd33zg&&uc(sVn z#IIlqFa;FS>Rkf>4yEe(fm8niAPmELBfw&+b<+28tCVLrilUinwYm)41oox2 z46szI)i&$(`j>9E`)yRuywR**U;T4nFky#iHtY(rqS7aCu^d`rWDc4yB66A>k=~ARTG3g)x9%!&im$0ap#H(dGGH5JB08EAWhS2 zW;W}bYxF$3RApWXU}jH%R8o`mH#-fCNqUeZ$w@$FHq$Bp0la0sQ=fsX%3oCly=pd_ z`$tAb?f_SMZq2Q&tz{4EUuh5*}{1;5FAf6zI1yeNvX&RihII6W~jaWuyGG0*ca z{}e#dxftWK^6<{Jg%~4}E&&Vu`0e^97X_}Z>4j{>ASr!KI+4T+#0fqoWfd3bu zD2m!<@s0sVN;XWKJF*)9SG&@G-W_4v>brH5lamKVM@R2>CSR!&^?H50(P+GBx7*+P z@v9t0Ns`=PeKk7_jGNghN#z)yH#14P+{u3e?|@}9YXMmZ;qF%cmHz{hX4qsoHM3hG zgt-pndr3EeG2l#B-4gI;0KiM&1F$M-CC0cY>2(NUV?7TcJoMf_HM6rH&betbE7$Xt aD)V2|xT-l)%hjL&0000 zVJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^M!`AI}URCt{2n?G#aR2;{@KRY>+Gg1=M zaFPk&Tv}3p>Bb}rODO|F0wiEWq7?(J*jh!MvX`LHay>Cdw%zV=@j4zADq6YwlLLuY2?h+Aw!puUN0Ms1Ec{6O%kl@XP=}hob*L6?M z&d#2H3xdFNUH2ORrz!0g?;gwE}DAb7PrfHhjs?};cY_jNj>&w*C)TplOHW9rA;4FY+AxqQ&tT6N4 zAPAhTt*yUe7l{N7IE-ak*-R#L8NmAkrrh>_eSaybNgqav0SEW8ZTo8gAM}a4?KsXN z04Y17&?YDdd!Dxh;9-xLy6^i-kTiKft^uf2DvvZxTkR3DBI9R&7^wyTKoA7q_ZVK2 zrQ-nU2JG+eZ+08=Jns*gS^xzGR4SE6B4bG*-GKiZsR615s3tW)wE)$m2B;RGn$!S) z)dEzL8lYN$YElDK3s6lWufzsyoefH))>l7-UW@l*WMpI!zPe<8Cm@)+B;OGjOI9Ot-fEzi<_9*_vB0jdS4CN)5{0M(=hs1~4_)Bx22RFfK@ zT7YU&15^u8jdTMFg~E&7#w^Rq%G3fVFko+Q@6~Q&nM@|?vDwf_H$c<0w|fkqmL{Zw zR0DFkoB`lWkC3ynmw`+JXmoV+GBdx_Bj#A=OtG{#Rf+Tko+g*e8IzNfR{*?!H$eCs ztuiO6C2c#T0HpmSrvA z>-BL-bB#vhO3`{^tN?%?)(6b&Yz!f>4CwVAp|8u?of5?WGrPK#SP{g3S^@tXN&{jG zh)rogYyq(;4TvouHl+cv1;nN_Ahv+mlm^5W5Sv2o2_{MMx}>Bl(mn^W&ViYw zX_|g9Xl;c&7m)NOFtthAO@>HX00wTrU4IIc2E-N+n<5{KTqjAALz2$iB*g4+nx?nh zEFCm={R$`zh%F#Cr2(;j1;nN_Ahv+mlm^5W5S!9~*aBix8W3ARY)S)S3y4i=Kx_fA zDGi7*sid7-i4{St6)@5xw!3f@#53UV`hb}oiXo)%yTac48qnZcJyAEy&bjfT-xrRt z0zTo^FAp#*>7$~>6j?7&@!lT?-o8!FYTe?IU2&2OMT8c=UxdR7;p-BvPaIanZ41e7L|l^H?}QFbHHnN zsvY8Nf&uspc&^cZXk2MmkUR^Vpuk$84n-OuU>-P_W!XDfmaTRgvMgK8vh1j&gIrq; zg&8sEH$?shev))r(pQU%i;deQH=E6K!1UPI*hIBjeO1!)zyUTcyzHC4H^KGg^OF8? z&RvqU)b9q>!F#{QIX4iDmKK~!hv0J1-H$|Kb00000NkvXXu0mjfc2EV^ diff --git a/app/ui/style/olive-light/png/box.128.png b/app/ui/style/olive-light/png/box.128.png index e165f63a62af2966086dd6ed77564b7737ee1e99..a15e4b3cb8256246b395d71ff151900d1fd9bba6 100644 GIT binary patch delta 1210 zcmX@i^@MAJ%0!cy^^-hZ978JRyuGtGPuNj_{ez@~;14PBkd{O0u3m*5QXe@yzPP;n z#8Wcy#V4r}6_Jt;3?Ul&512G3t#4FwDk|<1>E>a5c6j=Yd;PQb-hK1``ofI8^~V

xYJWM}(^<(;chRZ@2il<7VG*n9rwCzulsF}+0S>g_9O&~x54@<26zS(5q zuy5Oq&r;8CSFi$|G`+*FJ}WltKU?BHrA5=Xecur9^H$RN>{Ce4h2pm{aJN=Pt?S|kqx!=m3mOf?&!1gji^z)c(r?||75lu_Z}ceREO7ve^H<@?3NMmfN=-e(0=Jl{NF>j&-m3r)4j2 z-Tlw4p7qAO*x&P}9yU7rOS)F)4-h>6_U+s9pEY(V&(ya(Vkswi_(oAz{gd|o3nZQ(y?iUCmx%>2zlmrMUz&lSG$RK_-9S!n%K%f@}hUlL}f{oVSE zrRwa(=G0kV!)FV>uyW_0mU%rs*KfgVkiyvdx0a2y=RWM#4SBuZR(->H$-3>WS%0@a zXJMOdSkb-mn*4pfb23s2#TgA}7S=NwwX>ao@o;hy!wQ}lXj>G|5apR6I>-17*EyLq zR^~L;=X{%+9_n9_M{;=1gT#O&pxR)dLPLncbe_#k#_f>@8zK+RJiO+?nZz)I7qIZJ zz9rq`ws`aZ|7XvL&pOX{EB&d`rvuNw2A$5%e(V_VoA*u0XTJHeGv-YF?WL&aXGVRyT$iyLDQb<8ME6L`RTsbx>#@0@Om>dFk0hRK8;nKrNFH>{ivP( zQcwcj##UhY{oUtE=d8;0fpdj3x@W2$nYHf7yzSpD8@I)LdsQr!_@**>hH%E|)b)1h zg2(1<-w%>_&ee9R{P4cO=e>!33v`$7Y+?juZLnO;bFQrC+1W$B@o@0lG<@V$H%ME6HFq%H63MAs`>gTe~DWM4f6CXu2 delta 1174 zcmaFDb(m{{3NK5slV=DA5Y%v_bWBv7Q=jPR;uumf=k1-1Su*Z2$3OnJa6IxxY~A65 zg$V^4D;XxcbL{9Zc%JSd?(zJ3!E=q;KMd=7;vR4{JH|XT$qJbx@S{WB)r@cVz1?$X z-u?fk=h<&f-L&V&@7&*gseb8x4h9g=X#E(w;bzXfi0pc?iSlc=-tRu)eBS$xWb!|u ziS^~jX4tP=x9;BWw19Khr&rzc{5gkvLFTN@w{PE$cYSgv>h}TTCm)_2s}Y;ny=qll z-uB!6!RwYzT(AFikK)fcTp*Qy>;8MW%=6={IFuTDUEhh{)M?+oE1#{N|33CKD>U@4 znv%V5U+JA!1r|2DcJ8c{-edulm)^^~<$V1L`>lDazz`&!q3zcznOcba@QTku+J%y;+r4> zw?G2>W-E4UOJ|;q2|926>!xdc*}SBlpAyMuV~S2&tE^-an0VSF``M)Ed+Sw#8Q#|S z>xwhJ*1N?Q5wi2Ct=deWboT_i>fOhFH_vd)t7Kmq#4tTHbT3croprsH*=Kd%2X>1& zR7=;|E?uvuwCQf1{ngUHha^5nef~BpI!=7?+6P~&{w6-N4X)pNYkKs(zPowfe_XkK zl{-O)!SAx&|B!v`2b?q-4h1r_7Hc-_=Da??ev{b$Alv^JnPyzt?YH**T;;c)%Xc#S zWJai5d~;&XtDn2?Fg8_PU%0oZBy;}%3`U<9vFu+@U0hoG&(EHf<;yyC5U28=-+r;W z+SsCf7|+mOb)q+vn=o>-&BF9_IYx|M}1JAD0a-zL~nX`!hQ@SpW&U zih9W@Gk2b^zh>E3eD0$2^lLw}&vMQ&ap#Yn^?bdldch?b+mg(A`)|!TaKW2~oDzL+agZj1;Ka{o(>@<558R#B zIjtC&U{r${7QW|ms(u>$blUeBDNS3P^18k6c@>}jJ#`6}!jkuUpZspS^NH``JmD9o z-J*=^reFE2XRUrA{6w7hIVB(4e6C`q+SWH)pXeL{N|*yBUc?-X_{sLo*9t7fdRDY& z1}OJ+pX2;unz=5arKWb}^Vl@M1?zV{gTe~DWM4fM&C?N diff --git a/app/ui/style/olive-light/png/box.16.png b/app/ui/style/olive-light/png/box.16.png index 6e99bb88bcaad65595b56fa552f26652fd1ac94a..fadbdb33a6da0aa0b6546ca3abddb8e4ef74abd7 100644 GIT binary patch delta 202 zcmV;*05$)F1L*>gBoYa5NLh0L00Xc900XcAC&Uk}kw%Aqmq|oHR5*>Tld%nhKnz76 zC@5?EJ}o_rkrk4Gk`)*u1JI(h-Xjf-4OHPw@|%;a_kH$19sH;YK+*uTzz4XQ*=th+ z7|rY|sRy1w6Sdlbmb_Mvq)F0L>fG`tuicZkXZih+1`jRG#|qgH7ry>Rl_(|{lfEp! zBT1d4?g$?(D?I$X6!uv7XmIwTld%l~F$_h&qaeoc?`i3eF<1cxf)z3b16+He^&S+ViKQSRU3~B>%X#0i zzGUD>2>_5Rwbmnmmxx@-?Rq7RR%E~>hWntMLC6|a%s zqx`x^7LsKPpMiLYJ)a`RZ}Jf5h$+fAuZ!eFa@xXsh`0837#Yy>xfOc=P}S$?E%>nH f!07s}zXkaQ2f|JkHY)aP00000NkvXXu0mjfjDljb diff --git a/app/ui/style/olive-light/png/box.32.png b/app/ui/style/olive-light/png/box.32.png index c38c02329894ac38446e3eebc4f76aaabba43f2d..dd3b376efaab010ac003d520d541f63a14d73870 100644 GIT binary patch delta 265 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 LWPzx=<{tAuFS8%I delta 4665 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 delta 569 zcmV-90>=Hq1=R(RBq9WJLP=Bz2nYy#2xN!=000SaNLh0L00XfA00XfB^@Ht6kv4~a z^GQTOR5*=wQoC*wQ52lHzFAqaP^8e=tL$b4IFdV%LPABC4?sv%gd!h+@)gkFE>)-y zP4WYL0OTP;9Tu$kZsdp(MB*Zj_YOsNBjd;E?maVeUPDZYBuVDI_iK{sBn9A?wRXSL z>HHnXa`e$?H11k!w*Wi?V8^gS0DF>u-kqJD{hkm=lH|Vk{=K9+fFa34Nk0IP8#wz?79sGRd#Tn04peE0SMGes<1n09Yq^EUDqW-wDHT;a0#}yH%2F zwc19v+syz#(zc{+0C3K^TCMhyUcRYerI7wUFw}0ErWXbP@;q-Bqde;O`yZkxTAEh* z^78Vdq=zJX0NTK$m3JgHNan?<(jwg?`M9Xu8xDt?y^XqBu_mrb z?gD5#=l+zR6Q=`!X0v(c>gwtVfI4uq?H~va(loso$NmGiUg*e{&w|$s00000NkvXX Hu0mjfbWaDX diff --git a/app/ui/style/olive-light/png/clock.32.png b/app/ui/style/olive-light/png/clock.32.png index 1b59ee9beb2fd0de7a2824ad51f0c5ba546add00..f7e84b9b3313f026033ae5d8eca60602866ef49b 100644 GIT binary patch delta 1105 zcmV-X1g`st3h4=uBoYa5NLh0L00&_J00&_KmBYBUkw%Aq7fD1xR9J=0S50giMHK$t ztd&}b#Ib6Tv@5`ykp8#%^LY&M%|G#Wnu z;GRGUiLU6cX!t#xe5Rxax#^FN)<^y4`3QVCSmQjzVE*dAlO%c z>$+D-UXIb*B64$RXlQPEdHL_8twyL+D#NW->k`RV0Hkdj$!qm`{llID!vFjek{w<| z){QYUD=RC%$L5|9k=fAk+x2?=d)r#ElJr$V7{CdqD$sm7?WjsO5%0$Q!s=3xayenjNG zBtyI1UXM}Zwt%i0ZH(#Xn(p;^CL){7+Mhf~2DX5%9jDXjt`kWD$#>%G0BnZ*9yFVO z&8}J@A{zjZ3Y~2Na3iBqstmx}Pe53DpFK!u1jlj8G3o*E?+M(qE#a+pq!5v*Sd6jzrv zagv_`IA#T3bsT3t8g~TvzQ0X!Rzx~Af#f*J+r?t>>B9zhU3UV&*N8PF0A{0J0EjiE zjYgxI&1Q!HJY&&Ml6)zf%|4OKwR5}Q)3 z^+y0+Ot3XYWD&q(yWRf77_$Zdj^mt2rBWpTQzWO*op2Gp@qPad9MqIXyw>`Xh+MV% z!$A-p`<&-_AH;(Lz260BG#WpTj*i|Jkx4x2?*|FK3gAu8^X8H8CII?)nw87tW5$?s zVH=g}GxkFfx$Zd5yq$0Z39z6v^7;H^*vU+YNDkrSl;oO-JRo^D2!f@s$m}`p|0Vtb XDTB62xl>$E00000NkvXXu0mjff{_Wx delta 1136 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 delta 2289 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 LNkvXXu0mjf%a~{| diff --git a/app/ui/style/olive-light/png/copy.128.png b/app/ui/style/olive-light/png/copy.128.png index a111b129cd9e02d4bdcf9227d657098172d562ec..43e45582dcd31ec597d5fe68b76c6519c3ca3aa8 100644 GIT binary patch delta 841 zcmey&{*!&e-g6E; z-Cv(-i#xcyDX~4gE9>?)ZSjUBYuBYmgy-Had&>0S^1n}8a&J%NW~dZwuw*iDXL!bO z;LhiD>=kReySul?p1-j4?AiLW`Tdo4?hM5&34IJ_5b9(YXDCAj@BWH*h@AHKX3npR5{{^Gaiy=TPkEUa!NS+E`$CP;oo=)be}JCBoj(S7DlWq9C$6)I0! z^~;FKKu9qD^=Xa+9ZM#Ic#4@pB1a2rEg2;yn7sU2^*gs*LouX8MTD^-;8S^GPeG~iupcCr_$XBtWHNL_!gU%NM#yZ!J(H?NllO2=kC-?*jXpsdgG%ct+WuDiC) z>BFm6S!PnbcCqpC|0jHjy0m)ArS3DE*P41xU2=Ys9UogWe|mbl{qA|33=BVhaHl*t VrlW3tQ;GoyJYD@<);T3K0RUGeZ>j(Q delta 835 zcmey#{+WHk-g-q(7srr_IdAVC^t%!u(f08F6|2rz33Fv{qePRLbE+>c-OzUXgWH)6 z=?~kg1!t{DIV2=3th7xn?b73>n-|2G56%nzc`rS3#+muwQmtmbT$skd;4snK_CW5Q z?~`|}E1$irGCOVk**B4|X8tqYf96f`wAACSfiiRF%=z=~_tHSN4fUHhe=gb^CqL_^ z(pQ~+mzmFh{=0ee=Js#=n?x@E>HS`J=-~h7Vz0mcx=?MO`9GnA@k;65Y?(ibI%dDW zwOwT0VEH_mq4sxK3FD2g(sn$HH|HOhV0izn{qoK2$vg~#f(;f-0`3ftI2>Z;RW-C* z+1t-wK2LG!+qZAm^HJ4WtR=x@YZ|c0~ziZ1io-clI{I%cq%q~3um!u)Ql=Nt&V3ehitUr_)72aHnLg=IZV~tze`MxYmJ8e4WC~jZ z7QO%N$1vOUN$MNNgr_A|Z`a(HpY{5-#q6`&W-W^Zrmjymt4`^h<_lYW)%A^f-KFgx zKYiLX>-=*Y`PHj_y_-}0a87kzn!ob-Z!2=|<?Xh(8YRaG>z`8$AZQ52K<^7$K(jIR{Z nyh)k?Xpw9^DoZ+?@@E|ZlITtDh^fSa00000NkvXXu0mjfikfOZ delta 247 zcmV5oKjkw8M~bGg}X1z%m6^r9Kd_d`Mxc=yKtM?%PRB;I;FG*0C(5XN1C7wfHwfO*82P#z(*L_t(oh3%HX4TCTYMZYO@ja<4J>INO7ouIH;FJ7Y&au0xn zkN`uIx(B}-lH>p6SR#Niq$vs^+=%EZBBvywM4gB{nfYEQ&(x{H0buA=1AtbbN)%$ILcLkO?ww{`;AFc&C+e#_A>#pYelN4P-*&@l63sajy1fGYd|)zEv9Vp5ok zvqr!S7jOX=Z~=3H-S2@Tto^_&ClJj9h^Pb50zbNfwP&3961sp3i~=!Z##)9m_M$v&00000NkvXXu0mjf?1p8X diff --git a/app/ui/style/olive-light/png/copy.64.png b/app/ui/style/olive-light/png/copy.64.png index 82b616902be0903fa9de5d2f3a3d6d97f6c56492..86a635324d51b8b3d235b29d1164262b9eda8ff1 100644 GIT binary patch delta 464 zcmey!(#$$xZ~aD37srr_Id5le^g0|M()NF`7!%(qM(gqqtSb78_BD2|+r_cZDfZQk zlja-vAKoz+xOLS@|7BQ#g`QeSi`V7Z|BhAf)7*0QgB{-KXNft3%19* z%(-eZHG2y~TA56C*yT05j>RypRr$%l?kk^QHFus_ZBOZ!s=eDw->dIuvSEmB=w(mf z-mr2V6VSS6pMT0W6f@k7VE^$}XOF6}pybL|3-)ZkKSj%d~Feu{dZ7>xTJY$e46xkt%g;6E-4*l lYg=Y^@PvNt)P1yNs{dZ=z*DLD$<7Qw;OXk;vd$@?2>_~4)hGY} delta 446 zcmZo>{m3$5Z~c5v7srr_Id5m#`Y{EHxb@o$2yyGK+hUS;;EdZ8*&7+Fdpn~KxOr=p zD|By2V>b)-lIy&DAtK>uOU4m{Jr9d(zK7@^xMOKqdB%t7!IHCnYaAn|ZFS<v*caznnl-N?_F1A|5Nq>;}xbXn}#R{-%9Zlo7R}l z^~-kdg9F}kIF+fcDBe!7tZ$3v+dJ*nGNcO3}jV0^IeRKwHt4wL6S z-G6C))q|pjjN5Ss3a>Ix-e1pA#jv$OihqGvz+;%6^C?f_=5Jvz{mJ~Ss};)fY0&!vO$nKfDq&N zWq}}N03pZkOCCY00Ad)wFKGlR0*Gn+zGM-k1|Y`q`;tVE5`dV;?@JCrDgaU#zb`2S zDF8@m{Jvxm#10_E@%xfM5Ho<3$M1_CL976B7{4!S1Tg~0e`)-_Xc5E)Ajk3hqC^lA zfSkwgiw;3701jdNzNiqy0N{|u?~4XOXaI*eeqR&_LIODC@%w@!2n9gLzbGhz5CC-i z=L?3wHvk=fxF8680?_fd=N*AB06PBec}3s@fR4X^-VnG3pyQ9v3j&t_bo}W#N8k#8 zj&Cog2wVWrfAQ_-41sL`I=;J{Ag~EQ$9JD~1hxR^`2Mnrzy<&v-+$H+Oa-9hhsz3r zDFAf*@J&WA7J!Z)Pm>Ug0iff@*JuR$0?_f}Z4`oi0ON@a0qFSYv=@S10L<#T zzOCaY)wQxLuXbH`!WINu0aR7>731!=uZ8V;S(cZ(f3CZ~>7tDQs;c@3_}1#NG;fK> zye!K{UDy3Jbj@t&g~eiViD%E)(GtxVBfzcomM?7Z9bh(_ePWFH+{wu_pA~0kXTP7H zpa1cq7YE+~R;$$q?#`t7Y&M$>ZaD}5c;CTUv@pFl^uizj5qZ_kS+oGXHuS=#cYxqG zFVO5{e~cO2au9$q=3h6*(R?Q&{|vph=~uu*H^$;P&EZ;;Cq|%+X zZEpgrZ5QtP7eR_3o$j=4`z0HG@BhDj{w7cn#NS@y!~TC2tO(+5@9|;W_W~3_e2p3( z#(y(N5yaEz@nPC`0~JB|CXEl%za6Xy!Zmq(uycO^Mc_Xxk4LFUa^1?#ZEw z;G$sTL)d2rD}un|L-?nMA2NdA<3o4=e{h%xq8K0I004)DAe!+Z9sqC{2%;Jv;sOA9 zBZzK%hz|hdi6F}HAx;307lLTVhj;-%9tffyAL0f8X(Nb!e25}LP=Bz2nYy#2xN$nA)J4SNklDuam?cW* zaRUN^JZ>TdaVh)-EJfiWIw}gj1tJjz2#F^72vF10q#@BFS4kUD1qrad4H9fI(`@RfzRkJ3=gj-GGaDW0|I2Q%>lx5AP17_@(==^ZnbZe}*?c~K@%;S!hB4+{;0;q0UP*yNh=+|XgZzV20l6BYv+^6WY#pzeF{cU zG5|OJM?Lps@m<9r$Q?k6@m)nA$QeM&@m<*?$Q6Ku@m*OX$Ps{~@m<*>$PIwR@m*OW$O(Yt z@m<*=$OS+S0dKstaN$9H9cKr(=w$9IWGAQeCf762W8|Dqy@0YJw;yl4nQ1JLo0FA9Q? z0CfER1xFAHfR694pa?<$(DD5j41s@d06KoSf*|k-K*tZCcLcrw==kySiogc|9Y22F z5cCD0_{G7U4Rn?WYZBN;OU?+gOu0P|r=k050yH-`zrM7J!Y`cGHD}cJL z-?P?!>Gxb(#OCAi_;K5|zjfU(>bkI4EKV-ov7_aiF~;0lEEXqSH*|gnu-1M6d>rIh zTFk1ZX?||o_Lu*=*!dj*xE|<0TKqb<+y>yC00+?$WQ=*c>)JK|F9kS@mZq1xE_4Dg z#w34uf#$8wEjs~NYyS*$7A=24e{@~g_9Ng?fP-iWvetHPxedUN0nVZ&$QaYPWha2y zZ1w}N334JWX6yBOeZT8sCxGR0`D8R2-3fChEmGE6dmDJ#b;H)*1vE|b>tr&y49tC> zOpDStXJ=>MZM$LTZv&gAd017|72uk;V`(w^ezVzpP2XP!1Ga73)2e@}UPBRNkum1( zX0y2o{I%=eeg7gz5oD4v=I(mE{**00_y5@;e-o$(gm>upaQI&ZD*~Y%Gd>*mxd25V ztYgQA<3Aas2!zyUeCYStKt+(azT-pxPX{Z4MEMvW{5&5(5k$_{_~7peA&MYUKF0^Y z&j?Zkf%82+_*E<3qeRhA4tPi#a~TeP@s&*ir29A^uy#6hTKR#)mZT4O9gGD%JRq z?#-c!;G&e{L)v!-4<144@ge=&!v~8%!uXIL01Oa;l<`3Z02qG|0!ib88~`u?1k%O_ zSpcA51QN#wc>th51X9NbnE;?51d_)Gxd5O51k%R`*#ID81UZZk@&Q1G2yz)8@&EuC zA;@Wb$OiyqfFQT=Auj+R7(tHXLw*22Ac9=Shdcp*AOty&5BUNB0SIy*AMyqO2@#Yq zKI9Jo5+EpLd?Xsvf(PUA_^~nOO`zIw|H@kX z`Nf+yihp5k-F%(7b z%PY7XW>&QjUh*S_(uMU?q~ho3$5i_jg09BQs_tgCrO4~1N{1#fJ$)8gJ)DZA9E>qfA%t%RfMFQA zx~|^=tN=_3y#Fxy=z8*?mD>utT>100005kwH$wFc3w*$4D#_Wz|-)#=c0Uibcy&Do~F@4^!Y2NU$UE2A0XPs>raQ zRE=u8&R=@|d(wD-M2s;rW}c=x6dN$}f{1nio|$*>&=b8apoPXKNK+yJ;QisGZ| zy3eZu=iI#S`|S}v^^{VpkVI#|Nr}#WgrgEY0uD-)F=lrB?Hu?#d!^JJ5s{1p2cf2E zzKCcIU_XL8h{&d{>u(JJZQC|gRlSMG3V(OM20wc5Ux2eKWJ(6`K#(E1fG-3INe~VS x{v~Buz5`eS_yO?Xy?>3Y6_2%cVy&H|I=@Ojj6w5mxy1kg002ovPDHLkV1f(^7;7-RNpg~M0x zFvi?NKr@QzI02-Thq0xuQbLGMDOJIL`3ToSO#X&gsS!>GQ7VMjQ5+i))Qn;w7PaH0 zh$sU|C?e`e=8H%&l)564j^%TRknkV?#J!pYUrx)i+!|wc07|KS<00000NkvXXu0mjfVLGb- delta 461 zcmV;;0W$uR1nLBkBq9WJLP=Bz2nYy#2xN!=000SaNLh0L00&|K00&|LIC`1ekv4~a zh)G02R9J=8*FkE+Kokbx|4)!vNWH)a5)iydSJoQ{_G~Tf4RqIw%t{Il2=1C@F(|$+ zTE%J-XJV4lStc{{e+*>a3-HH-RTmD2!`^PU8v}q+YGI5?TLUCXG7ynx5zzoZ(vqAl zm&^Ciy`sgzZV2~A6as1p_d?_XY7D=MxBxT|UW)hyXfV7GaRjswo{Jy= zj7Fn7=iL1CdTnx$v`VRoF(!=wz&ST*D;)T)9nQH2ph7XK({ThSrRF4UTgfDUZI)$= zBfuDwZnxVh$yE#aYm&3gX7dRE@!@HjrXSsI_bra&djP$r!p}d$`1EbVh}?@PKA+VP zqVOud05pIoEk?P38WC5^aUq}vgjYjS3b+B`-I84eR6qnZrCxvlL~vW~4e&q&hXWOg zk+pV3^6|8GkhE38fg65Ke|m@@F#u#)wm97F|89H%Po^KFEO}Uv00000NkvXXu0mjf D{c68B diff --git a/app/ui/style/olive-light/png/diamond.64.png b/app/ui/style/olive-light/png/diamond.64.png index 38205d0f30a0c691d2473c723b8afa0fd43741ae..1c118c49c3cede4b32ae146c2727eb7b6e2e47b1 100644 GIT binary patch delta 761 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 W=$A7y?vxMNRF2!bg7vlmss948Mys&^ diff --git a/app/ui/style/olive-light/png/dirup.16.png b/app/ui/style/olive-light/png/dirup.16.png index 81e02b78a3dd51f389d85dfd50fdb7b3c6337bbf..ee75c5e0c26227baf6672e857a6b161f615ae9a5 100644 GIT binary patch delta 300 zcmV+{0n`561Ih!CBoYa5NLh0L00Xc900XcAC&Uk}kw%Aq_(?=TR5*>*kTFifP!L3C zKXmvG{+7~&r9h&{Ew}(2f+B(vxB=WCO_VxH5iUW6=pz07hhRHAG&XW<6VYaxm3DTX zMhhIh1OQ@;&j4=r43RIA4`%ju2oRb%=^G@^MC7%qs_XwWSOS<0Op)&fb~2J(n%QF* zF@D1&@9VmMzH31}O#tBZP}t1Y08o}CLI^KoO$H76VF1WEZ~tl%df^(t+|1UhTC{sr zEppCV0Q2T%96<6TrLT yMdY010I&lvYo2u5J?KED0Hz&pH#j;@{Q#-ge8epely!sv0000*kTFsMK@dfMuSVmh9q()v2^N7>2He66=phU!4Z$1e4M-?siU2QRM3E8n z%pDA!Z{V)Q4lKrW*nj@3Hw~Qq2mpBRUr63}0+BBO&t~><3Qzz5$w3~FyaMo6*Y(}M z231up0E`bpk?#g}aU@%q*|g{-|CXPBNItfp%y0kzm#4~RwrmU`BCp3x4h-@#0E7_M zeI`X#PAR2{nJrbdZ1<{Kh7i^%rHP27UI58WjB%x^rE_lH?wxaURV`zTE0Wv&PUi+9 zGV>svW=Qf6Dk8g{cjq=g!G>)SpwT5? Qr2qf`07*qoM6N<$f&%%5761SM diff --git a/app/ui/style/olive-light/png/dirup.32.png b/app/ui/style/olive-light/png/dirup.32.png index d26e2fccc339c5499d3e3eacce4280805631b718..ba1b125d836b45fdb59582e82b29a7b4a693addc 100644 GIT binary patch delta 419 zcmV;U0bKsh1i%E4BoYa5NLh0L00&_J00&_KmBYBUkw%AqZb?KzR9J=W)v-#$KpY0} z@4Jd%Tf`?wafIyyRwv$Wvq=sWlVZc@cn9d*^oL8y~!>*X0dih}vOG{MF+P43!3 z><5A4_#fYo=44#cKFOCQ|z|Zn@&j(QpP*m=Vs0=78_d!$wR4I2w z%mmaacR|bod?ZP7m@f~*a63Pk-y0*k06u*H*T$HCe!hrgFF#1KSAgh~yzv2iO(|~| z%(jaVBJx!*o2B$$K=L4pqQ_RN^<=Hx1#mj0d;+1hK4~_a57ycplKUd!1`v@o0O!`) zvaw$X5jjiGl$8UMpP=-z%sE+C1|WG4z%06%&=4T=;-Jy&eDRbqyND_;3idE)lpZS9E3W# zre1zSLQ&{_E=?$BY%h1EAm*Kp<2&Am~__aI);R;w-?u&2%IG6h%76Cp19NXnm%3XWV-kT!&0KU8dM0BgQ9@<5JL^P%VuPV0@N~yDU zyZw~s`5rSLdIJD#F!N=WxqsTs++pSm*E6%PVD4pEa>}j}KtzuK^a{#9gb)ua=xNgA bkK`LG0L4ejc=R9u0000W|2dD>-BoYa5NLh0L01m?d01m?e$8V@)kw%Aq)=5M`RCt{2nm=#TKp2PL z*G=OpRXbRsONUsNB@aOgYUqdv-vHPVElXDrOTPfj?MAmwFm%Yum<6^vZ=i^XEGSS%LHT?ARhTCKKtd3pH; z0G&lL829LMoN7>2IG9^5bmfV^X$#iKM$Kg@%KECD*03kfC#0L*~|(*ght zOPB`%00t#6zX$lf-_gAhh4c}z;d$QP@$vC+a&TUMPJl|*2q8OHS68oDgLgpy000m| zp0nzv1)SbII=IIwniO#6IL<5Ab+-`l#MCBC2{>~c=jHkN`HyzHeO)XTw@pbfA>eO# zS}-X=w}5}bQ%p(FDIhaE#e@W10&>GsbW6}7fIB=zrv%jkrVdZhB|)WtnZr|bNKhp} zI6OsvwFDIcq=l!blptGx^zal_5@ZTc7M`L)f-C{b!&78SkRjmIb=?;{;iD*8kuir# z00}>(MFn(R*WGHj+t+y$qbOQQlH@RNUXmn-yb=n9!ZrYWo=?9Y6@#tyC(-$$A)us}jOfs!5U@hGDomIZ&xo zisSKkS7dQf0S^X)!N(v7HUYq?*XxCHx%^}_8XbY0@RVwrrboW-*Wu598Ww^e*o@*WKX*WakMU;0Od%a$G+jw4Y-afp&3)3!=g~;d7WFONPBgV-R(AT;PJ$z>snF0{8 zp>{9&$;!kO;CbF2A|Am1aT5B7c;I>7zUhrvEEbE!VzF2(migf~w;o#q@5Z0Q00000 LNkvXXu0mjfQ>R~; delta 793 zcmV+!1Lpjw2eb!}Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L01m_e01m_fl`9S#kv4~a z(n&-?RCt{2n!Rt@Kp2PLGXX4xWO6fMfsiEzSE35dSe5<E1)Jsq<06?t-;(I`;RO-uKh(N{w(6%h=yxZ;mSsvVq9Uz#00{}Rk zPN#24gZDuI<|V19TEO+~C4&c~qRRJxn@lG2#x%`i0Ju`M4kZE*LN|tCydDe&zdX;I zo2GdJiX=!Ea5p@zsgxj904Y31l>})5R)xo?kRU|>O?ZrK3Bm=e6CNW|f=~gQgvZE| zAWQ&Dc#I4QLIm&#j}a|_y8xbl;V~j5a1|gTJVulRZURJx$B2-?MSzU(7~T?i2)NGY z^RH;aSF6=M9{1dl!2DC1NdQ8qZ<^+@=XvwAd#lyzUJwMWwEKb}Xwgc@X0s;AODLDi-w;B78=o_>2#9a5 zL^ceMp_0()bXKk*4Hf}e+qMsr1{uR+QYBO>mBToWiKpB&Fg*hd!#HzYH@94O9A}?H zcuXw_f|lbr`^y8a>*f}V#Tm=wtY3qVeBb|U+x8Iv7>!0_r&KCEi=yZf_=LyQqA0p7 zm&*Kk+W(%tv78S+TJ_sPLc%6=TK!I)dwTW zNfI!Yx(Ye`Bo&hcv;{6i6~s(L0hVQ*13(l0kDV|EfTm?x7pfPc(P%UpjYgxS|IyNdk;{^avTn57c diff --git a/app/ui/style/olive-light/png/error.16.png b/app/ui/style/olive-light/png/error.16.png index 30b9aea3667394d266f280e729dcd7e0839a3444..5222d8ed1dc988453633634d8ea754581d59c061 100644 GIT binary patch delta 29 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 IYav|8AJhl$v;Y7A diff --git a/app/ui/style/olive-light/png/export.16.png b/app/ui/style/olive-light/png/export.16.png index ec3ae62177bd68c56504bef14550e3196a7ca1f6..ddcf24a1aa99f1696a772b4ca5a859ef5eeb100a 100644 GIT binary patch delta 343 zcmV-d0jU0r1d9Zay?;4LL_t(Ijg6BrP6IIzMgMqb6QML|5sPF??jlj<5KvJesNe)N z93i6P09=4J6||fI3A&B45*1Y2p|G}xCJUQjFHGgJpTGYf$v{sTW2VNKX&*zWgQ6(* z@;rY4pp;UFi^bwK#;KGrGtWe1BqBQ@gzMB}S!`2leG1^bvwyWe9*^Jax_X8;BOz|8mTy*~zUxn@?*xkmt1Ou#v}3*ZXC5CFXQ z0~QgAStOz$B2cPbubB$Kq>U&d#HkqoxNV0TLU>9+NrB~ZdDA2QBS1tVBEP2opCTgR pEX(Fi)8tC2=)Xu+2*ES+{0rP)dO^CVr{w?u002ovPDHLkV1m_%oG$pw+ z-##n57P``R!)s;BLY8G`0IodCT`Qk$+rE1hkeu}_Z!ps>$syomGAX-t(=>$-CrOf| zaU7ql>mLz$EX#7~0~bXxG{#&27y!U(wR(~$icU#huQ5ww%nN|pM_`OOBzXg12mnzO z4Mc0LNbX5gN>MqIdXob{UDq{$>BgegT1n^zBp;MgvvvL&!UYMMrnwKzwg{YaR7&k# q{XgNHqgZPfA`&C;FM7gSYZt#})qp0%W%=#^0000fOy(K`)++0Gmhk5*ceFF3`PRDzJ{g8?Op?SJ zV~zk|Hk<8^$KyOCj|r^bA^Ar{tcX}+%wd*gQBb0gO=+6$0e|>eTl!WM#lNB`{%Uin z74&+&?`2tD09bWGQ)A4J;c$4X$){D&Da-QroZ4* zX?%JE5dc_ge*xGL5%;rvAi0(2`8XuGwKfrvQvhrAb&^j2j`KV}FaRJT+jEMe+PD!? zykf&GUe)V}$Tsk*V8xT*0YLu^4fLxV^H>2Y1$DHixNeC`T~=RnzoL*s_}CDeYLlrO zAnCtU$ZKsr^{;ds$NQ7XMXkJm(BA8nojn6 r@%YjJ$&>1O{18Y!kv#dRdX4-CBm%U$riI}J00000NkvXXu0mjf^!n7} z@AqFBV=e%^2ujN=%ifH~`#N{ym5f`-wDQlV&z zplS4>R47^@XfgUwtx>E+pcs9qRw&jX(2PD*D-?|g5=I|tEs7|D>aM>8(78tg0I&q` zI`*xIA|P38Ab%VHIwbdE#b^U%Sq@3w+&7)%O<9)TqjjyJwf0w2-8r|b@k{+2Z%j|# zz!m^lYd@2GFCzcFmL#Vn-%TbHmtvmhxfPL95!nfRZ$;$TId^zBfrBs{07PWRd%vF& z4glW!{V=@p%>Wz#{}61iG9WoM#tc&%Fvbi?P9x=QpmRb{m-ZAlsX|xO*TT0b<)*rk$mTi6R0uBd2X zv8{z*EFHacpUZn{V u30Y_$MFsTJYVpy7qwdLzO^3H3e@ZMo1@X_goy53aLA8Rsq~=J z>HM_PWSW5CaQN<$iw6L>J(*1Q%>;p=0dXAfAmY;%4t-`>1(OP_5PcW3Dwrf-h3LDO zRYBc=HKOlgQhx>23NWJYqFx2n1TdoSqFx0x13aSdqFM!&3J65sMXd@d2@r_Bi&_=L z4G@gJi%JzlE1(d47x5~HCO{$jF5*=XGe9x=E}~TssenQBUBs#&k^qC~yNFf6+W^Dp zyNFc5s{#R{@8VqruLJ~$zKeGi*aifQzKd5CSQW@Y^nYF0RbVAxG#b6h(ZvJ&t-@>0 zAj<$E+U3kC^N2IVy$29;P7{_UmH~)(#F^8Ch*+9f22?7QLqu#LVxKcF$yCFqYPI^2 zH7~5^Keo5GJ3jNhUhl4ymPMFL140W3O<_Q20ih|KznK1R=PeOE27s*XA*|BDJtuq58c2}+d!FRC=^2Q&$!elS{ T*ADk|00000NkvXXu0mjf831l0 delta 767 zcmVvjG`Pa)%r}IEtk7@ z(YFz)0&4{XqHn`q1=a)zMBj$J3Ty@lM&E|D3M>^+h`tS56<89W5PciADmWXU7=0U- zDmYcZL-cK&tKgIX57D=At^(NrkI}brssgD31&F>4xqk|z1k~&Gw*@+Q;9nKqPzI?L z*dxwK@|ZG2H6SImN+@%7stfJgJ( zfb5O-*MHc52f%)kBmi)@#vB_QninfTy}tMPy}()Xq5-$uv|KCZ$I5XMJY{$fZ+p8K zFb2>Ig5bzi1eI*>UZ#b_R^EcVYw;+GsCzq;oyiYz#Ys5tyU5002b2a#Z(xl1<1qe< zO~?{767bz&_8XguC5Rg^o6U{^P@de3j4>a%^?2Bb8xY6wd77qA0emsW{LWjStvNHs zJQ@y%Kcw~LehhLD$MHFU*BX1ROZh3_TYzs$1AGhcP3}q1^}c@5+4uyM1}wZT!gD?? x=Eu5dfX_QS+RTr2ZUD#Km1}_ayI3Vf<1Ze|2=Oqwfwuqv002ovPDHLkV1g5TY90Up diff --git a/app/ui/style/olive-light/png/ff.128.png b/app/ui/style/olive-light/png/ff.128.png index da6f364c62493d03a973eebe5e0a0d794040b6ed..30fe937b340ba334f7508c3c9084d13a856e52a2 100644 GIT binary patch delta 1492 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 diff --git a/app/ui/style/olive-light/png/ff.16.png b/app/ui/style/olive-light/png/ff.16.png index eb4cd3f64d6b01ac5c2257a8d45ee50e95f5b4ff..e8012644f655345f2680b9eaa2271ad713b15b28 100644 GIT binary patch delta 265 zcmV+k0rvj31E>R#BoYa5NLh0L00Xc900XcAC&Uk}kw%Aq)=5M`R5*>r&oK(ZKoAAc znOPx(NFaSk23fF3y!!#VWsjvwvp* zhK`U@`kv>7MNzy=12z}F@1KZh9Rxw-IL@Uk%lG$y%?SV`0Dw|z;kxcQj^mlWM4yv3 z91_uinO6pEGdeQ!!*m-WrbM)@>pJc8&Vn{~0GRfr&oK(ZFcb#h|J4jFmC~hK=_?X&_8cx=!3!vYN6|Yt>fjOV>L`Lk3+_Up zbg&v1hf-sLlW%(D`}2|q{JVNm%E0&ixGc+?E@1Os5Cl6SnulSSxUPGss_Nbj*xXS{ z$#*~TJa5m;qjtdNPA41_(I!pPS=YX5IWhA^w;O;=2(fIMCNsHd005i;3{C#=&0otj zAQM7NZ7#Z}MDzf#&hvZ);K|HJ7ahDRr4~g|9Cc6X+yQWU_uIOz$C}G#kD{obB+200 dqBj43y#Q6*V$HLc7ApV%002ovPDHLkV1jw2e7*nx diff --git a/app/ui/style/olive-light/png/ff.32.png b/app/ui/style/olive-light/png/ff.32.png index c98b312f569e6130ae61c13153beb2ac249736fe..f6d7145c6ccddfbeb1b278a35554760e7988ea13 100644 GIT binary patch delta 476 zcmV<20VDo{1^EP!BoYa5NLh0L00&_J00&_KmBYBUkw%Aqr%6OXR9J=WmcL8eQ540` zd0HV`VxV1w+?T9HlwgNKp>!5;5!`fg3=Yz%;yl=wqm;xCJyg{h z01a#HNv&2J6f#nw{J7geRX_H6ybbfTWTk0000TBq9WJLP=Bz2nYy#2xN!=000SaNLh0L00&|K00&|LIC`1ekv4~a zp-DtRR9J=Wmc2^@K@`O2?L{F~js&a>yCJQJ60{Hmv9_=g>=X;_LJF}`{3o;$#B_p9 z1npA^mSXC#2iK%Xy1*4)o=pn#y?a~O+>~$c_hxpAV}Vqu{#gV7#bR+w2(eB?Ev@yZ z?GhKBlv1b6eEnzEh@$AW)9Lh07P#_%f|<|9W{25q_FYQ3X|lkT7XVhKEL|m{XQfni z_{}^y@iPyZ*<D;&k}1FFb^x#w$MKs|YR@)=32zbr%$#TD2Px%ErBYe4 zO)!r)3NRD_IO%q~FG?w88)6o36953f%xeH%l~TtELQL?U@B7sRdzJz0`@Y|Q2e9kH zTQ@MKGgsaz01^GT@=gJmx$ep*3P41CBDxHM;L(-OB!F80YFcZZ(0qiqX@CLL3x&c_ zLi4G-Q3FKO18}9aZU#YM?L3b+Y2d^2yaTOu)7sg9pVXNO_5c6? diff --git a/app/ui/style/olive-light/png/ff.64.png b/app/ui/style/olive-light/png/ff.64.png index 159abd00f38d3f037cc4ee1c04b36c6ccddd5301..fd7947ed16e404aef181c7b8fa31f931b09ce606 100644 GIT binary patch delta 770 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 IdrwB`KPOQy82|tP delta 1171 zcmey!b%1Na-ugUG7srr_IdAXo&yxw2X#4nF`n_0LYl>8kgvBuptHy*yV;B}Jv1$tCCgLPOTX=JadD&;C@`f9?6} z`Cd5vsS=|g44j;ATANs1y}Q1s=+m;9d*98e7Obd0cQ`ia{>quQZ2O|(mxLuhF2?mL#3OrOWRU7N*jAlF}hHm82)r<_e#pq%0F^x0RnyNu z52$3r8ogufd`t|k7ec}xJG%qzTCw`{$AyO(90X&QzW%uIF_2;7-SJV;0cgxTv8);n zkTLZwGV)Ap^+5N0`5|Dzpkdx5ajcz#so|4SM`}%n3WJ7v(~M*79ZU^>lsj^3I&>IL z0971s=U{I5qtsDa(_zAJ0;uA6dk1sF7v+xHnhqNV5A!CGW9=+V4PTTzQfoX^7(CRQ zrW|W;VQToH?2%jJp~KJtRB^nWg}LE}l1FKchY3S{2T;lJ_7>)b4}weV>{R3!TDle5 zKPomeEcne)Bq?vi$*`+iVfjbJ#S9GFwrw+8wdxk@wwl`hpEdtJef;?G{Jwp4*Ju54 zo_KM$%rm}%CqJuGlvgt_EW7+t|MSm3cQ2GLQQFO*u-|^EU8-cmmE{av=%^l3h&m!t z2Al1j?q4utz0gqn?)U}sExwE<0ijo~FU-%F&9vhE!&|p*JzvEUi;Z_%%k?i`$p6uiG3MYIyLmop_gnWJ7H9qNzf5iN$@GQ&A6AP0YKX9W zE+-=^TPyU7@4m-cLu#6=G5PyO3jKXDH8 zkIgT+ch*0OSGmn_=1t+@@J;pqkL>r@#%S^Uoq5H#gC$mH{|WzBy2)lB!?&M7F81r3 znZ04*;r5Ff{Qq>PeErX6ms?z1ycd`+EuQDuKAz~lH}3u4!-o&YTifa=MY0!Urdr7C zGn{`u-gxuv1H#YmoH?`a<=3kDeQt~QJIQM(!N8;I_aD#Y*N%Jj(}afs2s~Z=T-G@y GGywp`I0M-L diff --git a/app/ui/style/olive-light/png/filter.16.png b/app/ui/style/olive-light/png/filter.16.png index b218a494f026a8e0f94c4e8cb60b8de64c1833d1..c006d6eef30f320fcbca467b36a9894725d3d65a 100644 GIT binary patch delta 212 zcmV;_04x8M1BnBWy??h!L_t(Ijn$DW4gxV0MbG0A)Fez7fS46va9Fm%K1k3=)__5w z5hQp7tf6!?Y81%9bjSocKTurN_c^Cc3O_~wk|db}vySZ1Ik)ZmVwmUowA0NZ7XSsw zvg~Y(832=(@Wwf}ehIwf)JEdrRZ(ks*d%#}KLmA>5F8W~l1(^{4KVhteVV4r&~7i( z^f{Ey*Q%vDL96_UKt%3e3q-`K>aJ=Y{6>H%iXN&u5|M?q_SXE)FY^RgtvQv~lc*N} O00009N*FFJnN~yEn07|J#W6aa90Yqfc*iMZxH!1J=R*2|`h)$6OV07*qoM6N<$g5}(i7XSbN delta 326 zcmV-M0lEHz1cL;S#(yzR!!Q)a@y{*?h*bs#q`Zj*!7UIHEF1@c#2pw|dIZXhm{3`{ z028uJFJSK|j|EpDY9rfVB0=8d#8Lh~C4+(gKB9e5*Y&9oVz*?FnU~hu`*6M0ik|?u zX6BN8000p+#+U~Hki~0jhM8Aiei9bm`&XsZ4uJiVaUsOqT7NqOz+V6W*g5xDRn<0t zgF^8;W6ULhCfu8JAM)NWN+3St7w!03KncXA_(s4_BKqRJfPhd+O#vKc#^>FCo&*2@ z=iE~cA|@UM$U(%$qX8+1lz0*#29X*EI)_o@NFusn=A-V0wRSHh4&`NAM2?U1rD)gb0C#S; zOVCyxGzkD}610{FjRL^91nuQPvj8wA!AN;9AON&WFi2J&3<&^j5{#Ayg92b{3C7FA ziknj1G@H#Ev)SwgaJTB2BuVzW-LCQ)OD9$Yz=edbRi7`4V$WorbCkEjCb02oZh|!d zz7ms)0vdk_0$c}hO%UKZfNO#P*8yDPtAMesLB0xjZ)=cu0)!CV#bR+{Yo2cc&ZLwN zhQr|xTLXO(Fc(4`7De&R=1?yL2q9z?MNjfP|6+T#RRKbXa>drkU@-V-Gs`))-+*_D zwGVloKewFY0;>YjG(7@d2_eeAZ^O$*qwxs%7ylfg5(oqW{__U`8&i_IH;a-00000< KMNUMnLSTY!W*Z^^ delta 636 zcmV-?0)zdx2CfE>y?2!J@H~_BOjij9!@G?n~qjtN!THm~qcYh*^qKCk3V9#teE9?O` zX0zF~`Fwu1zF8|cbjxfe`-sRv-g=P$WiX2qlv25mdy#+_2D3OpM4soZ=L(49_z`ew zG?86S>-G9^-bU`1;AArSk*4Xp<#M?XBu1kdMk#d`MbX`ExBESBKUV<2cs%}@rs?}C zOSmY1*z5Ja6@Oh*C;+N0p-g%BivXymgtFzKgaD|PgiXprNdZs|37eLO4FrJS61FK1 z8wvnFC2U(Bwh#b*N!X=4Y$*Wzkg#ic*g*iem7t?M>?i=-NYGUtGzb8@5_FaaO#;A< z1l{F9qW~}~!9;n`EC9?%FjXE52mrkjOqK^j0zi)h(|_f`pa9rSf{pS}@WY61n$2dk zSS+3ZH_M)h<9NT*>Eyn~(uoxTa4F$q+3T|`OHJnaL(yw-?b!G4sR;wKj27^yFhx#HwDWx9t`~45L2iq2KUa)>L z91h=FO>%*40k750000u4{2m1z)B#|_kf2m1CK~#90?b^X=6JZpF;d4wZI17<%3TmLCu@G`Ebt&D~ z%kV~|+tLbdaxXSPElienAp~*KAcW&4VibjcLMM~X_de@?k`LxhvdEYL0000000000 z000000Dva&vKI`8!@Z&?PR#7s-H#&TQ3bm;=I*y<_R-8nS(d%Kf4aK*QTL`@Rw{sA zueWbzXAv=|XwRK;_en&&o=&G<>fW-e9;6-|4u^Yok8Zx1*=p-Wx7&SM_m*9i96(VN zC->>*uj#g0t#cyyx8wlK?6|TO)gyxcNDjc=UsO3{3%c!g`=a0PKd*bpE=dj`BC;xn zY(qpmTP~O9MDSagf1iLxAc8;11z<)5>m&m(BZ6OK127{3Gw}e-h(JC7GwlcnU_~_o z0$8IM0Rj9)ErR5~gAWc4uB#k^&A9t*M0|4hQI=(wWuJc_fCh2*iJ6_|d47|64L<=5 zviiIJZ1wC$5&~$Lh#1W0^H-_o380x?rXD1KW;#keNB|8~1LoNclaT^blaK;Oe_V0^ z?mn+_2=3JP)Pul>|xoV zxI6AXclQtO{(^b00000000000002C?S|IwmU4sbA&k;uumf=k2Y7S;B!5Z4dw3E3&dHF+AZdmb;hZE2c)r`t1t`{gCQmLyqjy=OZ-H+CJGIm74D&wJ^$X+IL; zj2e&dFrWaF#_+ug=RfaVq`{ZmqkrbjfirSz>#x=CG~LW^c+7M8rIR^1RG~oFr>LC$T!R^V`15_ zM2eB|&SD8h#y^g_O;6@Gvo{|+s@9&6x;^ciVT-}ZO>g$R`Y+G1Ao7`F%i^O+g;T2- z*Egg|PEW0z^!#VsD^`{ZHjih|o*lljopV9soxiECBAGH2%I!UDy%~5zp6-{P9M4oS zIgd%He#aArJAZ!zO|HH3H~Q7hCk#nF^TTF0?>Z`>A9P-gUBGF^8Z-9NZbLQu)lV2U z=~$a@{^`{nu)K2nZCiiaH=*xrWca?H-ehCAx$tS^io-T71zRF?)&=Qjgzo(P^=ql2 zRPQ}e*N;c<&foDn**H6VUgy@xI?HC%2E~$MrUugRk=xPQ} LS3j3^P6D=qX_m>R^vS;Y&lTlqOC{bARO`*83D0u&jln{vaZ?s-6M3 zjC(%DcnTrBN&(y-RP~TK4ghskRafWSZZZIX^)DAyb<4~*5!p`#7}G{oFC~aoA)rUx zo2JSAJ`mALv29xql>dP-x$k?!QUGA^-j)KS3}65Q7{CAq7y>?j+)Y~vKtxXfe(q%= hdNcE5?j6g@t^*tGD&B|^*zo`W002ovPDHLkV1o2>VD10_ delta 241 zcmV)p diff --git a/app/ui/style/olive-light/png/folder.64.png b/app/ui/style/olive-light/png/folder.64.png index 844134c0d5c3f4808deaf9f51b2633886da60115..e4ee01c4d352063503c8f726dae3a83243f1f562 100644 GIT binary patch delta 360 zcmV-u0hj)^1hNE>BoYa5NLh0L01m?d01m?e$8V@)kw%AqU`a$lRCt{2)-g`QKoo@G zc_2iTbSsf2O$wKErbS!GT*5X|= z05?@tT`v}Yi+!HwpDn)o*Ur4d7~?~Scixp{xlNMfvco%m%ng9{KKmxObzQ#>AwpAt zJ`5rPGXOAv2SE0K^FH|A6Ik`PTQ44rOMx3n8ozheP%K;ZVMSF3n?%tD-2L zyoX~5004+FK6>Y)2>{^AI~-F0mjbW{uqgn00Gk4n%KPV)nb|gkuwf4o5fKrQA^8FZI!PKP=wFQh0000l9hSH90H(o)##I_nQvfIfiXuSj_ofnXgif)X- z%Ek-u^?efQX2Qh^$lKI?S@{qU*ZHVHj=!Y$v*_22ey%bgHV#PV~+{ zJ9iz1VfX~#0AMrWT^j&9YwdL$$1hE6(|k<$?q53_IluFG=S|=Dd77q|9`E?Eu>ezj z_D(?%?5(xWONcNQz`LbHpalSy5rG;2;76bb0JssH{{xaFd7XQRM>T-L7;`Mk^8Ne6 zMSKCCZ2=tGwta9tTtk2__pZY=1-Nn@t|@?%ld%ClK-*Y=de#;5cyk?&1t>fYVR8N@ wX8>c&5kQXr@g>v%a%0SiJw!xAL`0V46N+v_0#B?@4*&oF07*qoM6N<$f~5JELjV8( diff --git a/app/ui/style/olive-light/png/hand.128.png b/app/ui/style/olive-light/png/hand.128.png index c335540dd27b559844344bf0e8b37416eb04f6b2..07e93824516516b75991c1fc3c5fdeaccd805cce 100644 GIT binary patch delta 4174 zcmbuC`9IX(7sua2gUB-WkY!A2kdVqg()7V3YEVpsheCl9S&L?n-NYwjsX>zMJKw+Idw;vl3?xua%IBk*pFhNtijPbFEaY2-HYZ1xb{ z;GZuKYlGGh>Euq4Y8nSvPta~~K?kUf@=r(WwFm$#EoxYAX9w?E_iRYDf(Qnfn3(9k zUBlx4O?Um6WdN5nSQ+)L*`+a~%J!GUGp!W7n8&F)kUGQoGd^0|+Qh(|o^MU_*f=}? zGcTTOWezOZLxW5-T0g&$H|QGwi|~5v63hjxrL_xKgr}IlrPA7?JUpg1^&0j1;w3C} za<5dx*_gn8PYYOd4c=V0eAY9=tc>aGvkJeL9^8{#h1~{gt|2}I}R3U zhuml+4dPm{_*e}_^7%A+jh@DOc^Zv5WV~(xw(r&O|L`8^TBP0*yk}-+R+WwIsJ(Tb zP@y+33w*7bkRyAY%I|Herj3Hcs1&{V7j^B4LNw;SthZbah~p#+2naMj+<2*s`*q9$ z8R|()yvF$e1v0-@)0#32K1InT(RWUD9f*|;es&8AO!wl>USP)!{|>6CW2ONSx|$XL zNY;bC=vhY@oC|PTXO3!drhimDMo)RK9 z#lYGwYv$Z|fKojC@T!c($9uXZ1N%pa_JFe{;YXAs{#eOPk%V}WX~@7@+!<5Toxd)3 zp4gVk;0mJAklzMGkg9g)6`Vk2{+V&r*`&0$w->0bI|7e%{1N-(^1;6D?o-uO6bFdX zEQx-Q7gQH*+2|J&_Rx$&EogR0a_8(hl-hGZGM==aL>EUzn8{egOOWm73C*v3Z(LO2 zm(#e8W*@HE2!p8+z0mAC4@PFtTpTc9*Jcl`s~b562lu^eViU_FiqD3|z9O00aSf=$ zUn<+87PE_si)RN1FCVl9`D736rOfof8xq;)$g2Be$?%5uvEBURRCB#u>vz%m=YXsbb8PTcGLBQ4dUWVi4bK4V z1(bm;K63nvCN~#DHHi$b8pR*(g!T?U#ldSNN&oRX$8sukuknK0wzer5W;W2(kG`<#$$Bp2`E$W2($Q z1z*Y#e@7cKD9kYv-AE7iFzs>W04_QgyXXj9G!MetnK?RV4)eb@zOs4wiM6Bn;39hB ze1h6CMAFX8jHn}5U_D!wJ8~dGjY0 zznluku2q7=5+SyU@9!3cizNJ01}ICAD>QRHwns84`t~n`RdajXwBZ~Gn&J&6l3WF* z^)sWnTRUZWw*GtQu~P<*?jIQBRhOrF^H#xTfRQ$wU`V_OaV=nY|B@9>IA*;UHq{=R z-uAOgakYCi?4ydI1+crj>)#r_+W!4MYpx4*1Z2Zu&6PDZ{_f@_U<-NqSU&$O5dCXu zi;pONnvsi?<$qJkFh@Mhp9&G3zIYC5y+UJ7@_Uqlx{@}v5@aW!Utmx%y$X3(_XLsG zyoyOm4n29^o$_m5zkL__BMin@_M_40$3|(v4WyVuYMF8s2D$lW7Jc^>AWOx0d2c`` zB(3T(jB&-QcMeb%9JJvgYz0VmdASwHdR+&gf~Aj$^c_^`5cYy|5gOvC71c;d#w%cb z+ppiDpw||nWL6~uc=bNpGC;svd8q~rIOB7VQ|$;!3$`$$PbirxW!c_>)~mia0RGv$ z5M~1-|Ezqbk%L|3i(sz3^#w1KyCFlLVi#?JV~0$K`-3W_?ycj*As^U>H+s+J>$%98d|80u562eu4ayJkdt5B)&lne-hI;ji zf8?^C;_O#p_xHz zd_eSb#Whzar;l_xeezpRuKOkKSx?;Bwe=kucCq}2`Lq8d&>DRnVDt7A#aR4G@Tp0G^Nn9q&1&

y?I%=n&o;W@H%os9sUvb)xD<+XR_N= z=nzMonVC78jV*!xu%yGatS5m|3GY08ly&U^UCyEopv+)Bo9s0@hkov;5EvM^FG<|C zl=Wlb++Su3uUY5oTV-Rb_-t=bnvvn)jqUx($b}In;YvDPob=d={&f;w(3WOf2D zW+~0c>P@6;05`JR5u)99WwUk^h&YkZmC@IJL*T$$iO9!wJQVZI!Ir2so29goiZI-- z%&`!+_ofo$^zAIdtEbs5+okxsh7LU9v$eH#J?NpDV#atoXZXD(-pI1yK3fLj!%xM2 zFAaHJ|LvgC;lrcPvj2dG7D+PY9N~EZ#=vzvex3l|Ithp=1a%i2Z*bI1HA!3ZMexfN z@(po>+bOkLLh0DW5I{v#H~Kn0)}E$VpZ?Cu$||*^RyCQ?20eEhbbEhWK})DSi+vWR zJ1tA@IGNkybawO1BFxs66$>xyYq#g#d5|vS4D(|Lltb?`!9PLNVH)svTA}r0US$o} z%t@-j*=tYs#dBH|8%CEnK))3!^*O@+GUkN(Ruai^R~!MWp-GafAj5~YGhZV*8t=|^ zkzF`RwuxyV-xARVrpt6p(EWc&}l^>`s5j@%nt3`p0li>s~3gdS@9xaTG+R;>A*-B1+Qg5 z>XO*qHc`MNqz+YTd$BBg@hT=3`cB61_knucjxQD43~~CWjdq*Sr??ffrw^Qc`fGUp zT*hlSH;MKONga-lydw>x(pH=>ZhzN^N}Zr|4N%t8b1>gj=0AsB6b68#&RHWkcL?{L z!xxdxUV}G$!fhLC1dGw6nPcEl9OnySfd6tZa#K43^L+I&hPq!+CC^jVhDastD8K7L^f1R@Fu#xXP{vUNYH7chV*Ch^?~rnw%5*B6t?4P*k`6c!8ykD1 zcwtvmLp+ysz+HkL&MhDvN~9O&+xk3Oh$IWS?VLCy7Yjf1%8=Rla}I>hqiQ@^x1I@yqhWD<~BA4awFS-)5`frJ|u&I^P-!u5_)s?6C=;1?5{cD&N zRTRCkzFx!|lq}IYmh{^$Rp&q7N}{ zD@@!5(p%oq(c!;3*;e6vfhl2YXd delta 4136 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 j(#N{4KlJDNswJ zv{dYmkW!4!Of9JuH8aKNGVk;JI_wM#>u&Dqt`PLSywCglJkf!O;N~JP&!vMp> z!%s-s1FQg$wHV{xnUHn?!@XR0=@npitycSRuDZ4m^U=}KwUYKo8UPLehkCgX z!cli`xqH*ykM%7(034FE0(hlVDy^BTcDfLN5W>TMzzTOi7-QTIU}gZ@%`CJa^wwEEabF4jj(1?5(M(smlumSPG5y zjZ0~oZUCOTnE=1I`HxTVXRbQey${3~E5Occ#oYabyJu;dew}3*vy}o2 z4GrCq%jKSzGzmm^{|5LtP18>+l}hV+A-lQ)9GlA=AT5{61MPPE9d|FgdoMl-OlDcu z85tS*0vPDaEveFWyFKCVWl7aer?XE|Ftf6MnQa0#y8E_eaqa;CYXL$CC(Wz{Gv6(Q zZ~|BftT(gGzF5%(esTlO$O!>9o7Y8#KQg zcvh0d7ui{`vK+! z0BAHCm-6}iL0|${mn6v+Nq@x{|5yabO5kxx&j7bcI$SIkU#!(?5f*qg>mF9G16u(k z1>oBd!r3%Uf9iBPze{Sn`*bds8werX&P@ zJPABP_l|fiNs7Rc7~{Try?*wp{9*ul8XFs1H9b8&F6rLxK{f;wfWhvs`y23sq?2ZL g;M}=$zs^_dAN^vbMM+GnrT_o{07*qoM6N<$g3Wc`$p8QV delta 1038 zcmV+p1o8We38x8=Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L00&|K00&|LIC`1ekv4~a z#Ysd#R9J=WmrZO`RTRg6=e~J^m|{C6P1LcOsg*QwL}VdVDpFF6dpB;}7&eB5CM-0O zL>Dehi~)7&0yoOSohE8xRWJ$)1V2cGXi8>Aixf5brnQA;=AFNb&cvo4&{EpO#Q)~L zd+)jD{POPSF;<{rvDg7TCut{uq@y8!gjXt+O0rZRww!?ZeEyC&jt8366ToYd?wMnD z#?1Bs{Q&iP{n&*I7e-eMP$(2016~5wHJj8NUrE#SKoms=>;nq3`T(w&+5SqU^4>yz zqooAz?d|P$_d`Gy7&fyqa3^4rJ}|R$z_g@wX12LGtYx$Pr)@pF~i)IVY;6iqi z_7sc7J%kF&ee6F z1MWTo?7dc-q?14+lgWJ3Xf&9s3_w1g-x$a7vyz6)%zI!gt zq2K_SQmK@koSZx)snjF}7y^ds^?JQfD16DxEx0PmOifJ_17CxP|A-64d2N%w{jD(=3hv+Du~A^ha-nAt8#Ujcv3 z>c0$}cK6dw$Qv3QAe77HW0JlAx}qq00l4jkN0~1JFf$K;yZc_?h`Z;^?8Okmrd0;G zxe4%h1Ta26-l)}TALep@xm$rPW;P&c6u7t=(L)GBKwi>2vmd2OlH}7|E{CKC&8#07 z2g)}xc$%hh2;oUH3vnF3JnvPUB*}@+&dxDl5ZG#FSxILXd;cw0Q55X}?gzdum&9UUFRz@V9JGPCU=gb8>5a~UA(fk#6K zPXTSfk)EEO=PQ+p!xB@od_KQ1ilSG|YzIK|xc<)F&zafJ?*50FO-Y)L<2ak9=`BDW zxDR*$xQUs3;LU1bwR!+ZTfUdIvWmsxAn>@Phxs>0ysFI1B^?D0R;$%>^ZJ(q&{AJt z--hYw=>bWb&8#FT59EM$VBE}p2Yz(-Q*j)BeE$6T-xl-r51<*l7br$=DgXcg07*qo IM6N<$f;15PWdHyG diff --git a/app/ui/style/olive-light/png/hand.64.png b/app/ui/style/olive-light/png/hand.64.png index 0b05bd699778f9fa6e4ea213f24ebbdbbc56655e..384a9ef7c1bfd94be8a9731c5f6f06c3bd9051a5 100644 GIT binary patch delta 2065 zcmV+s2=4cw5uy>0BoYa5NLh0L01m?d01m?e$8V@)kw%Aq&`Cr=RCt{2n_X-iR~5(q z|2yM2&E~_KrlFycyBvZ({P3 zEcu>$=G-%XXYb6MxpOX2XWH7@mOJNm0_XtHQV?eV9BF81`0c4vr{0fqe8y>fCQ_-? z7fAj{(ru;sNe%;eBArhEAub=hxD3xkOH0dEl1~F@m`1IE;QX&ZolEv4)MIGD*~a@XT$ECC3DV3VY$ z04ypwC@Dz{wTC6`mvpSqUJc+I2n8s5OoTy6-_2&TuU6`7%`br<2sQ!Ohv|Ra2`A#5 zdq&b*02}}(>8zx8Nq%aoV_Y- zG(l&ww}j*l0KX{P=W-Rxp>Tr=xA$9Xk4hSmG~%3l4Zv@zus@?cNgJm)yd*UZ0Inr6 z008IQn^6Tx|F~Y`W!h_r>P$y1F9AwgFy0`4<(wOhDmmvyOHA#VjhAVUO49fqHW*0QGjD-rNenY!6sip&2N)B@I-gS1t9L z0lxz9e&O%e)#z0lsJg5NIOneI|1yHv@4ZLod@to0EaV~%p38#8V^2y0IXcO z@-6^R&UEr6SPo!2fbBsL{5L#nZWeq1XlQ8I6)saDIqaM}AnBMfCQtGs&bhV5mL^wEP!qR-Nu*~ z0Hh?XDO7bx(z9_nT}ylbkaPyXilWf-ybY3GD%VIM7^eZ8mh^nhy^N9KyTEf{A;~Y2 ze7Mq5mzxm-0EtB6Fo6DW2g$9z@9#9m)UB3qHZTCt)zvlPock8Z3AJ{Ak~&E40nk_% z?`nt_smhRa6$rf!_x1I4k^Cyja}mXllYHDcH{mXSvtg}`{)m@=$a+9;Z|^DR+%}Be z-Nzvr_`d&rl6S=GW_%c97KGa*CkFrkvf1przVCk-!0VB&<;IvF8e`hxb2C0j-Wd_~ z0aL69_4M=%B@&5UBoBvw<%Kl(abwJV@wgcu&bj7@=maoLsqDbOfX(G{FDH}9MF3WZ zx;&B(k{l@H4>twIm>mF?ghU5&xm?dok2vLWxxXfp$;%`^gKPD=1hA%1iqcb9m%EW! zLGqDM`)VSQcyeH1V5F>Pd@h&!XH!#CH-L?pxQOymV@#6d+mdd7*o6_#^B%!iiG7hH z-QC?U0u`(ZXEK>ijFqroigZ0ha*yx(W!3)AHlF9L0Ps*)CTTqLtti#aWHLtqd7Im*H&mS5Zy0moZ(nFFy0pPAsSAyg^09^nEug~@Bkwjz6HjI_a zjzjYKbUJ+?EW7R(or@PQUR}0q*&#`70NO)c^GL3j)DPg?6o<#jeBbwX1K1FepBf$> ze(dt)%M;c)s(RDAaN&Z@<#L_LWO6Yk=L(-T#xzOF0{EbRnsLg-^SpaWejC6&k*@RB z+U;l0p1m;Xm>P^*%oVPXT#t!+ds4=jO~#leW6Y3qZYYkN!SlSp7_&>#mjEOp-Tjhw z_Vx9ZOxkL?Ypk`k_4AVUhW8Cj7;G$ie4XUm*4hlJm>DGRkaR!E^(2ESbl&tlZ%vIdNhd>2!K@(iXhwn6=H*9UUEhI-Pz1KnKY+ z06vE5KF@yu;BNpr8yg#6J$dqEG(|6qy6qlMrBd@Hts;3h$#zN282i@vApnge7Zs|$ vhe!@dx=6CyId>eu32W`~{{H^qYW?^hTE}c_Zb3gf00000NkvXXu0mjfv5wn` delta 2063 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 R78?Kn002ovPDHLkV1h*dT%rH~ delta 690 zcmaFQ{*!%z3NK5slV=DA5Y%v_bWBv7Q!no6;uumf=k4A7d6xqu+CIMDtg7;eXX>TS zv<+4ZylzS^5I=AzV#ZGPFqLUVvN{2sIUU>y3xs5i${1A2S4QkA>F8>CDl=_O-~S_P zXYVSO-A`E+=DY57|QwaF)&f7blFb~nCNV9~PWd%WN6GuS*?#k24H`SbtRevZ7oZ+95O zY5PO$#?_mS{rpv6Cc_uMz1JbJJm&djw&sJ@#?|}Yt*kOQ_qpczuV25SXSa)%h1W4J z$*f99i+}g~dc0)0{vwU4iK#c&tDRr@W}VFT2%We*$5-+P&*-!Wh`SbE`C>Ws?o{T* z8dbN>POK`u@r7~f-BPalD+e8`p1#X9^LVq4N1?^w#WRb)oQf*C^CsTdyK#Tv3%1Gp zOm>s`m_+MiQW@UW6^pa)^nGWS|FP%DJFEK)^;Q<%>zz2jx=>r*GHw z9eQ_6-0jW#_x5r7n!jDR`~BT%Zqd7c)mjQN)0P*?)aQNPy1(mH9ypqS#D<$YZ1*h7 zy?gfUL(y%u=G)uXFW4~q_Tlh=8$c1&kh0?H3eKr_@5seDr2-|VPX-A;J@4`6-i`Yf zCCv;+1RExYFbDYDK74xqM6jF+x|V>OKrPxDZ=QYoASwcq^j)=^5oG;=Z$J1;i<#Ei Sv1R@M@jYGrT-G@yGywokBw&01 diff --git a/app/ui/style/olive-light/png/iconview.16.png b/app/ui/style/olive-light/png/iconview.16.png index a8b0fc3d054bfb58b0cd85fc387c536e71ad86f6..21aed4bf7d33388c490fc2071b36efcdd1037d60 100644 GIT binary patch delta 264 zcmV+j0r&pE1E&L!BoYa5NLh0L00Xc900XcAC&Uk}kw%Aq)k#D_R5*>zlEH1lKoCX$ zpItYAl>%&2L2^h9C<<44;VAc&@5AHO7lw^WBhH~_8S1|y8dwYmrGt0#r{zQ-m^Ze_v~O}W>>3{q^4;Wk|=3w zW@Et~!29VAa(kw`m$%$VDj!AoS3QXU$z6sWLI@qnpWK}Q_?r4T0N@Y7j8MJ=FRttW O0000zl0iCZNVd z6e*kjmF;KGpV2q4um}K6(>zPMn*eeMAw0S}CG91xGJfc~ZWjR{e>|R5W_B~KS2O$` z0E(p%u0(+3FvFBm8j7O$0-zj{JOV&;95+wyetUi)#`xLy{W}1(ZM#h=tuy|1DFXkp z?(Y0?AZbr>GAc7uUDunkENNyhBqxHB1^^G=0>9=AfHB6(-DllMsxC$NS6zt!$wLlE n9zzHpB)hqPLh^NKa{#~zr?y$Fq)l_L00000NkvXXu0mjf#Uply diff --git a/app/ui/style/olive-light/png/iconview.32.png b/app/ui/style/olive-light/png/iconview.32.png index 47b44e1d11842c85083238f1f784d83a63577b13..5031fd319cb0337a3c666d9a58d6b635bd2e8aaa 100644 GIT binary patch delta 438 zcmV;n0ZIP#1k(hNBoYa5NLh0L00&_J00&_KmBYBUkw%Aqfk{L`R9J=WmN8BPF%U)n zw@DB#X@JI|NJUOS0fRc1fNAScx!Gk^^JR$#6J)1AunBz37}f7m+T2##}-2Sw#9t zlH3A-@*7HjsnZhT0MHPTgEUQhzTlkeiO7CT8~{XQmE>um8*Y>k4;!t02dm~C{E4Uy z)COt;p@C^d_H9O9i7gC}98_rVE+Th+k!9IENmmvoc~j&*>2x~H{CQoE@UK~x4MwBU zQ&_atZfLE$0G1+rVvM=+bEJ;q3i6S9C?d;q0n#~t=N`u6@ncxG)^@bknxqR{$PFJWz^GBzcVzpBj=A g5$RVMG5ojV1O8B?{-v^96#xJL07*qoM6N<$f&nSWb^rhX delta 472 zcmV;}0Vn>`1oZ@vBq9WJLP=Bz2nYy#2xN!=000SaNLh0L00&|K00&|LIC`1ekv4~a zlSxEDR9J=WmcLHIP!xxM=b#V?U0lTF;?T)HfrA=xz)9kJI61T7%%d3DSTO3~8=xz& zz~oXAlU{p|3%9wN&_9bYvA^l`v|rEH+_bmAe-GKB)oPsqxCOA6!Ds;EMx${vnM@)8 z@O{6gwH^Ry1K7^smqgT?PN$Cmz|M((evaW-54Z@!uxlG}9Crb9atsH6rik?Ifh*9= z0ViSReOrr2Ar?Twa@tkDky4-(CrvR>j?{7gnbMiVOQeoy3N9b5YQlI=s&J)&Y=J}a$Q{7PKNiyqCeF;l}QlJ!A z76FYh3tJOWAr?TwCIUp%%PFBN0gOD)8`?&_UcU!0LcX7x#d=m50KgZ6(u4BeU0lQf O0000^UD8Mn$eTo_yfk6 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 diff --git a/app/ui/style/olive-light/png/imagesource.32.png b/app/ui/style/olive-light/png/imagesource.32.png index 79e8648913da2fa4aa67794dae09a16fceae2dd4..2c65d46e27bbd27d72e36472f7d9f1532ed92151 100644 GIT binary patch delta 609 zcmV-n0-pVc2K@z)BoYa5NLh0L00&_J00&_KmBYBUkw%AqD@jB_R9J=Wm(PmRP!z_$ zuStihqZF$!mP>QfhEd4MoqrJPMnR+_cHvq^eF7iDH;{2L3-=-}23`09U5hw24Y=&G zDbglAZel6zBynt;Zv1w+_n!Oxa_-^e2H3C&0Jd$v0`Njaj9g5~2*4Z9^IjJKKt%TQ zGLQWX5!nZSfI>W0%*%X6MF248M|-`Vvrbp7_3`X;A!%V=`VX*B1IwshukVV;T@l$P zc`PEIdcEGSTmY)o>ZQqK@)&VeMZ_fu03XugR(1rXQpuj*PedA7aVrCeqG&KbMl#5X zOFaUmlw%mi1Co)59QnTQC9U;+|C?>wKSe~v<`Kz%FIfPI8PHnq7>2P&@;rbtfG0|+ ziz$0eJkNV4BJZOp`aBwq-gdj)?^ysRX25mb?ZIHsCOK`5CrY`&F8gKtJQ9v#^BTdp69gyTuBTl6mDCVl{mjN0Lk5~7?OLg>u#+A z;9nbmQ8@^LdjO7R2jkkg55Ok*qf)7S>~uQgw2hYO1J{*O(@(e7S`UZAXC!yy;=R`I z_a9|#vQ#57P4l7SI2W|mO#n|t$!7l3NDdTBPBJw{Yj5phWZz=yQFm3@LzsZ^goPehto zc`E}5!*DboBk5=5rG5gXlw%migJ^UfYOTGby;|#U^?LoMh^WXsB>5!^Ah7~}wr%ei zhOtZXJb*HQCrYV{DQC?*&wD2#@53(5)%rA+m>Y|t}hKh zvXzxXa@Td;tyKX0>mVxozJCvYz+pTX_0D|&b&@|SmCDCnuQyFQXqh>1T`6_)>$Yv% z9*@V*NVcNpy*3;UA7ve~)F3iV^P%H77i`;Z19&PT=i=)muUeLMYi$4k&Q7P(mjG@c zx?j$VLUh0&~Y5+@>&4?MkKd_Am}Qk&TIrAQaPGFq#FYOfcmBZ z7PN7Ig$@>x=XnAgS0HsKQF&j{RZY?pT+hpYT5t*002ovPDHLk FV1lR08-4%) diff --git a/app/ui/style/olive-light/png/imagesource.64.png b/app/ui/style/olive-light/png/imagesource.64.png index 1a2dd8c803e7052867033772614ae37aa3f2f189..306170fc0d95f96d5bf47019f7f4c4ec92a1aae2 100644 GIT binary patch delta 1124 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 delta 1681 zcmaKsYgEz+8pi*EVBswb&AcRx&3XyTp$rkf323|;yij13;(d30oW{IKZ zV5!W2TN;g}Vw$O$6f=1llkqZ*>m?0FTeQr?L?=;lnR9kO?1!DN?{j|d^S&RRr`M+4 zrbNMGl7k76=Oy!!fv;jfWY3csEqYXJM!ZSdTSDC>W1IhwYsnsxIomnc4of57Jo%fs z%ps=DF1GC+4H*+%2hPQp6j>4me<^lnd*P2vHhV}}(&pDHm+fMDT8hWgv?606`}Z8w zcm6mv{&&ujv44W>cLQ^!3KJ?QnKKi4@rtKEQ{|KhDwDPOK-zb@5IOXNtJ1c+;`wqG zC+WS9(LDf;DeuDvoSZl>6vQPbmtKb3vCVRh`#PxWBeBk@%r8nUq56{_XMjqiXuUBK zt0=SB_T|H!sLhB=Kkfkr5TX5(k2%>bV`+YyS+|3<+fXJ);PKJjE3LVL{oTBZnJ6k1 z7y8DlXtqj5XnnyU8?;aWf0VsndhwTba%m>iF|qOtW}}ceAN*5?8Sv?BXoWzM>P^yG zD^;-kaT0Z${7ohlQ+gA=$>o#7ni?}mi1n6zEWVNgH7|BTo%$8HQ2qZU-k)gyD@}Rl zb)L>~!{Z?P0LD&bo!+W)$b1l0g{L4n$Lgcf$ybCKY=aER!sZ0Lay-nC0hj|=JO|As~>Y}K+S%` zg6g*{0M&ujxf}ix=X;(BYKS~NT|(ufuVHm)(=3vYUH~=6^z;teYzOti(V_Ik+YsN( zdWhQO1;V1=N5Kx7_VvN~>GmHSjSdS~rKlXM`^1Ds@zHajCc}irjn+{w44BXsi0^R| zTCJX9!=js_V8;dAFfWI_Ux6i;W?Rq4o0Zi?5_nNn>ZT;vwZ4CeqiWeTFXj*0G6ML2 z-<&FkwlNC>=@?`$!F4Y)Uw}gUvE@RI!1%ePocRtq9+u-{A>vYAa z1w-4&E&Z$}_nYdCLor{T742F45#V)K+@Fq{yNmFe)QMjOdKcKjqy3PG@4FSFBzsRg zqhh8*qKQuYZ5-&MAYFGR1)SPqbC)5SwYZl$fw^Myv~hEcBg0i0n5bHexYNAvnV)9E z9fXnJEswAs)XE}Kha59pl!0mTA`FNA!_v~yFomm>g_Z9lpOo}|v34KAb33G!>bVc) z{9wD9+=6O#z?mcfrNI6)-qZ0^bO3s5QI5Lke2`dr01DiRB)qFqi^8BlFGz^1R*UFR zPYNuvm>YJ|8t{yOJuKpe$*qCHcv$9DZrD3(|8V=fEyl75XTY%*amLM9hO!!*hI+L7 zcTV^3;?K64C-Oh%RiDmavEFR516#7J>|!e_D-UiB($jPI0QXj3(_MOms&yNFJg`2w zW)O?7cAZ{NctA5goxj!;EVn30PEEaItr5N)iLI-z@3nnZabxS@*MHJJDN|AxuWDev%O2TQ;^Qk>DPz$u$K5uA6%6gwBLZyM9dp;``+kQOclV9?!?6j9?1z zI$y7meA4c}re#L!mDQ2**heb^6B85SbB~PP_yI_poAT`VF>FDTjfR@2DoAMju=4EL kvv|2h1d>EScDa3o9gxjpqd%-B00062$fWRKc@QJ_--JFBh5!Hn diff --git a/app/ui/style/olive-light/png/import.16.png b/app/ui/style/olive-light/png/import.16.png index 0cdf12fe000eccee7855f8b8062c9df6cacd8754..cf5d86b2d9797e1eb1b583e3e93baf3bce32894a 100644 GIT binary patch delta 375 zcmV--0f_#j1giv)y?fS~G20Naars>`4jFX&e`SgHPPK+Q!IMSsTt4gf$zc3VWEm#TeE zlH|U|TbC#z>i}B9#;nFant1C7#+Yj&N|z+g%d#AF8svHY?VRfok(*Z%kyA=tOsCVY zCeCpjZyI9`t98lD57yc{04H-Ew@RsZt@SCYXJzImw$>g2IIBp7F=k|px%7R1PegPb zt|*GDAP6=9oNxnJ0|0Anz#>8bkfv$e+%62mo>J>$>g<**J%I%Ns`6$p63l`vzf1y^8O-r&RJ$2{s6O4 Ver&cj@3H^@002ovPDHLkV1j*Dt84%O delta 368 zcmV-$0gwKx1f&Fzy?;_kL_t(Ijir-6N<%>q#(%TBiC0h}Yy#To5iA5Pt-OHZ32ZcX z5X44X8x^s$va+zU5-bE8k>G}qBPhQ2cE{!kFCi}~PBrt*H{Z-63I*vXx8|@7WkF@TR^Hor_3*wa)_!rJ6>4HtpFHfo~!uC3Pn*I18=qCiVU(WJE;{I3|ev O00004ve2J=Vz@JOF5`QQ-0`{84a5(%7yod;R*7AL? zt}zQMP+MTF{nYGw?=MFPAYjFG>to4nu0GRnmKE*RFN|K}xVGZ?)KG*%&$@BqaU-h6*vV z025mo5eS%2)q#}}Q6bUA{{ll61o2%GBsQdMl;%Dbo4Qu+9J}B$^lj(w$9wtS*RQ6XCTWilWA!X&*$y z%i|4XS+)n@(@Dumj)ueG2X8!7-0$}mC{v#^i(k@U;;8&NVWzIstF3Ck# h%sE%>rWou5zX5pW!f{uNs8Rp`002ovPDHLkV1f$y1q}cI diff --git a/app/ui/style/olive-light/png/import.64.png b/app/ui/style/olive-light/png/import.64.png index 61e22247f9d56bcb3c9c3e0955508529d2b5125b..7f0e1eb788e2886652a1c9e3f9c980f3122e672b 100644 GIT binary patch delta 873 zcmV-v1D5>!2bl47 z%w{aT2*dDs(Iz-WE)D=nsa0e@c>tJIO1+lW^Dl)PKt#)?waolTQp+d`Hz29!6KIGD z8AIU){O?o-*cM=$$^hE}Y*QIvTYzmU18fVhO=W;>0k)|Our0tgQ*VILM5xtj-423a zjhR;fG=()~f`5qm0QR)jTL%XRf3nsqlY=%Ijdf;z0ibSDFH9Z4Vh{wb@B3e~78|ty zGe0w_D-y?XR*dSTg;>O>osA42qFs}^g4r`EGBUt*-Ss8zW;r0Zh!7BfQP1QNI*n8p69hq>vL^_ zuIp}EZiQ2&)K;Daj1vIZZH2tikI7{KV6PSOMn6X6KEOgN-_wDE&8dOX2{_a z(e9{0gn#S0n?VpfX6AcBI!8udLh~R2^?H4snO`FPkfRP@@$&L=rr+;h8AM37!ldX+ zXdd1KjRp$i>W+_(_W^t~TyvNm&-1=yId%#Lbpr#K`HtaYV-dJ2i0}Hq)pM1&42~T{ z93CG248!mZ5pmW$f+t@Q>GwTY-7z1mvq z4PqNwYRMmwC;B1sHhKX7JkPTs%VwgB5qy#a}v;JAC~o5Iv5pfVtS6aBZ< zR4{z5!wJYeUAaaK&UIjb#B}8vkZOumF-`mh9Z^@SYgctV00000NkvXXu0mjftM!)b delta 844 zcmV-S1GD^@2>b_-y?-i6L_t(|ob8&yY7y@s-ayc>q{<9Oo5xKGSFy0KgVC&~coHoQcdry8vmP zPl;XQ%w-lPD&W7S5WsccfNhpu08&S& z*=&|aqtOn4ZGQk&-jp&k1aK4t!QRQq$=|HOCCV8ql}a1Ha{#N9cxF}sJP<-uqA2>7 zHJECFr^Gm&Y*T`6(;7gsGgW{?Vw_HnC_y9vgb*Jb$N5Ex)x^2yc^@f(BmpiiE=E$y zHvl9ho*C)7ZoAvD?v1{21=bq>7 zPu)eD91(!SS&axG#IEoAkEE1$ znev=j`hOfbClydGm)ihdVDTo0YDDxpM3Ra~lykcZEe( zeNq!-k~{)L06IYsTziFbSmCu}NPiZnMx)W4^@T7D?@(}ddER4=JwI(;Mw+4-t)S(GXCB77!WpcPTKb$AZHq6kE9hGF=VDZV6e}1leTDG{ zBe50sXMD78vh)>Jo(u&+@D^9w*DyXh@q5NuN&gBz@eh%A@c{q`!_Y=5x9Zs-i9!I| z2}Rgu=>0tx{pUJtEhVV-2JlLF-KuG}D!xh4W|bXRTw3w5yymWh8~ W=Tz-(j`F7f0000Qi5av diff --git a/app/ui/style/olive-light/png/italic.128.png b/app/ui/style/olive-light/png/italic.128.png deleted file mode 100644 index 3a0fa18c6e07c792f14fc2027fe1810f9c59532b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1287 zcma)6X;4#F6uvJKiP$hkBTIw?5)qXeLoEgc0U?Od5>{m^t5~pZ5s)Zo^P&ufMFUvH zDh?uJp_-zm8o&+^S;8tv!2rXO09EUNkU${;)6mQKvw!+#?z!JR=R4>7-rRXF%b(+e zHzAn-0PyVntU$P<%L}&>#s;_8cDNZOd$NOZ@VS7C7sB%@?*6c304AN67jnj-4FX`9 z;vJe2bo#p#UTo4)z~k}g$4(tjJ`&44NHaA(Su1P5iXS$l)e6@4u7J-+b}F;f}Q z6VQB@BFsyDQQ$!gp$~P5Sw_sxeYXg8@;X(qn$od(tMH&@Nd3LsB@b@NqyAsMmcM0e zaBS>7b6wz^vPe7IwdeiFC$~>SX}_N@ca6kb$9yv=jjORunAd6>^6E~<;cd@*B3rLu zf=#jIRwn+ti1(5A6HH{=Gn<~yzG&}1$eM(pNud>_pv~oHHQX~$rOt6IoVMZ zhwUF4x?n1EfgGC*^{dg*QKiD=U4R&rcK@{k_=Qaaw01gj#2~nY0vvx(q`v1tlnL6O!-&0Z%9(j&Sll}aU;6M7Tv(K6la;=t0E4_2-5#8rxY ziX?q!hr1NCn*l$9lY>!Mb@tq~AUEUJ5u(t20T`K|-a4nHPeD6eVu2JjDTga23=;BF zlO~*Mi@_7e6EnpJ95K#mGuq~q-T$E56omB8 z5K0!iRbaumpLHc9|DiezN0Wx2?!n6k;m{Atl;2t<)6EKgf&|KE zm<6GG=rF8t_AisoTVdYSVIc& zEFvG*{Kj3&r_SsdpI$0o%^+PpRnOKt`6dshU1kRASL+xroem2$Oyfg{w6ZeVSbh7Q zlLB4^JTKO2XSziip6U0P+~)CiF!E+M-&gnNv{kQBe}8|Ksmk)#**<}vq0`3~5Eeow zCY@sS+dRC{)_4h4^-w+lZ?qDuM{fUIjkQTEs@arVXP1cMvRNZR&RQzNaC1#0q|R(Y z3*(B@2^ReJEIL~H_#(fUQ|2BnQgecl)YQ}{pib@BVXU?UPsyWqUrRsk0WSHS=_FZB zekZ97LHW4nJ z$hLzpWB=2SsX#%=64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1UzEk*A4;-p6!Es55|Nqw&^D*Z-J?msW2TcQ&&eAr*1TS~ zZeQNLJwGMn9EFX$-^~;`Zpi3xTJ?`-O0+?-zl)#CmHM{MXMrNQSLS?W7M!`_IK!t+ zI^V0#aVacXYL;#pL}#Nv2?)!=f2_T`O& z0ijn#4mfQ5v`C}u9D`C+#%HtBn>GtSnEt7!A^ub~^PSVPvmLT4^BZ=pJI-K}`hDY` s_KunB8E)Ngn)kf)kinWY@_$xK3rGaB@09za4fH63r>mdKI;Vst0K_JTv;Y7A diff --git a/app/ui/style/olive-light/png/italic.32.png b/app/ui/style/olive-light/png/italic.32.png deleted file mode 100644 index 4fd02a6d2a50ea3b6b24e0fcf9eec64161e5c33d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 468 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK@;M7UB8wRq ztocBg@yxb`%|JoP64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq!<_&13g_F zLn2z=PT%Nt#6h6#zoB@5wqmMKUgCXM!FQ^D7V=))4|VpQa~C*W(iE!DD6!#^7jNVy zGelXz=bwM(b%-%f zyspu8N$2#fg_eu`9J1#MUHlnvENb^NGkM;Go=8TH88>=QuQ6mWR@x=OC2%o0a@u(% z2CtQ@4Kq4pcb=0jW}1HH`}bv;W=afEuSE`M3P)cr{j13IKq+2;<+`15EyJ8Ar$7Jk zWJ$>SxrfnUV@(``(5Fg9j}y!x2+GDFApz2A0Jj>42%H=Pgg&e IbxsLQ0Gg|}qW}N^ diff --git a/app/ui/style/olive-light/png/italic.64.png b/app/ui/style/olive-light/png/italic.64.png deleted file mode 100644 index abba087a98f58545297334b2fb8ac1fcd0b23a6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 755 zcmVHq)$8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H10&q!0K~#90?VCS~6JZdCfAdCCn1hR0TI?nu2wPk$ehw zS?t7s-$1Zdzk+=(WFwO91gn4s9jjT+<2bWB^X|K|w@-VwGjk8elQc_ElIJ;VXT)T) z+0a!#4{aUNRR#g64@k`*AoT&M83d$0AT?KhM#f+^o1HN87v=6>YHB(;f=vLm(Pwh7_j-~7b|{3Yyq8(pAbzz*W)Kd6VUbe2~h-ih+nlM#!wIO z6JiPIeEbA+0bb%Km<#X{KfzRhr}$O7EQfiDpI|M(P5cBi0p8*#m5k1!~?Lz#7S^|oqIAZ2r#80RtV7J>nBBCSB z!mh+ms3o9J@e>Xfkmvb50QZ&qIuk$PU;#w*Lc6R>@e>XbP!z?OnIEf{h45NC!y3x6 z?39RZ|L6AtfMbJwKLFHv&v3ur-`#Gv-wk$O$_)Th0JmZ-xWKgT1Cz-l>PsEh{*{?Q lK4nJ zys-db#zO5=Kn81(%cOUqE! jKyd_yB?9U&YZ^}fQT@a*>u(juZIF4nJ z$hLzpWB=2SsX#%=64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TaJzX3_ zEP9he0s?-VcVJ9dGSt!b&z~g*yis!EXAvak{KJMZ8cXHMdldE^59knI>7#${c$^O{KaDXp>Va4wc iRpL4QXMTtWFjy=Q=CDdH%t-4nJ zl*xcF9gP2NC6d9c)B=- zRLpsMW20b$f(WbQMxkHpyZp8=^W@8vB{x5IJttp$?zz>CSoSMC0dUN~5YkqC;32BW z9p+aJvl!u+fuZ5lk6#boe{b4)?OX5h|C~|__*O_lFayJiJ$pWIMDf>Oumrk+!PC{x JWt~$(696jcRk{EG diff --git a/app/ui/style/olive-light/png/listview.128.png b/app/ui/style/olive-light/png/listview.128.png index ae2b96fcd45e193214f52a42528fd9f2eee7f979..969c3895f5f2d568324b2fe2f60ce507a5542c8d 100644 GIT binary patch delta 596 zcmV-a0;~O_2bc$tB#|_kf5u5fK~#90?cK486Hye0@p}v`=%fgYm9YpZL>REN(0u?K z%V_O8*a|l5bJ#3`0SoZ~EEL=#WeOE$8nFq&6mA5E?6KLk^xlxkWaIz))pxQ7=3}yH z=7azM00000RM@%~j7Fo|W;Sv6`(`$D_p93&3~9{lm%D#6vyUN!e`!@!pVzuR^ow@s~EX$7O^ZDI|?D3Y&;S=VP>E5 zJb#gLHtA*2i^XC!91h<#O*1gFBJlI^QZlnu2wLGd&-16V*{n&rX5BwB9*=Li`^4Q3 z&lg7UBFP;xv*pFY2s3+KmgU!7&jbJf00000001rzwukRIwuj>{wuj>a+r!1NJzO2z z!^N>Z9BdC)$M$e>Y!62ilm7uplO6&KI@`nlZ)^`2$M$e#Y!4U4_HeL0Tov2HMX^0x i5Zl8600000K&n4QnG=XG(?V(h0000}LP=Bz2nYy#2xN$nA)J4~Nkl6o>J1WgjY&M(yOnN3|(faUTo7sac z_J{UdcDvo@DG}r;f34H$yfm}N+wKaj8B|quaD9FKF}5)J1{e;9M`re(*ZzKS_d3h6 zCuLcF{oA_ep{`b|ryTzN2_fWlU7y6(MGq-9%d&^fYzaGX99xj`pM9@^jbI1dJ$iQ0 z073|zX10U2g%FC^8ot}blRg6=lOF>#e?NxO8OO06vdgD zU2eT4wB>WJ*L#(+FzK@B#bQwp27?b(RUNqd*!cPQPjdI#-QV>4{TI{ev`TtrPSXz= zjYjv^chDZY`ym%e?v}gXgb=RG>>|(ecPX!Z0000000000po8h*`;Y12_>Jk|_=D-; z;+P(;j_Kjzm>v!@riW`|dbl{Iha-xU@Bu@UKm!pv>EZt|riY7TdN`OKu8Qg5V0ySP priUwHdbl8_hXVir004kgzW{a00k}Px_KpAm002ovPDHLkV1k*3D{}w< diff --git a/app/ui/style/olive-light/png/listview.16.png b/app/ui/style/olive-light/png/listview.16.png index addd72dede2721272b24a4100e040a948ee5b156..a0537bb9c1faa491cf7f211ac9044b645b40a8c4 100644 GIT binary patch delta 180 zcmV;l089Vm0@DJJBoYa5NLh0L00Xc900XcAC&Uk}kw%Aqfk{L`R5*>z(y?1pK*1KY>_~fSa1&5u0d57G=0J$fNpr7r@x54bU@!uxwcaD*l!DUSTDuuQ z7O&f#KW20(<@w#9C+@D_4JI?&Cp#A4^7#i@Ohg=DGiMww ikTiGL$LQl10K5T0p&?eCy2!r(0000zlCcrOKnw);JYNAc@BtM-Ko_L+NJ<-a1tebpZb3)#I3N?B_%a2%x)})u zBY;}#!}d7^N=s|)J^^Im&RhVdEclz92qdjpP|_Qq^x+l}r;MPK^4c2wlZepP!1hzp zAtSK80@v>!q~OjRVK-+S7D!sMprm;ibU6SYCDJETKqtIm00000NkvXXu0mjfJOxW> diff --git a/app/ui/style/olive-light/png/listview.32.png b/app/ui/style/olive-light/png/listview.32.png index a5d5dfe4b3b11127a900c672fb71b06e85c1c1fe..095429c0d94d80ff4bf42049526aa533dc88dda7 100644 GIT binary patch delta 286 zcmV+(0pb3`1H1!}BoYa5NLh0L00&_J00&_KmBYBUkw%Aq>PbXFR9J=W)uB!UK@^4I zb2c<2S7HFQ75g4di@@so~zQ8GEGX@;!6Q<~0IHyQE$Vlo3< z`!FqS+b&7I1Gsku$%CYR9LFyJXwpH`G;41h03?X}?K}nZ1P&b^zwi{%B@fXXAqA^c{CycN=4Tk#y$@lHX>w9fsiu zWOpFOxRLbii35Nngb)@0UV*>g@yZ*|tf#c+@4&27KyLl3m#_xZfGZCmc_@XF+)n}| k^(7)m?j`l!&gIN6mQP2GVd*~}00000NkvXXu0mh|f-JIu0ssI2 delta 292 zcmV+<0o(q(1H%K5Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L00&|K00&|LIC`1ekv4~a z;Ymb6R9J=Wm7xy8Fcd}aTOgR#U>ItM{RaUAjxRx>=Z5BA_y7oe#C+YRFq`Ub5iV$akM`SSr1K(i~W;~w1B4wgmd%d%#i(^Q|oVPO#{SF5RxRn18;(f7w zWlUjLM|J^c))egvPc&p0t(M3zN3MHupm9t6Ud+}k=e5-}=gog|EL*K*hOvcN zS!{W*S0rP^uHT{CuJ|)0JbyR)+N~;yw(Te17h2f-nLP8V$YGmpYq#!}c&PMm^^{GU z{(t|FmbP_D{U?Fro(v49W#-r1`D>Opnc?}rbMqfq@l9qZc4oZ6lq1rhd%z6`LxGQ> zjAx?CzDEUbx-Y05SCwa2UpSj3W9{0rIkS_da5VUr*Y{L+9=7O{-+C>bf!jEG#?92W z2l}6Q9~`~={`bE6^wS)QQ7u2bU)ad8&plo$cfIn@n)^S6f!sibZ4A<^3EUfSF*=&h lJ+|t9ZL{w44uK@IH;jc(s^hD;<TXC{i=GAR)Z5v88pKjW8dA-vo=>ulZ_ei!qEd5j^6XdmeS*9GL zP8LU4O1Rg~PQh6}*8MfF&yts85UW>t|Hy)qAtBb$jp^j;9llI5zw`eIES<7?$5~s( z^j78-tXC`=q8xg0FdSsQ)ho@@nqN4hnrWM;OURxhi9!m`_b_f)y(oA(|0MpxoW}-z zkE^ej`m0P=na-fM>cw9{mHiAhllQ#+{m=Jpa!<73Gy8|1D`aZqzE|FP{&DfYv+{?Y zf0UGQ&|Pqh@d{HGF2Hrq)JaI5T*<`njxgN@xNA DquQr& diff --git a/app/ui/style/olive-light/png/magnet.128.png b/app/ui/style/olive-light/png/magnet.128.png index 6a32da77a902be50e2e535cf6737f8d07003c4cd..4fa9cc46be7cd82223fa669a771101a0c7d0f9d5 100644 GIT binary patch delta 3272 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 delta 518 zcmV+h0{Q)i1)~L!Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L00XfA00XfB^@Ht6kv4~a z!AV3xR5*>LQn6|jQ4~G*%(Xl23@BfRPE5VHmcowGRQ@0bpx?S_j~z_x{ObGWqt8K^(_dRP`Cj3jkgiWA=-p zI0S$o2(GH?O#t^qa;8IinI$4|Y&=?zqs zb&%w`h-g`hh>~2d>r|E2d*8Fx1^||7Cc{ep2tZux_ul*7Z$Tv1omkZIeE?OG5`Po diff --git a/app/ui/style/olive-light/png/magnet.32.png b/app/ui/style/olive-light/png/magnet.32.png index 34096c60252e1b2f39150127fa674f659ca70ed2..fafa17a6a5b3574e931e796a8db0357be8665624 100644 GIT binary patch delta 787 zcmV+u1MK|02d)Q@BoYa5NLh0L00&_J00&_KmBYBUkw%Aq+(|@1R9J=WmrqC(aTLeD zZ^lLG(n{bT0(X7`p0a|@ind{DcJ2bQW+IH97lDzm}+24Ef-uL_2d9y4F>~TmPy|(MRC&Dm1FCs@p zBEi*Xr{9Lc*{>lgI`SW2l;lGjTFvm|FlWG)QDFHsb&0Dxs#?Y3 z83K6d`~E!uQ7r(LQtCd*i{>W*FyZ_DbL_lZTPbyaiR1{3J0~L3zVDBeLfEC#N~tlD zSB%ojd_Ld5w6ydd0CzA400u$usj;!~St^z41mMQ?&gSOkh9C%DR|LppGJOE<7}Sro z*05t%XeH>0&4Mwz|U z8J6RJI1d1vi}Te&q0qa$yu1kjmeDwnn2Sg*pU;o&f;j+0o12@X0KUd~YburMFVe;D zwulTGLlfC-_WLfF0{~W6S2sjt!YB$=@h6g>rgebs#5KZ`0)yX(5$B(IX} zif2BG$Rp45-c;eRl~VI0+W^3_tjnI~y|n;;faC?Eai*HNQfipw6v-X{EdW|b_K=)% zUH3*6fRN;Dl0;F|3&blRdBkX(ucXk?(Qy*MO_EmWHIf#|5vA1WDiCwYK}5QW03y<2 zG%Z$|wr%@bVlE=D0Gx?m^9ICVrTHj|mW;He2#_QIu(h@It&%{p^Y}cjwa#g+b0o)h zjkaTz<_m>F&Pdye03;72)g7MxBB<87D7Lt`xKggCG)(Qp^N(Hr@7M>}bAX1@g5x*~ z*g$V z5|JVfMV#D<*h1~(pa_b%Sjv4(OcRBYP-1M-dyhlkOJ8G>CKB2u2Of`m?sv}jyYJi# z0S-B+0j-S1VyBHUmjIj~qNB{*0{}#Slw{@&BKl&CS&YZyp8%Mq062~l0x-hNV*ny` zH6_{rFbm*?*80zX11P1g0=N&Ls~+PDks_jpTI)BB0tltlB!Js{#6(GJ?V^-&$r$s) zTDuMaLWmwI;%|ac^Pe%)9_^enhmOwH`->xiuJn!f~7@%zV*Xr;RZ~i9{j~03sk9!S3Zr6$*u^CYS?& z&FAxz0DgMwE+NEliOzdV0Hc1AnP-y8y35R>e2_af~XtjE4Z9LGcvjpHT0AOot z>sO5v_%jC)O>3=FTI&>bfa$==PF5@4-ri0Hmfa-)Wi_@%07*qoM6N<$g2cIK`v3p{ diff --git a/app/ui/style/olive-light/png/magnet.64.png b/app/ui/style/olive-light/png/magnet.64.png index 4c71569a61f9e7ac02d8e6f742b3a4b85b2d1abd..99ac75d71f95626c0a891be8c39df902808bfe53 100644 GIT binary patch delta 1636 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 diff --git a/app/ui/style/olive-light/png/minus.128.png b/app/ui/style/olive-light/png/minus.128.png index e538ac4302d9a36031db050f71b19fd15a84a706..8193fc9dfc1aceefcadbd1f741766210bbdf423d 100644 GIT binary patch delta 665 zcmV;K0%rZ22bBkqB#|_kBg08VK~#90?b^R;6j2n%@pEQCu)Epdt_azTyCOm$f>x3s zk?<8JOku2CD=Wp#>@E_BD6>^IhM8lN#>(6~lQH1;)Bn!BaLx?#=ZceI10#O`004kG zXqCk}ozB&wD3(=qQAB1$q+w>~t6bxMqpAlY@>4`cX7(+c)Dler0A{ z`DcKt7DZ9438&o_g5sOnwcOvr6~DIkLysOpk$#%loP=H||c$VJ~pP@7A~Jvx6euK_qbJZzd- zrJs*c9W&GMcznSp<23-2$;AA&gu1D!SC6~~pw(*a`!0a`sH!!a&F?-LuL0=wdPgF% z=d~-;#>~DQ_vpmD-vZ3+t#1ak@$QZH02D>B;hRA{%xu#)<2?Yw;c!P)OZ|exsrWD$ z4Bq>Og1+Y$MX{!;MM!@Z)l=2n%+^A(LBE5?Fbbe@OgkN z%X-eaX%U$Zt$|9sOw)8dG+gRLP?lxe&bfUNxh9aC*N}mbLvg}i% z(bzDvma1NsiccEjPsbnPHlrxIzq`9z`i-p8W_7#WD|w#ZQPmzrGn-M>X^w@LqpAmH z_Cr;NX10^(`POJO`ueZ;1(RU|BN_kz0Q~$0H5JHA9kue$00000NkvXXu0mjfZ&puB delta 671 zcmV;Q0$}}>2b%|wBn<>}LP=Bz2nYy#2xN$nA)F(*Nkl*dW;RmQw^0ndK$03=Cr)yy7>$U+_U@OP@Z9!1gf;c)n=YOPk)0!flAn%N5xxm2|lj%*+z zi|uy%z&V#zDO70yk|cRzW)DOps!|6*A`zL3tpp8%>_n%QEOWgmRAK@E(e=n>67ISzaASORWn?^Sua~ zVP@wKdvs)81ApM0>q^br$EcMSMRC?A;57iMYJTfM(|mj6H2}R{Z%;%Rf|JX--R?J^ zfY$(|X?mclyMAjzQ&jb9nx+RnnUJr5jercA;oTeW0VvCI)i;A?nAw_d#(MzrJl|5) zO1~gcKUIC7W!XF5T+n{LnJueo8Inc)RCR1-%OTmI-+#eHQS7$c?O!4?7m`Q4%sM9TAxgt%2%P^<|c2E1~&HCxV=Fn{gcPiO6l?R8XT-b*!o@J3Bki zs?@1`CeS(evD4|SibzjHE(%-4$IV1!t<`GX-`?J?{6$u4v!BEM-1*~JctzDW>i1IzjmTqJ7dzsbDF-cu16pI|Nnpck(*o)>#~ChUE1`oxJ9ZavF@3hq~ZcyKU{jjgTzNt6xO3Qh+57V%FVWzIqj OK;Y@>=d#Wzp$P!s*)o*? delta 126 zcmdnObeL&^iV{n)lV=DA5Y%v_bTBY5a29w(7Bes~Zv0@cR z^TGfB|F=(0+Pr6v&F91I{MU^ffByHp*uyhn?}Oj}|JR!?GBGr|SM}k+!8A6uw)!Vg dHe4$>85W6(zkKEGr2{mb!PC{xWt~$(695NTGp7Im diff --git a/app/ui/style/olive-light/png/minus.32.png b/app/ui/style/olive-light/png/minus.32.png index f87eb8fe8e7fb92162e761c1139fd7e98e448c46..4926381e4a1a08a2f7154d0897c272abc909c472 100644 GIT binary patch delta 227 zcmV<9038351A+sPBoYa5NLh0L00&_J00&_KmBYBUkw%Aqut`KgR9J=W(lH9cKoEuD zf3hhgBBa>TB3JMpB6tB$Vd)Wa5jzDhVCNxn0)>z^g*z4+SW;NX2Alc18HRn!?1C}I z81rWm7gbfwL}ah3YrrSYdWguyIafDL(+^D-Pn2bO0Cqr;I2>ROtU?HjuIsKtGm8cU z*h~;Swk6s|eD-B9^7uByj8&+E2rpNY>l d#u#IM_X4nIBp5yLJahm6002ovPDHLkV1iSTTQL9t delta 244 zcmVu=EIf5jzDhVCNzB1PTjVS|np3 z3)#j(vf9ko&G5(!Nx&FmjQKN3i>j(-s=61EwW|8evmU_3IafDL^X!|`G*Oo20oVaW z=HUQyU=>1GbX|Ato0B9Us=66r@PLR%Y)Ni@@*z8xm=@^*DkA3}EN}v}F9v_Wdw+{D u7QmACo8@!|j?THdZQGFfY-5Zu=6f&W?I#2k&e)c`j zJExkxpTPwQe6c^_&-}KmdVSdHx!orW8v-=1u2^t=edh@ghc#2G=A3`Ny>gy^___M^ zT+Ip=A`|5r66UI|R#G~dv~h>eWs_^?UNmWRMY#srFuah+44-?Z^zP)k{q}m?x_84} z14}-BpU&RUd@`kIA@^2xhJvgGXO_)**>s8d$G-av52RNI@AZ>t+nwt8l2PV(VA}7T z{!7d%o}U;M*6--{yjiq7KWs1K_qJ0xO=aS5D;QsWt>Qn>J<;mwshI0~ueEN|li+Kg zKkvD1+*hh0?IF39q*t=}d2mXRUBL~5`3?6cOlw;gA&5zJ(~5m|hGYt%n3 s`|cBGbIf+1+Vm#(^4tz2kRe^eSa>&>>DaTnA_gGvboFyt=akR{0JiM8c>n+a delta 404 zcmdnYvWaDaiV{n)lV=DA5Y%v_bTBY5a29w(7BevL9RXp+soH$f6V2M|13XPde3{_ zz3J&Crbib0SPU5I1;QmZ_^};0Twx=3Q_SY}g6pqY8Rix2n9jZ}{>_HVFX!A8Tf@30 zY;`q5Ec?P&Wf$|dzt3^bW@K0=+j5gLbnnKqT-+UtRxDjLakt0T*J_?cK_(hH3od4? zxNY-$@dk$EGeIt&b{)2uBAGnRwRuzhf!T`W1@yWsv7hOawykyXrpuRKe$nP=3KyJNIj@{gfuSI#^i-Fwi%RI# p=RohxNWJ-d9W#>G1uxqDV9eO#?@+A~u?!gI44$rjF6*2Ung9hBt5^U4 diff --git a/app/ui/style/olive-light/png/new.128.png b/app/ui/style/olive-light/png/new.128.png index 3f20d71e544ffa17b829e7c15f88106dfafe56f1..4fd84a883f2013d91fd40379c3d4ef274e493ea9 100644 GIT binary patch delta 1011 zcmViRam9W_IGe|N89g?2p{D-zxK`G&5Ddk3@toO6HIb^QQqAb%*~<$x9dAOrw806+-n0RY?x z1YjO30s*)bBLV? z*8MGF=YNuX?HmGloZ^9E(-k0ZpXVMx05Y}>@3a;G@&tf90U)m!0Q0~9rvfVmfcO6Q z+%vSXk^uaadxkbv3;;9x8Njc(=V)8S0GQ2Y)4Hy|g%AW)3;+Od&bbpUQc3EHx&o;11e1URFq4l1A(M{-A(M{-4S$HMs_L!) zkXBXIT>t{W*#FB1^b$bV<>dncK-Ig;2LynotCkN407cg=9}s}zTeN&Y0E%we@&N%T zwpEr72tbjox_m$YiYsLKfB+O#=<)#pD5jX@0~`47;cfeG+HEX$`GBqft#6&>0|L@&N&8WvP}A2!BB9O1XR>0)UxKQa!oC+mM4(FCT~i;JyDX{fqx7&SYW+zPy!<3nw^m@H#%Z_Vu`2b)sCk+OJn*bhp z?++5sL(%*T=&RGy(?1s-*YxrMpc8Y_`T6;HZ*T9%i;IiD%W&Dl?my z*-JBf*z5J~9UmXRS##o_Z_*@hZivJoLwg(PrO%zT$@OX#MH zcAIa|ecfd@fsjQYgrv|-zCw3_EMuEAA@-tzc2O{KrhyvW+l>Pu*pg=Ej;`jO^IOko zUi?0cgvWmXr4(;g_r#(ow#u@+9YVMT;3k02;*Hg6?*Y6FA%8sG+1dH^;NalD)B~lg z7J$iQa@~7>AHZJZc~;$#nf-8ba`IQ|K~m+ao=_CURwl~_fV~jH-8QF27@nC53u)$pklcppal>@m^L_fu(7f6Fo$Oc zv;e&KKLKd+fi8<@2ebg3b7!;JY#$8}H$*K^rwh>yrIOfXbq7$@69DoAfII;pPm_uREt7x)H=riAe-teA6UVE5AWK4)9zw*mk;O;(D|Ay9}s{}*L3-S z0Cct(%LfFYlf_y-Ab$XzE9UZn8UW1f-&hxC&&=LcIX?FCff@ip2(Mxez+4F7^|Hsd zv3#Hg0O#D(*h8=uLRji++1B!b8UVJpx1RtwYGD?(j{5!nlSK!$xqJYyIwwsglk495 z`vCSL&%@G@bME`&#PQySDMc-c=EE;0m$?GaXOtI zY$UKfk~FjZWP2wf?pJ5>zHmfTlID^wmfE{(3v4fJFMd`{=>$06=nCubFZiRND2mI~ zXWSc@AFYOgZ$V1wJt9acT@Rfo>0>zzAb_$gx9Yl{M?~+(0?4xL)%IBz2KWM^{!;Op ToX{@-0000|Y5x0972RgP=MW0VSV?HZ)jH^32P-C-X8h0?6}xPtrLczVp_$?NwdZj|>n1 zBpuk^2R6F0J-2-nLb%PcY-d!^ky5(uO40*R0~(WrpPC(#o_=j#0>l{a%Cg*@BuFXE zB+Y?)+nXt+oBqt&P}p`YX#t$B^tPr5mca7ss39EMKAE(_Z}=DdQBV}cS^pZhN9Je! zFz_L;{Q@BAVkm7JNw2G6`2465OE8)JX zdXrA10A7~G&FmML1AGIAv*&@Tk_*wOZ6%ngyH84??CWR+5JGS>8&@FuIS{P?07Rq} zL~DQ&#Khg7D-bv9&aNE7ni_@>hKc=4;4W1ly94h2myy1|E};p)8}N~PZk3u`!Izoc zrV>I34|R)eWM2r|r~~K#I)DzK1K25ms*ZLBpsFKaHvn^UNPLb(j18{Z4Qe= z_`XR)5s4{tsB~cV))&CR2K;|SWSTOE%HQ!elrjhS2gyus3u3IL=l}o!07*qoM6N<$ Eg7t8t5&!@I delta 367 zcmV-#0g(Qh1fv9yy?;?jL_t(oh3%IiQUgH{MPKiLKyicJjzw?;91@oZL`)8l3jhYe zIgnIgNJW6+5S(Br435HJpr$cN)z&6E+1X7hX20v1p8l_TTFeL~4F-cEgm5k*j%NDw z-p_&1Fn>i-4vM091@fc;b?eT#6Ei!l zKnzvY+H|58Ktx_@wtj&nz&CKbfEcMNsSvH&wv?I8fmta|zK%`+S(aG{;i&>KOo8YG z03afrAUXq-AZEaG86wZ~>rH2Chp>svY%C(<1;jeAOW-zEBe?@+_Lq=;xGA9xz#H(9 zdah1wuHeheZfIf&B68of*j9$Hi+X?_pa@G9^g`Hoy!_N2rewo=JYyfJG zWDWHD{d=?7>@|R=03La$JrR+ccDsE!8jXH?n13sdvIbhM)_)rSF995Ts(lRL@p8F5 z>2x~7>2$jCRL4mpYd}?>1NUNI!N1cZhnp-KV( zf`rUdz!)=Lcime1B5#pKqwzWCE#I2W=Bx2|{3~y*yi{!k+!AahPz8v{56AFnnx^l2 zz21GF8K?qO^?zDKzB@kR{fMLru-2|r_2UK!Ubh4N8Nil67XWZ2R6+p2lTaA}07pWl z1OR^}dGby#$c0zay3 zH?NOL_lYQg9e_;~zz)DB3Sb9d69upXu!#cL0oX(V>;P<{0CoU2Q2;vtn<#)CfK3#@ z4!|Y~U`Rz*oSg=79qiuub!TTfk&@alG+!-NkL22OI)KR0zJ?BSM00000 LNkvXXu0mjf`P3O{ delta 620 zcmV-y0+aot2A&3xy?;zeL_t(|ob8)Gj?+LChrda{TWm^06)7&#g)X$KEw})10y?M` zA&#*P+aMwkaD#0lAu5E#1=8gLBubSuICzF?(E{<{Kbd*nc)rqO&HKGiGoC1xq2;K& zf$?~Jd$n4h)quR&7{WMMQ_51zl za=FYL)v?mCj6L#{;dH%TPlm(ck*9ipU=!eC+3!Rtb&{s(8wm+E0bY@k&=>(ABO&(` z7z_sUUDu5SLMvjWJ)MD0()Z&wrGyRhCArfGd2i1Ze@^@&=SrC)@4z^=LGT zTm}#opp<&6lz;kaxyAVrDJno~odNG{5?pTw=`A2GL0kaHN@#=tkdx3D0U#rxQ3Bw% zgb#Q+A{!?FKx_R|DfJGE1mJYD**vdX>sH+f>R|hcY>X)~#be;SPKHLVfD+uPJHbsC zP#a$YmY(XA#)|;0^=BV-s^H}z*zI;dWm!h2(|N!i_J8d@@ghKLohhZJ#+YfI0SKtmJisq8gt$q&EE{7000008K1kv+9E}S(}&aKzh$%RQl1;-%Yv;(>jxG zJ?q=)T$M3@Wx5YH3@86DxPLvzCJE&cmd(wC4~p)(Q#m`;qhRMYvolWx`*RQeu&lE) z$-bCYk9CD2w6Ihnda%I4IigTAT!C2nsZE7(adFW@7!qbzqJ26% zJltPjU%#7H^z_NplroRSdLx&F&KbT(cRzaeOz}ynvv0dn?K_l-Ym&MXf}>U-z)bwQd$G)O%2wFHXBOU7UM|mZ@&0za;arIaJqgw z3d7(&fd#65m#Li5O!M)bF&Ruc)=}B#OsRml2nJzz}xG z*lZ$}-S+>jwU3PEeR58BO9G$mEGa2z#&U-;({H0IxBtCtRg(k2cxdxMzP77;ZmFX; z7JmxGlgJ`lB9Uq|Lw7SxFXarZK9OLmVE!?l@S zskq9G{Od9ExG3rs*m&yChaP?vQW!|^1MQT~uK1?J46mE}ObMP;u?+x{XM4E#(-_8d zT7f8R-USC{^G8Tj_Q9|bZ&s7N+G}Ztu1W@4Qi*YkaH1fj&=UUxMG5 zViV|M(nff&>W|ApZ0zWwj#Wntujqz2RSkUcP7tLoCagPRfYs%xf0Rx@-cpQ{P~ReNi&x-iq@xrYt? z2Z>t1 z|EiD8D&`;<&;FYUe)b!%RQi_9eRT(LPc}#lbJFYXc4`qc%eX`T`4)}2{j>;Kb z3EpQ4FL;4&vBit=tTv@`Yk~Qv8D;|6u0k$l6+5zGm#8o6sa0?@5sig>N2cG^b0UM& zK+^sAOoTm&%%rUP>$5Mx8V8c%Fwg)aeJW3JcOC^&M`_R%GDuxA1AFvd{V<4>@Omwbz(Pb>AQ!>TdleG9 zWZRn0;}YG1)GF|g@kAcmvUzF-Mm}@*jmrtxk~#PiE*~ongiD`QQ^;=WE6dBv&2lNN zr8N>mKI2o~n*V;U-#M?tK7~BrQC9OZftd>f zpSlb5Z#MFRcxBnK$Fyhsa+CB*H)hf?hWFs#W zHQVGpN1k6A8yoxRV+g;*v`g#j85ub_3IyrqHABRF%;#4o4hIATFuFVbfCG|1^CE5| z@12654mX=qPy+2W17f;#0;$6ixX qSNHJ3(1+#}=liW4Ug-aa1C>^AO> zB`ar3QOPvCKqgsQO^Z|%l`u?-1rn6zJRz}P?XR7)??3PPJkR@m&ilU4d!9<$Tejyh zUs|Vy5~7iivXB%uXGtYPxixuVyrYfL(x|}RTs{%H0)@pb2zT?Up!nwDqZVw)aqDFv ze2SP|PQBK-);X-I(j!shAsbY1%&}k$ti1@EcQ|QQ;$oCMSuJFyJX(46W~SJ5oOC{=n3>!7IA~&2Wh6|=xDZU(IPkZ|BCS$E2fuH18?29abx^N=P4atO#tWM%RoyE z{-d=qt&U_$9qY)wZi7Hzsj|eP@qlh(#scOlz6c5M6l+N=YAp#{?1PWpriRt0n39Of zxvHxO-!_c9X^-5DEfj6h>Gf@iG#YIU^D+No>%bv=B|>!|CPuDcu^6oW9WsY_;9nB2 zhu5!CiN>R%qD+FgR{x}ms%2Bt)1ztn5g`k>Otz}ye7K6Q!;lSsxEg&GO?3Fs;Qc;_ z^73+N&!sg6Zb3mo_ddBpu0SAY1A{g@`=Y9&-|;l>ov^R-!r^|3>A#8#;DKI@$F&I#cN_t?+X=)fqv|4$7(f9yZbNozB>I zZL=$KUwe3!Hbpv%(E0O4!}zW5Puq}_lPA0YiM?A;O{($y=E2dx`$1dZ9ei;Z4Ap$4aF_l{ib7o2xj%8plusZYf3Z`?eG94>+Ix9Ti-_4tSy{695|3G5weYI~$kE5a7q9^Pv${VQ_7ToRvMpFG^q`p0ivOqZ4Y%?un4 z=lNatE@%1@y?YXj$)9FFT%l-c_BdhiO)i*)RUae~n|GIFRFx+nsNoc#t^IV=6vdlU zV#aw=@e~LqYHGBeCGl;;S{y3?vko*`OG;LkF2?(K!+@mhZe1l7fJB6aD+02y9`M>0 zg7DXu1l;Me5UtgA&tjYv;!4EViHP}<$C0aWWRU9N4TV&;eSQ$k5+-_>Fr!yBj&=Vw zXBmc?AOR~qSA6mi7=*ILet>>m4|#);+608OYtQEG^Mk_^5)lU9*anL4$X}X~)wxac zP)B5wdetr#}*^kJAw_-@9XZ|xpTHfcOVDmhbN-Bo351@;PaWWPA`0} zpb(N;2P*n0(uzFD`gbkq+7s*nrMaKe3`uP`!|)5v5j5U8EoN?n3gRh4)XO-kycaU% z4IUH*nayS#72OA6*HuWa<31gB2)C^K?w9YxRPyUsMjQc(Qhh434sWt7fGUPeHh{#A!Pu?<;Z&z>i zY=?MM&w`%)_j1E@h!NQmt9TBvP1S{8#o6`~z(VLzu4BvSOboOwJOdORYqoQL{A2Kb z17kX*Qeag%mgt|m%+A;aOH9{dfYecCuhgL@)d}&hdT~YV` z+d^Ao-HD(Zg%7(0Iu}QVqhnQ08>1AjJ{K_f!J(5Y=?8)wVHuxS#^e3;d?VeI2AMjK zfH-;ipA>&XZas016b6cin zWHQ>*4Go)`iKF>&yY-IF&UF`S=dt|&kWJn;%**XC0FqTp`(2%H z!9xM9b@r`VP1(%oJw!=Qzctd|pVkmrtq!AnE3jPSTM?;DZLZx_mBqm;>vo~OlqX-2ei+Pm&O8~(1=QF@)^Dl9H17%4wLX_ ki=kg`8KB|+PqIxPVYh7QTiOp?hOPzxAuIwf2qmBV2k@C4mjD0& diff --git a/app/ui/style/olive-light/png/next.16.png b/app/ui/style/olive-light/png/next.16.png index 2c9273d08f37a750bfe8e6bb1ffb81cad5924895..c1721f67cda5d9dd9d359bedeadf140a0765b2e5 100644 GIT binary patch delta 307 zcmV-30nGm21JMJJBoYa5NLh0L00Xc900XcAC&Uk}kw%Aq|4BqaR5*>rkg-a{KoEv! zc5IRbiy)WgAiE?lAXxbdg4kO60tbSRVR_cJVkHL_zJRTzogu+e2qZ|FOvWa{8rS8l z?uTL7nSZ{SU4UJS+)Ggu`&#Q|+qR9*oagx>NfO;O&F6PcxrSjF?uqEhT6>+Qsh$Iv zdBe;bH>YNQo&o?sM9!ipdd#xya8^H<;!l99rBdq77_$ob_5uJ95dwgfwf0CUb;ZoT zJfRI-&@nUL`f6JNLfQ&|h|ffH;j0Dz01;V4ZpyM;1HfpE`4`}Q9LLM5s$N1vemnsY zU#Ih-@B0%^^T!na4dOUH@49YL*Y%rk8WEj_w%Lsqz5r{jPC|pqNX!5L002ovPDHLk FV1l2Gj#B^t delta 321 zcmV-H0lxmx1K$IXBq9WJLP=Bz2nYy#2xN!=000SaNLh0L00XfA00XfB^@Ht6kv4~a z{YgYYR5*>rkg-a{KoEv!vfC^R7U8%w2NOtM;K0gP5X9Ef7dQ}n3`?!A6)QQo!WXc$ zw38%Q9s~j=&8%Y+A+Fhw?*3+X=l}Pc*#$VZ)bNn!`H8i5)ig~#7S6J48OO1$>-y`r z77YW;{1ipe3lZHVNn(9~b8hFH+YM`fe*hwq_uETj%$|tWp1%;0MG)YHSBUtSrs-xX zr$a^$Q2?+ZqEoH)Ei?bi1j(Mxn0Y&9%moBB7x1dJz8*6s{{Rsk06Y{$aSs6BL^L0O zh@T>IQTHt=B^bX7YYrDLL;J)=!ili5rwFTMysO`iO@+j2&F_NQHrZ~MtQ~Q?oPoz z%}Ew}Yj+RZ+^c40|Ns48-cB|v(pFn33ts zpt{ZwgGJAO^EN;BTI=&#t+rh*m#a|#0PK>SYOKdaWF@H13GrC=Z%EE&GMVdKE;k$n zfaGM*Iu1Zzz*)cJIHyXf)gO9AKBwC>>7Pu#iDZX}tZJ=~3xz@uWGux7@PUkZo_D2` znn(qp0nrQKP;0$aEEc=|9iRaLk_(ke09mQV)>?2>^H_xo?cw6A`bK;h_MHczeGb zKLJ=rGsZkd@P76AH~lVzy@G=;Kcon%>$Fi%yCsjIW$-l3>FcKU{eehK@4J2ELNKa5k#9{ zQPC)v1fys^-o^`O6E@uXTQ2B%yY70YTkcP@Z|42)<7Zd~=&GxfB~hD&LSf7pGb|!6 zs`{A3*g4lHB69#h@>*5>R_A&m433QBs+@6kILJ@fZu%W7& zq^}bR5WrbJpI=Bi9B4BE5qSl$rK!18X{|iwsqNAqLrSJQ5F^2=dUC8>2A|Iv2VsShO lf)QiP(_cMGyXq=+eE|M@oT%c-#nk`+002ovPDHLkV1n@B-t+(f diff --git a/app/ui/style/olive-light/png/next.64.png b/app/ui/style/olive-light/png/next.64.png index 00d6f3a075e1919e201db9bfa0df613fe4d236a8..38ff513c3d3f4cb0c7aef7dbd7041ae3b43a243f 100644 GIT binary patch delta 872 zcmV-u1DE{y2Z9KYBoYa5NLh0L01m?d01m?e$8V@)kw%AqFiAu~RCt{2nmcGzK@^7n zGg*tMWP=NeAlye%CWWN(QCOrAB&1NWlUNBtNFdm08p~LjRK`~)m?8$jLeL0N#6~58 z-OgOFNfFtFY*Oqx$7UBo+)eIW?rX_><(|3!nfdoz<}h~vi^XEGSS%Kc%WE;tuPu(_ctVI702iA-t!b_2f*_ElT9FL!Ja2}XZ?_dB zTHfB?p555ks728}2*+_eB3c4a+!LxY^Hoz5gy{r)-yiL?cmQDL@!sCv72o%VO|`?& z{O9*B9sr8Xn3WRx8H!ORzbqQp93JUJp73NwzGdjL#&p7(rU zVBn-_o_#nTG1eAi1DN@!;rR1f>o>0JUNX&<2Cg_^q{`4uarY7RfVx1&HWvp->phYVklu70}w-rId;6?IvV@ zVL;-0y9uei0%`8;CZtjUY47bOM7bbQF&v-z-flva3it)!T!?XXB6=vLe1donGPcn9 zCdihlSd=?L&q53fgb>%Il#7V@6o-gDMTvF7*nl7i-UC?JXA;XhJ3C|LayjF@9V0iZ-nM124n0KN(#?n@~bYqeTEif$OH)oP_!EWQ&$ yoFbyrL{ulD56nCj<)Wm;VzF2(7K_DlNcjgp*FAz)Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L01m_e01m_fl`9S#kv4~a z7fD1xRCt{2nm=e1K^Vo~^CAS5n0TNFaX$G@9L{n@y!m~{XouY{PUYPH%-5CkJpJpSWjg5`xK@gm=^>RV1<=F@kIV2+Ylu|eP z`}_C0@C=KS0O}CH<&~9{r$G<|4t;mTWdHyG5$Of+EC_;2uD!Rzc>n+)BKt+;mQw0Y zPft%<8f*AXDgkWb?E3opoKot4cv=fcI{=8tF_KS`=o!M0dH_IjJwq5W5x^##_Y7GJ zzlv~d0D!-GhM}Z9G93W$r)QW9f?zBO{gxy|lR!kSDWyKet(*A@*urq! zg3T5{?6*wK7J$Sp*i-?KT#Q?@sR97-Aa22?34r8Xt@WF@bu)hqlB@uKn9y3!CZV6{ z07!lTFsilINqJ=T6A%E8^ZERRBsULaumVW_0B~JvJ#UOj+%Ibt@Gh6jozq&+yE4o~ z1(4hTFr~G=3!vuGJM{oaeixB3W6Z}i{L}sfUbM8d45qbtAf*aO`fRtsc>pfXb{kxN z0?y8M8=O>t>$Ba4C>2nDvYhYyY_}mw1$+f?BE-Bk0Jn`X_Yvbo2FcY%e}a%)wbhGK z0S`mWF}YmsqA_L~G2h~d$lEAmjj#^D81stc)DBZ-tJUh@($Z4ww>Nbr@#~kkt(5Cy zR^+0rpj0Zo@960GOfnCkjpRDX4l%7qQ}hhIuB!A-G<3^bT^I3hx>KB>(k3kFJvY9 zyz}X_v_R39n+Rl2gogdt;hwWy=O#}%n>$(OOprsxP0^_DXeTCE_7A>2P83ZqGZ$oz zt2+;0&jxRnu7>~BNJR7ooT)m_R73KvO##H`&p3mTQl&Y@kH;dU1;M}@sl5EOx8JZu znKEVGtEGh^K3qC5@LfPazz!gGVm4!?W7>o@-uBf$nzOz(H=lARdLQQK1Vu+j2Z$z= zSnMk8k z<#Om3X|(tDE9OSp$6n=&9O8hWH}Io_; zKfT>2O#sZ491fz;C4^+mS0r|Ng#J&Tlx_qn+nnsm=J9x!JXj9doaZh)zcN(m&FnLk z8(8*rb^n`l-hdXA6#;1jo5I@KK~GOls>-V<)x;<74C1J#*$UovhEBuYM^S)xZ_|2k zCQ8s$<^1_OLw2}m21^DlW)+Si^Q9_8Pi<1 zEZ~J+Y`5?TB$H%#b9?988UD~`FA(^e4mJgVb~IADtIN+^DWeH3t-r|l`0*5x_DnNK zdz$+>8HkSMx7?=*>7mwN2<7_-0o_&4{*lFBSb_O)iE~!y;as=!>o*vT-b;ajfjx;{rigWmLl1uAO3k^+p-JNeXDSOHM6cY|ZSoYJyK@lI z*N66re=_vi*RfjMY`#?VD{eD(xY|#+5OgTR^jq=mx8F;f5IB=9PL zBb@LC`*3}BEe#Fxiph?6aLc6fY!buYnVDcN*v-Ofi0#Ltptl#LBip72CQm1y0%p=> z91>_IRc=)%4rz1${Bd`CAZ1DeLig)q^0VB9P-mE+EDZT{?50N19h;{me*XcKr7pAL<}gh_1KBmCL{0-b)ky zjS7!Ly^L61bYV06$Kz)Qef^d*^@#kSH+IaK*^W@J#+ZkJCBJ!qDrnu2M<#^s$Ws;< z7gvGhTQ6+5Q)+ebW5jEnGDpS9)oS|cRy(>4i7#6b#Pz3f1TH+NY240XFj>v&bvObL zSI8-@xHyu0Rm}nQL}jN5Tl0fMnc7fSD&|YJX2cR5l(h@DMnz`OW`d_I!d8^k29#HUu!ja?EAdjU6b!&=5G9 zdi<w0WL)*Vckry!F#v=s7O*rc6@@fbtaCb#%G;FGSj z5UY#^YK#gQqyH)@VFky+H}qExhc>Eej2K*Z1FgBoZYkSbK?`6#*X?y^?Q=7R)%!fs j?dLz1|0TUlwHphUEI(YdHs%ux0o72Py}%lBP~txU)tDW| delta 1550 zcmb7^e>~H99LK+3w)|RbiHTan(o$g^Y8)2xtDIlqVu@BF3NfU`R!pNyeyzi8F2jRG zKaMN%qpj#Xayup#`OV|n=5W+E)I)J|kMrj}?s4xwK9ASq^LhVzJl>z@`*-ce&3Ua1 z_*+l%;eborIW8e;`?tufwbb2Qk6Pzc5|%jr zc?xIEJY|q|%D}K(0y-9XS2u{nH^>ZHNl6b_Tt|G4VLCG9-A_0J55m@hp_v~wr(lZY zmdH&R&q7U_Uy3bg7y!#x5hWDhjv5&m%{$8l*YIFg+^Q;oc8MfrKAN7M9xlK|v9x_z z0)c=I+-G%Pgq^z`@l{JpOKo{Zk*k*~&5j2Le5isi?O6T@F{N!_rj3E%RU!OzptKx* z6KdrL9Y8$N1zjP~a_h-XzPA$p^j9GCnzq=Hf;-fKa0?o<9+_WUM}>vU1d?rC&&8e! zLXtt&DFTGU6({OV78aNs2bF0(OhuHdZS! z?lN%$0FQz*8ln)zcJ~GTXzaMo4!$P8yW>I}BTjy<)bY3a^I7a>HaXm+D_hY!J3Gr; zTwL5oD>G*kb(a}3xm*awbJ#=TEBc~N8~2ab*~!J9ECFF$Z0zds^--C?J^E+~R4SEI zG8~BM6pss2A(_15sqFJ7C=At`5?J;A;MT?EZb}Z3L$5eW?kkKm+-^5*2z}268DKl#%^{Zr# zrTY|8u+boOFx}@E1seiV-)xAXbRS&`_6SHF-Vh_{K7AorJCHiMA=bk~u;w6j{2zfk zFRb3PA9)k-XFMM7E7E7X0iMJ2=bW|3#>}7RmaWU-d?aaViC)=AiU%uWh3=QNU})0& zB|5H=D|#7p3fgrc?OH>Qo24SStmD9RwFTWilB<$3~dGYkk5IvRZQgrg(jkyN&yxszhyJ zgxGkX^&Sm>T~jib+=JMZ(L$ybmSiwO0Olm;;ai;NZChL0F;+L^=r6bNXHFi30MQGA z%w8j=udlE1bUx{Qs~aY}w6wHYZDOeD7>{ZFYkkS+=%`e37^2 zV&hY~L+2MSTe`^d93QBb-&m*dpy~#V+S8C7Qc0|!%%l1_M*>#%#1uVAw1E-z*!ZkE z!WsOFn$#UgW=X~x>+U`=mz;O_Lo0vnO~iNT|ALV5zq!>`Cy{$YC+rX=hJV*_vk?Vt z4)%th%{7ieY&$}TK3TD9|1sF%qBmc#@^9yfk%!<2>tO;TLA}9l7Ya5}K zv~tl>Y;Al1E5TOKI(FNnT*L(-tIV;pCs?&*6baQb8esHo1{sSBsW!6&Hp?? z(=-QlU4IOX2rdj9Qb>3SSa^J&=T!{gmgES)&+SWk3I%)vSoCPC#cRPB00000NkvXX Hu0mjf;`NM9 delta 297 zcmV+^0oMNM1Kk6Vy?+ZyL_t(Ijm?rhO2tqRM$e2fB#J*^ktT3cT4S zg4NrAyAZ@hyk)4Zg#>J@Qe*`pSiEA!#z2UdXDkG#x^wvE%oJCMR8>{mz;U06$bHi^ zufuE-69Cule$)qMb_iSygBqK5_vIlIku;W#3Vu_6BXIXxM1QR7zuwQI1*-by?y9O2 zGdp#65s~*%g0d`g;1YOfnx<~s_62x!_p72PR(}*ENpkM)TdI27F*CaXHu5|_TPPTA z@A#rCk`TfPa0jFS?vARiecPnEZf2WVmenByfH^Q#5!va6dnfM?1!lH4K&goA{*R9| vkMPkf0cOAwup-h?5qXM)r@%q4{{Uv6auZwpKIWw(00000NkvXXu0mjfAa96K diff --git a/app/ui/style/olive-light/png/nodes_btt.32.png b/app/ui/style/olive-light/png/nodes_btt.32.png index 40ea3b711b81e4030dd3205633024e071c3f3825..3de90b12cb5e429cd841583f08a7dd9cb906cc80 100644 GIT binary patch delta 465 zcmV;?0WSX91cU{Uy??SvL_t(oh3%HTP8&fKh0mEFkhTm(pc=2eLb9BP;76o1Z$Xv3 zfjd*A4jpd+6%rDp$Rl96!SYN6K`5mQz9XK@^#G#ZW1WdINWYPH%;?iWb`xH8847z_s2g#h9>{*|Q_Nj?Brm&9ohNf(li zz4!ejN!G^Waa+>IIeGp>QFPkt^&Z0wY?C~i2SM^yQb*D~$!{e0XMvDhk+hrPFz3VJ z@GBPuz9egHbAJ{HfM)(J4fCrcJegB?_5*v1uQm3T@7-O!P+4%=r>kpS3jYgl${ANP} za8)Y6itZoNo`0fK5CLR$?^JXO8v!KUI~AG2MgU3oPDQ4W36Q6Ir@T|B0f18K48Sdb z)^gGqvmAaAQ47G@3D`Tw%=}G62l$=Bi&83Wn-WoPJRZNh3G~yCuh1bg_cwR|pl=_~ zQrp#X0Md0!vTEh3wL5>q3ZMemHh^^9lB`;}YIy)aL?AuE#fkN0s?1t{q8~|6qYvjp Ryuttg002ovPDHLkV1m@qy)^&; diff --git a/app/ui/style/olive-light/png/nodes_btt.64.png b/app/ui/style/olive-light/png/nodes_btt.64.png index 67d00d02c0a0ea90741bc6cffe8cbd61843a572e..9b9630f99fe27750bcc2e4ec987da5170ffd5c40 100644 GIT binary patch delta 809 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 delta 1743 zcma)-X;9PW7RKKYBq~c1r38X3p;C|nT4l2mf)WdaO(;r35;jW&*(=Br%s;YM*@hw} z1%ibDmkKDdBp87!C|Ci}03x6eMMK#^))b=6*Yl7%-OA;obAdR7KD6UPF7ZQ{9kQuXeKtC*=z2iM*bo;bPUU2Rj%sh-IESZ3MG35T+BM`9tHJoR)x zIEFm^jniTFaqV>#XUsOEZEum1e#!q2q@+)M2WOX**hZ4iy&}{VV!4n;d)P=lp+fV= z;>G@5Vo@eW5Y5n&0?c2$V&0}45euT?AkuW`2g3*p= z(#Nk^(+UrmBm4|r#MxEFyNu1n3mmCX5VZ$qP|WGjFXwYwQOiB|d-|rs$GH?=-z4#7 z2`}>O>T8AHhiBW8?Fed6fd6xNBm&)kqxZwWrPkLap}&3xYz5R%I|~O8s$B_#OJQkl zlwq|%Wg*6a2sSK>`(;JJv^sB-%X9ma`Dt#ht~*2FR-5pxdlO~@t(ifoD>lrK98VBDm+1ZD&e5(PQ)-k0`=^w z#CzT*G(R#qW(?nP?lzuEqsflfQsBp?f$bO1*SG%&kVs}{XY-2nvIk`*sG{Itl`fkg z&F%($KQyG$^+U{o=^3WKwSN554+yHWsokGhEPn(V~Q!>*(};I0(}Ig?3gFi}%yy z?rTZ83nFm8aE+fr2?dlUshD$o1+gRo-#X1b6k4#XM9gJ#)m!O>sqvveo2T=@B^h`j zCk(B?3}R^?hNZhx@kkLRerPn4>40bCdg@2Ev%cQCyf_v8P|6)@UDW8& zOZr{Mb62fdL`5J@nuF)j(7!yY^SN)(J=uMY?W3Wgu^7&L9e>(&AK#B$bVEy9`@|{Y z1=xeM&(@4xAMDVjVHQ|D)5C}TJ)WLx_Ns|(U5}Zh*thu+c8Tr9->*l~&tDxj!a--3 zgf>Tup?+@t$Q%RKr?|7ih-*A!TtcQ&*LE_d8-+iZy2AtoX*VtCb}mH6se8spf2IuE z!d%_mnXW`fcv(Fmh;MRvfQuh^)q+!aO{T*~JgAPs!aOXMNuI=Iua&Rt4m&cPoC ztuW{lbDQr4xbk57gw}uKmgEOkPT5R0LEG6L${lxLe|wd9WXBFWd1Q$ z#cVUeEsAM1kkMUu17fKF%i2nfcUHDXwx<_@HSxF;10*f$@GJp-%Zx;k&oq*YyyHp9 zpl^qh#t%;|*aC|aZ4C2Stpd}R(1+V8)v(?F0Q#5yA342;mG!b*lZRna?s&)V_`z(8 zdGDS^&E1&IH3IaF@Pca%2m7%uTp$nariPraUuHeAa$EHpx^%GAh?Rp+#(c@Hq+q_S zBY2idnV9^3x(8hF#YfXO0D9% tys{AfIw`JtYTpxHM4K1skorVxw{0;6&Bvt?b diff --git a/app/ui/style/olive-light/png/nodes_ltr.16.png b/app/ui/style/olive-light/png/nodes_ltr.16.png index e87106b786464dd4f5e9e5784db5b29656f7bb04..009ae4cdc03b65676b5dd9ac356b8dc9087d9698 100644 GIT binary patch delta 309 zcmV-50m}aG1L*^hy?+-;L_t(Ijir*kO2j}Eh0n=`1O$KTG&89JDu^%OqR(LAQ>5}K zv~tl>Y;Al1E5TOKI(FNnT*L(-tIV;pCs?&*6baQb8esHo1{sSBsW!6&Hp?? z(=-QlU4IOX2rdj9Qb>3SSa^J&=T!{gmgES)&+SWk3I%)vSoCPC#cRPB00000NkvXX Hu0mjf_^*s$ delta 315 zcmV-B0mT041MdTny?-4^L_t(Ijir*iN&{gKg}?dpCjr4ron|*xKm+0n81xw|e2P>) zg;oYF#n#3Luo7$qtz(yF%OD0UvNFdektA-G6;F9M^UZ~^G);FTotRmTnIyf9Mx#e6 zC<3RznWRO33hY(^1fWsi7kO&|g=)208~*~->-DEJP5YfrXMeK{U`di30oN>y9YT0< z_X*H5voUbv?%N@Ry?I8`R|w(U%INKOd*9vrKo1bGl$Uf_3RnT%{~F(Hu=WO36)SY^ zyL->fT+&iQcUMf39XK@^#G#ZW1WdINWYPH%;?iWb`xH8847z_s2g#h9>{*|Q_Nj?Brm&9ohNf(li zz4!ejN!G^Waa+>IIeGp>QFPkt^&Z0wY?C~i2SM^yQb*D~$!{e0XMvDhk+hrPFz3VJ z@GBPuz9egHbAJ{HfM)*#ey?>EOL_t(oh3(e8PQp+W2k`%?MyD=1hy%F|X-o({gdf2X-@-}X zfDHy`-Fyq2Oia|lN06{M^n?L4#)Ylg9+zIy0qE@q))@W^Lr;5tE$7}AC^-ZGN~uEt zT>v`^YR5#>_B`*YNPrdnb`qKcKt)74MK+HEDu(sD%L0^^6@MT#Kq*x(6#(E?DRon= zR`-hl=zZWd!?^%$riegm&SYcxW z2_Z(N&d`aOE*%-lzkq-N39-Obqz;IMg()H?V(5nRqrhO_W64==RT0;@^RuWw(y+jM*9vhkxJPr0I`Tz^wR}0Gf_s zkBu>Rt1dy=f!2Bh?urM1rq=qA!+2gu1rX7i>)_0M!*xv8qymZ_^K&@oA*NH*{7wFE zY5~#-NK*@tPC%MkfOG=V)B=1@(ChV{20^gmd!C}Ci=l3}+xIw6Ohj)1JR1xK-#yNA zY|0W~sho(i1%Fs7BSK1mMO;KGpx5htalIm(b%*lAjEU&A)_S|&@BeU_!#uLzfNcP` zTn1N4eKN*e1<=U3%aI~{w(3#=olfVXQtA~Pb%ls1V&>aPlBh++ zKNhlVr4Fbn`e0Tw9{l@VYmTSVmqSjrMnSpk;J$?~3$_>~u6@pX%C1=I}@ z=>()X@qYsHE>cP-a}xAAPvr#I%U~SGrQ8oxMnLxZ&&;LW5sC|tD%>I_K)P^C=>oFL zVP=+E4o~dhKmtBnPqy$lj&t<^X2i_=6~MJ3x%?x?kLlPBd_5(`%zqYXi6u#*eYEPr zFx&$UHbtKUxane&%w(ULc@+ybMQ8oW#{jOQ_Yiavkfs(Ooq#m80Ogm&SYcxW z2_Z(N&cMV>myQhOUqHZsgjir|r4ERNg$Yr+qEa{Nv;_vokELg&2pZSD^RuYG=@MPu zz55(HcP|GtoNPG!A`HWsAP61-m=}?=r2>+B0M@cBTiV#z_wR*)BP6+3FlGwiRhp*Do12^8T;?!}VFAk` za>HqG@`H$62GA<_k-v)YS*ptgOixc=Ao&vRszTc&Zw>|nV~n{E;4Xku1wWhL8flug ze3t40`)-mX-zO#}-jSRnIeCO+4?uDkzx{6wLt& z0xV$|o-c80I3teZi-4j4iy-~lUM+j>h~%z_tdLx^lLtJP#f>pPvVSZ)Q=qF_SvJztAEuc0Nw^Svdb`!T$A>g^j!>uUZ1;lau*!LL6;lvk28Ufk~XwwMLPC%PRfOZ1f zGy-g6zmnscozY!%8U6;Wd5FI{x{EHkfGo?F0Q4Qk-X^)|FrF8@pAvJGXhVY^egiP& WRuS9+26q|&0000oRDY}0T|_j)%r6sBnVIv$ z+&>ZBW99`Sx&q*wZQFmYyZ(^+$~;q3Q`?r8mp=t?fSHZB`vCwV@|gL1(=?CI&CNaN zy3Vkh$|6%!Q`?%&=C=S|jJuZ}Tr*Acy>1fZ;^-!8SeA7Rz`nTqSci)1x&_B^E(I6p z8DKzK*Zd1fIY#aGf{0d$Xn(C%yV+h(bkix}jie7B0GK()%rn7y;u}u^FU8$JzcBN3 zu%-eG2oY_MyN7=1)~gCIAj~`#cMtu-%x18rlNN!F!R%K_cJIeK%cY^9zf~`@1p{2KvoCuqXP6G>x1`E0Rl)F zypIadLfYVc#0wyG@IGP%kUn@HaRTVz*CIxMs0MEs#(mH8o(OAu5%XWLka+?8N45ao zXXaAa+h^vxe*m5hd%F>FJ6PCIfV8Dv`3&okEfM|0%&8E7nJ))xJtJb$ntIhb;@<{v zIEo`a(9a#u^G+Lv@nKT_M!jf7#JpCk)#lslT|=VUQm^(QSvf)kV7KeKd&=eV#YUsC z>My8ND*0luc+fD6lK@@;5ZQP8M06LxDbqARnxCJ)e_SXOo&vBts{Mt;tZm!pgT=0w zfYyvR@q0wH%FJg< zrP7J(f7h?OUDpW~s@3Xe01idoT?iP4al`Yx=cC%bf5e-nx#oypkIBi&oy ze|a(`fRBpMKbaK3M@86}Obg(nBJ@Ut06r>0C!z%KQ4t;^QUD(nLAU@ul11ncU}9q8 z_q2Q;*!mPYv|c5O&=F)%C=^}?P>i9Mt?)O1Cqvv`9>Cs}m6e(C@o};&>yM?SrIir3 zpE$am0X|{ocVp;fE8GB(sDOyHrK)ukf8aR)Kcplg<}1T6-bqSCOd3ea1Vx4yJ2Yt}G~e*x?QU`DjBF#yxKT<)zxp^z_^%X5uJ+S(iiMqqBKtxwdrP7hb#YJyvX=%lAoZl?VIx_?j{Ck80?IKu~bqo)OpHwQYf9n<; z$GH?-ux?Of8dI+{D6%`Ppve8TTJ2_gz2{&XjmE0uIG2jW;!gk`0I-NC4`4LnUe`cG z%K&U5xItprfu6Vtf|G-Ok7C+hY|I9eN6_WI01a5 zil71nkS2l(&;uzVr~n&~brDp6KFO*GD!?Ymng}Yu7RibTD!_oGT?7>%B>YFr%=~fO zy=(>*AY{_^5^Yd`ME``TM30lN1}%RGM+Fd$3NRq8&)3sJN6wK7Fd)o)JMJDfK}WAD zz4!ccAu~BS zxs#b^n0dMt6+6`6?N)&H0ufyyqO-MHZGM>hR}@826eS(}4*{H9G%>Y=qW}N^07*qo IM6N<$f?K>EaR2}S delta 1684 zcmV;F25b5K4w(;-y?@6^L_t(|ob8=YXdHDE$G>kT3GQxEHrb$PhIAWBEd=YO7|`6U zVDS{ISgJznQ4k6qYPFXZ1TXel5uv7q7J8^Xh^Kh!|GLapsS zea;k1n#2DFz)L}A>A>yb;o|Ov@!}7J?2}dGo7>02$m&@H==gea?lyN zVAj2$0`$&vK?m3>MAVX11?UlGP6nM}t1xrQy^;bpe<0`pQN^;XgkczmgU-<_DnOT5 zmX#P77&yet9{_kd=sdlm0&J1>gJrKpaQs%GI$3Spoz4> zJBSxR>fjy33Lt&(4&nsR!9R%@0el?%KLDQc@OZvKL>2d1>;-Th*&2p%l$kSLAKx&H zhqi4$f9v&e{eYR5-D{f)5Vh7T2lpdeX7(kVZQFkVh=c$DZnzgZR>VZL^~$oWglU@Z z5YaI|&Ujaz2h4n)h&~LBSyp0fZ0s-*odxhJ06*W`e@H~!uF1BoFIlH6Odd19ViReh5zUt348jbm-rKLyh_L-iZ9%@SY7Bh#UevgP604`)Q zf0;9P?%b)j-N(H!IXU?$5gqY8oj3dn-~}I#-}a2(h^eWmJ5PvH?d}00(|X0s zqaGi!>oY#;v1TOhVk?9b*3^e{d7T4&Fhk0OAMlAWZ-rybCD;=-@jLcL8+p zn-Et4bnsgwZUX4wyCg0G=-{_WC)xn%l8s2aSx3{8lcPe;<2z{Lss6sp_+of?c-}P4zX9w8kn-u{k^p86!+5*h zJwg;))g0QE8BI(~{8X#e_5-l|PPk2OjgOBXUs+kP%jNRpQmORI$jHcre?ExN_GU4e zOrFAj!w)M~yReN z<{E%uB1)jo|3xICH2`@4S54DAkW}Le!*sp!g+7!;f3HNPEE>SQLZR^5`i0mF;Naum`-@Ute06bg@x>?Bf(jE9 zar?uM-BKtNp6GxSCxC-g5mW#d(nL@JIv_;^6<`zME`kcMMdB)g3eY8S6F~*oCUFr# z1?Z8ei=YB{g!71*h&~QFOE;(h9uu`+qIC-p>K|b${-Xj2M+Fd$lLrDVfAmQ6_4PDnRcn2OVImFmp>*6`)6$`9{zgx}YVi3eY2lVO(yuafKQpYM7>Z*}bj;^hmRZ z?_$t7w!np4E_ctpr~-IEDwR47;C9eCHsDq!lR49FLnzw6qE4|`Y*?0ctzNIEiD()j zIkAYSK}7T8fiP7_h&I1I;)y^j22CsvcdxXd*MJs=6V0+~p*HB)!^P z0LdkQqRS-#fHk>*bU4+r0M5DDSZ#8JvMl$kwf6uXM*-gZQ-1(YBvaU@q%V>Wk`4i^ zjWPQ%#*3t<1+cLsZzWy-nF0VHc?G~oT9aJVb^Sj20!i$Pk_^easlhIGxxz4jr1~Ps zDCy06zX~CoO#v7}IFa<6niymJAo<-h@gT-{p3JtA=KuCjqj$!mftJN2pbO{RtSE}j z5FpFMrfIfgwI*Gz&<<(YzfscM7;~9OTS+g!PxN0}G+gi(00000NkvXXu0mjf(HV+T delta 299 zcmV+`0o4BC1K$IXy?+f!L_t(Ijg^zJO2kkQMelvQEVzY&U=so_uMq82u(1*Zzrex| zu&~%#KV-4Bx6qI96I|`n;;{w2WqhAAf`2+l$VoR3FM|l7M002ovPDHLkV1jsyj~@U4 diff --git a/app/ui/style/olive-light/png/nodes_rtl.32.png b/app/ui/style/olive-light/png/nodes_rtl.32.png index 07b20acb8952877ad80e59c8df79999b2c9ab288..c799fdd06924a622e7ed629a2fdcc917446fff9c 100644 GIT binary patch delta 489 zcmV5#oNCu6gFt=;3Zx*?;JgKC z$Q!sbbqYYd2NDGlio!!+ks{WuE7OGXiiFdoxwB3L`~G+VAu;uQJHOq#9WC(0qVENb zF`Fd!0lb?UN?uFqIp;0{-vB`n^k;5R09Ew@;1$3avtD&( z(MNC?hO3fx0dyrj9zYf>sVk}0X)XdlyWM`1BuQ7&(ljH5p#&A>wg(1Nph8=|An$)dCVWzD{$t$|Ji6XE=DnaKCp;>jdS9$0j#y#A&fJ< zy(Bco9F3BA{gl0e>wYis;0mOFN5e5IN%|G za<60pP_0&{Tdmfnh?M(vsA`f$ak*SxR@Lo)fvD=8h+E7JI}FgY)~=4Vl*V!V**W)J zM82u&RMCEGZ6(N7JSs>qfK1)1IVl1VG>Art=eL)H?*KV;le4Zl5rFQhH4LJ+lD)d_ Y0aW%$rix0asS@zOf>gm&SYcx; z5~>)PIzuOBx^!eH{{jLAB*X$!kvdc?EKCtG6+<`Dv;_wH9!p+is?xgYo!_DQGhHm} z{rJRj;+F$zPB)}oKp9%C))i~*5)sWY^Z9XN5YZkpuRG^fHh(uazmAUkD>Dqk=3fG6 zdI~vk&fOCU##7K>SZkNyuXzAyT5BK4i|7Rq(VXv?%zR7M(F+*&Gk*jZWD&i9(9{C7 z3(%$(pk07AwE*n`v^n(x8rlW?izG>=^E_W<=Ae0^6VPh4E;SmBhgp^_05}smUo--w zab{j%=HQJB>VE>X8W+?AXg4lYE}(F8n`h=D^BZG+Ip-!km$4&@zX}LBdXmPoESuk- z_Yg8>{sQ2}IJF#7r>Y z35c$7A-Dh{dZBT1D@$+zy616vn@A_M$;A&}rha+(j&COo&!!tDT)D z##mZWtCh7hlot3e7_~4lHd@J%B? zJAgKg0PO(UGy=2(XmjEPw6p{4N2k-7Y_(eRzSjv(Kpe*xj4=-Y+yijR_jLR@U9DgRcQ?jPo&*4!4OCoa9X>szCh+M%j2O_oX65E}+I3GO?1_N`PkyxJREuXu@ zB6~K=vY!(Z6Yoi$Cwcw|VfR3C8^8yW^GT9y^!xp-EX$VL?e-gE%ou?*N5;f+38>Np2@eGJgvwZj{vi$4Hu{mw*6vifV}nMu4Sm z5y1(t)FmQV0hW=Q#; diff --git a/app/ui/style/olive-light/png/nodes_ttb.128.png b/app/ui/style/olive-light/png/nodes_ttb.128.png index 3e0102873a491cd519ae3ba88b26623e8175fd72..512fd17ebe658228fd18fae57d616b3b2de01247 100644 GIT binary patch delta 1431 zcmV;I1!(%V4a*IXy?^;hL_t(|ob8-FXdG7*h0mR3r6{9f<8h^3&`)6u11?=SDqOg5 z<5G4Jr!XODlG2dM;6{e@Aw@#K5DS9^E{wYnP+@~rs8kUfb`c0QVv{Ybb>zp)O(TJk zR?_}x=e;}ke)SAAET`)H{cbSNmn1A_8BC0do0}hf=lK+= z^Xe%;nx+$bdwY)oTpee?5m=Ao_+BUyNS;@v*VWV0(+>gM9CxY_XgKF;ola-XcMw4K zypA=%!F$+?P+4m1B#0;@qFc>o^R3Su(&yDH^zG397yw}A3NtVH&H>@`>J|K20eQ{^ zW?uB20mA2XOaLO9DJIV7gpf6a4E@q8>oEbC`SW7pj1Du$0b~$8ui)RijPYWV%LOZw z-31ww-31JPPOl$_c6|gHlJ~v?NS{})ABXM~ljU6So>lt1dNshSVzP`5Gkeb}eO|pj z1FRBJUO=9aAfl{NsjT|W0pasHc1TpG(`nagwTl3*6q0OsR$8srbKfDP&#ULRfH;nq z0j!Tb(vT3*n=m{FP(FLH6lt8$k#<8$^fh+NpgQ(U{goxUM+{4UCwOYM9u1up+tyaGt z;>G`We}8{vT$#?on*aw}{QD5Mem65S6WqyMjYeY%z&AtO`s>clj<^3Ndi}8Cocm*l z7WiUva`LNjWf~TV+Yfjape!vQb^Cz;zOIyip#`LFKM;Tb(py0C_5%S30LX3u$=eSE zB7oEukiPvuAOZj~TR{5u0|5yjtp&=k{Xjqh0J2)34BHO`CV-R{D9iQ(fe8S}Xo0e9 zKMfeH|63zTj9fj|WS!fb)EZ9fpO0HL)&8Mhw@SO6e@ ztQIKa_5*dXpr{Bi}g&K}-Vx!0zsDR}_ delta 1402 zcmYL}dpOg39LK-gEVs0cNW){sIZ2f3$>p50VPbkxPIAqni^vdiw3PiOm+6L-j0wv@ zCy`6oTyr_Zax1zp)6vr;nL`l^=cj-A{`q~qKkx7RdA`s4)2mXelHSC8N2S<%oacVx zngwfnVUyPxan}DmRO&2orIk4*;f_k%+%wvewC>biwN6r`X5LEn*tFNY2(wcanfyw_ zJ1=q@(#ZIc(rqJpyN-DZzL3%xxPvBg%TddoI{9h3Mm9bp^a|x4ixz(yQnZ8uHIoB1 z@r9Gk1)}ghrVBB|6)uz0kFxf&FUK(C3orrCZ0d$SexZ4OTS-d)r9vM)bUTfyagWb2YBUDF9ii^Wjh^%)Er^#l) zYx+3q?Bf{^we+G8+orm@x@kKFLL4mxzwtUak9WPUgT{HQ~LSxF~w5P{P zk$RIGW{H0w95b3{YFn&-eg7=?SZ~i4v&JJwvQA-AgX_92gkw>CBBNc;i>xKhMl0`8 zU*nj}b@!dDsEGqme9QXo-YW5x-<>JqzP`Rqv7BAho7H{%imShO30vq95pl9m-pga2 zRmQTWU}f;NY%utuk86Qqdi^SN8ZkYD{G(1+VPeu%$Co_KTtp!h2u)~%2oe?o(2PcU z<0_eebO}Rz7{$mD0ihaQ1fz5?zA*rV2k7ZXtKp@`+ z*&ohy6cAvmkBcaz+?)s*GagTdBZ)Oi7ZyBKY7#2wFC^$-9>gem&+kd9c8y|QcLYyXGS*gJ;l(e9rpjkTIo?g_vu+?73 zsb9Ask(iO^u7_r@`@AkWB(ulOqjg(-w>lj(7;gT)>;7R1mp#v>;uhuse5g)tlyZlF Gg#Q7?vy+hk diff --git a/app/ui/style/olive-light/png/nodes_ttb.16.png b/app/ui/style/olive-light/png/nodes_ttb.16.png index 7c20c50b659ae369bcab0a2eb3cc0838ff26132e..a18196c8fd09d67d5fbf099647258a12caeabb43 100644 GIT binary patch delta 340 zcmV-a0jvIm1c(HXy?-`IL_t(Ijm?s=N&`U@Mep6&2sXMQ*abEr*aRVdfdRk4Li`9J zAovS@Ksv!fEVZ*&D=RHbXBS9{6oN+0!m_j1W&^`y0}&fFm2@2fIFxkann|Vr+8*lzSaX^HKz|sx(9y~)D1pDy-vcBK z0HiJ?`Q#goG0z@K0lb98w%Y(uuh-WrmCC)OFF(Lq`$_VBHk)-PlgW4K2&2&`k#qr| z+iW&FbKYvTc1Z3?I(I)W1OPymWtSx1Bpo~5djLL?B)M7`%?H!zG>f9h063~vs}HqW zZ41Dur2cq3eogfKp$`gel9Z$yYb{8MMI zAovS@Ksv!fEVZ*&D=RHbXBS9{6oN)&L)gq%7|HswLV|e9!+DoCGg7TqV>8>`UboVhr?#S-~Y%Rq1){yz$wtI)oP7z zUM`n6fGrU@$v&Pb07%pHOhlelbwBg{1K>4DlJn4yLNFK%(m0MIV6Rv#-WCdlH4!-y zkyfwQy9<3Ef=S7|t0H2mdg+`4Ff&`pb92uqA`L*Y2-uvvV3GV!ftiiwVercmqbNF7 i)i%>BjlK6*dG04HSaBFpZ;{CW0000iYL_t(oh3%HXiW5N;Melti4)j(*T~!D{2>As!Dxw?7hs?nI zKz8v5T=*X|vr5K|KM@p>&{>(_th1P;b6r@y5z_U#B}5@_SIwzg=RKODfFl*_k!e7(kRdK&sBkSvkU;tY+SVg033G)e_W<}P)3nbiV-c)dRV6AU5r&Fn@JNj{RaatN%< z?4cx(l%#igo`2oPSN;Qw#o`Nq+Zare7byWVyO6}VoK_v46aWB{A4u-v@=XY#zmM&9 zyUzf;j{CIR?SDQdg;T(MKK};b6YzTqW_G@hm2@eo%$&vv{+$5en?jTB-2$E|H0jnpoqW}N^ delta 426 zcmV;b0agC(1lPtg+M9=V|5_}LGlVVDx!_#K@9i; zcKQMqzK2@*)A$lW5eb{h1nttf*&Pe-HlllHBcej4o8{bdzd0ftt!5Co0pef}Qg@05(T{D0gz@Gsa8ud>G zO)0MkKtv7=2cNyJu)O9abb0PI2jHLA^^Yp&+!}Df`;)x{j6wjaIsz8+Rz&vVIKKZ% zU-%CU27^1`+P9*r-4FoK^}qmEMVAKw04kNriHKyr-SMe>TFqv2RYbOZtH5cJ@|LP zQms~NAxV-dF!AShopX;LWD^mow%hIbUa$9R@iixqrfCP*3_#DR>ehHX?pS@z0IF(T zwTPm~vbvQ6_^Fx!%mDrmfQVREEwU`LtZwB1YPH%Ka3cvM1+oOVtk>)3R^MN*H|gb| U2I|M{eEzHJIED=N3p@<$ zu7No}XDO`Jj_i?2E@RGPV#rNC!yGS^8SBm5kzxEmje#L;-_z5IYqd3b!>ppU3ocG~ zhzkF-KXf_cMTT6)TODi}+!x$T9HJY{7BSvp+9Jq%L2N;9M#DCS+$pCYIy3%zzmMh8 zu2WAx)V+x9c(GQ$eapI~jP))3BHWkcexWRB? z)sBPbRXpz*exCcV;K$MM4^H8eRIYcv5Na?MU0Ek^Q9A9O=Ic#QML%~Rs#Z^ZQ?|Q* zM&)jsV`rYv{JCuFHM#FQOD|?^O^cj%_kiGD1_zh(?9B%cueuYrpDA*hE#rsVhV`kR zZT7!D9P2jkxphHJCBsa^XDj))PiK7m@rSYC-lDUHpTpK)-~H$?KSSoMxU^@t*I6o6 z-F*Mu{^y5kdv=fX#;xD%?mV|MK4$az>31^+Bkm=O`B|!jrkrAW`GUETXTpglt3~`Q zYgnDq9c3@FGf4>;alh)a6WAfeGnKW}Rh}cK-l0Qhh4HV31GNqLVpk+<9S$(e*I8lx ztKmX#z*R6~0%PbV2jyQ459U7D<8@jlxGe7OU)vP|wFhF8*bbIh*=Db;^>?}6wa6lT zUh=cIe#?u$$UT(rQ}L`b{M>#sC+ua>GnEBby|1|kTc3*&uw?RmYfR=1nM(bJ$+4ofNZ+Ovd!8`N;3Z# Xgng$*RxDmz#{dMLu6{1-oD!MWuDayi-5bU` z9Ui4PUybitbmPRPH+Bua&+q(coUUf?zZ@1yM&r*?OEn}jjp8Tne&+=xXb?Z z*FL`!mcempU&XhqnFVWRGaQf-yvr>*@!QdHam?cN-k?7-!4yTMG8A(#2q5{50j8IzeVm@V){2%cfq@b^jjtQ+ERD|{<+8Ef7b zHK5k@l?>PFZ^<(J7R>)NwL`A8%j5T{Gwo+9&93bQdp-YzcT8#fxDR~4 zBb|Kaa>CyL#*=yz*4YWXoV_4K+#_7RL!`k)+$6A8;ZdAI8JLm8V7Pn1%2&)2%bPdu z0yCI9F0%TD$=3^5@N>LvQd`Z>!6I;p)i+#Tz)En{Z7_ptfuDFrh`fM}uuggAvCUJa z@812tS0hCJL%!kS1834_{G7Y>8&|_-?$dwc)?fd=H@`9d%pbeco1)r{k2m)1ODVl& zRrt*LiD1U-BQyC|?q|%MYhm5s!2qN_PyA=RB-dfKNW-=u#@rx=TWniA88f6WsIe}9 zh=K%#7J*bMUWMqpvav#2{aj6od;BJ=jcVtn`Ie~)ef+^4QD|4C^443I0SG)@{an^L HB{Ts5IiE~u diff --git a/app/ui/style/olive-light/png/open.128.png b/app/ui/style/olive-light/png/open.128.png index 6157820b161c0da563d9544d42bd162b9ed06db0..24eee1b0fb4aed061ca9d7e0a0d1c240eb0e856b 100644 GIT binary patch delta 1315 zcmb`HSx{4V6vqEIq~VSlNffIhn-^#u3lphmQo$ND7BL2bBmu-hwulgl(P&tP;YQpd zh{#f_Ad3PD0RcfmF~lTNMU5H@&CnQQ5|%+I`&N-6%}XEp-t%zgH|OO$^L=xUarw*T zS6%bGZlIt1X}+wKo1+F5&z`%kbJ92+aA+7;IpX%~LsxpVTm1t+(r5hSrYG4KKgE5} zrOhCP_U8`T`P$5{ZC{hN*?`qYV(!0Lc0SY)ziI12%6iZE;H}Nxxy{qxE5=jjO31RZ zmx;pd6tB6 zVLSpFZ%KI97VZbogsj=@#l^+18JeoGOs(>)%H)HjOhV-!*N@Gl$&-sp>4qE7x||<+ zqEjYwwej(s8VT%I<{mv{V5~z%pHD`2wDz#cIV@sWKJIgjO251}4 zjeB&i&Fl2fPnXJM3&jH&!&!c!BAz}^1Xd)h#$dKcJYd)~;u!de%9a;$b@##^38^5? zLOtM4>K<};&q~;Ic{d89N5h0x!OqtQx*@1=(@`vz*%WF~Js(Y@f;HKA2s*$#0K<`w zqkX9$*w)IjV3X9vS!9>66@#g+ks=o4xmd7Gy3rY&U4}K5U!Xsy)9KmU0!CY4Wi{dP zbnm_`o){n}Jbu-?>mCCE9mCXe2`|1V<4_;^Aiyhb8{eI=;L%G+n0E-b=GR_16OrR5 z63#r*DzR@e-IuzHz)e5!+64@@SuyLDI+O{I-NDSyoP z9Cb?uPy0@ka&@iF7_broRM<=cWY(-VG1WAmb4$;I`X(vXe6nU*#uzcCp;h@!Z9bSr zv^E{vcxY+Yxrq}Febot$yFa?9o9-f0byqxN>Q{*}6pE{NhH#>7fXOcKXB3ECC2tw| zmBoYeQTeXkPt2ty2Zw^G8+w)k^ZRd$4-@kQ3=Nm_4Zi%|pG&pF>9BbZLXmGijtQ52 z-bHM0>jG~dS>R?wJPJJPmIAR2gJS}KP;PhwK(yDm0TKN9xre2LK>!fG4VcIgfvk3m z*D3QhgvA>qJ{d#fvNiO9(^RA+{Sul!eNX3s^$j&+4RofXEq;ZNQp* zFnmXdlKZdqMA0;?O#R=-D0p35)sopj-U;PS!v7I%#`0q+(ps8pi=BRjNbGapP9LQR z$0u4Yrz|{Y)I&YkHD%j~Gb#D$BnR+OnK01>zM|NatjXu4^z51>q9pQL0jRGY#@d|L zeZd|L{O&17ho?J1mj7@^JaS;W(;VuCcpH+En`h?OI8xI7UxMD1U3nGyg!ExnE|=fs zIu)>VDzn*qjLRM9tf;7nLrw-->jeN0^}YQ-Dz UWvK0*MgvRv?+u{U?~cs;2l{VNS^xk5 delta 1332 zcmcJL`&ZI;7{@<+1x3jPnu5wqiKwIHC1)_J7+)a59s~N^FFWVoag&?c&m=!6Qw2I==A}O9IjgrST`rSMn^}p zJAOAv#+)6tMuU_qeq#MgAkSy^rwKQ5!bXONB|H;H)_2@p96;&iOux243uWWF_c<9a zLQ7->TdyZ~Jf!MQcx(Ua>?JF)?Vwm`Oz>S}HPY^o>aNC?UFYc87fVaW8*^#=1qX53 zeD@!xcv&eqaL&i5dH6hxR1r%gqS#IZ0SvhgkFUymRg3^1Spz=r=z>wb30^LGC_CmZ z^zmOzQ`&mMdaYJ_UZGGZ*H_$-J%D&SM+6Xrk1it;*;TLd5YWfvn;7EB=YxZTItHB0 z2AVetixWyGA38NRWnK5I&OWR8+lK+O2j1MbftE)1S~KHs)4UL;PALK+T|FS^0Xxv! z3n91?Am~yR#rj_U-7hg1UUV6W$lh?*#cE?cthV#6BL;&N7OQUhJc^t$nTz;+x1-qoes@N+tF+X$9@d69pg7huS z0k=$?a4l^*z3#Ss74G<_Eoo4ICx&tc6ep9=J!8(oZGVEgiHxlNYVKtlFBHPp^t#&xH$Ft|d$O#crbOpeCg?!2OiF0{2i#m#wL! z_Z+Fvn7QZnN%Y26&5J>YHrx-H77Ly0SJcfXU2e?v+uRU<+?%pA$(s9GOea;74mLvL zoP}esxY!PSn6+5RV>xJ0S}O5#a9K+~MymRw7XzfKLJSxVcvLcCwtCBf4XcT3V<* dtTwj;%rk+Di#K@^6+ zeFiUvVf!<;$a`8gw6N+~aa6G_jR!?sgOm$TXIGd-la^DeL#5gU>!NtNvaytRE% zN_oFb&~a6N*Y$Z_*XO`(o8qgaX`iG|(8n2YCuuqwjVAvru>GcKns2rPI3172!>;yh zN$LrL+8kd646FgyfBTIK z`Tv4Hb|C46?Vo**C9T?CD5wBz?=PCxHK&xSi1hlz%R{g Vcf5UbP#gdN002ovPDHLkV1m)Jt~mez delta 384 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 delta 780 zcmV+n1M~cv2d4*+Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L01m_e01m_fl`9S#kv4~a z#Ysd#RCt{2nZIrmK@f+3vlkAbm?F~QDv}FKWh4qy5~bh;AWuMn2pu3EgC=PZ76^C( z+*(3Z2#F>IMXI<02_*j^g)Je@_6|jeh2lHQ1GhJ8d|$aY+WGm@-tFBQSaC>FT(8&9 z_51xt%zO(#*+HHTfM%&w+CMxzj2+B>KSLlX4#V&Q5e&$+&R6wreA;D__fO`p|U7%8_ zw3Eh}`Hr|T(Q8RPGrteR@P519{weJ>5ARpNDXvz6j{-iXT_B>Z(P;FvR;z`7SvB)c z01-VWq7QRQGTkD*6JV{K0C+i1LYB9KcLIQXC3q^((IfVK9WR_{Midk6-9LGX4mnZOux6TN0&LKTiNg`2z z^!(o#b7O&;ALH@(D}ZnEnC?gv(ChUc0=SoDBWvviW6Wh{zG$sIBBF&hb=Ral1f8A# z6H(b1bA_2j=aH^R6X5jx-zN!b+n_HJRNn-Bkf8o5tSv!Z0H7^IQr|cvRu9ASn53W@bkVqjwJAgKY z0PO(U6ausZXj2H#4xmjTKs$gog#hgU+7tq`187qS&<>!@$_vQkRG69XW-*TjE58B? z0mAxYCn++7h`vker2;-*3+r=-nZHQt(*$%<#%lmR!OxX&jFW7&l#lWb`_+nc1pL;+D0?Ez>YeI+at9RQ6eiuSdGc*!sMvGClrK-usB0000< KMNUMnLSTYFkyniX diff --git a/app/ui/style/olive-light/png/paste.128.png b/app/ui/style/olive-light/png/paste.128.png index eab24e55565217f2c4f01afb765c525c757063f6..500adc30381e679f9532d129823e5f5d896e97e2 100644 GIT binary patch literal 1078 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSoCO|{#S9Fx?I6t9|MX)jP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IXpdt~FBFEB_jQk=7-^8Ml%shpl z(&Fs=vhAnO%mm6CLkuY`N={|SC@Cqh($`PU&&|!xE7mK|%+AbBP036I8K)28>4zld zrRT?ICgEaktG3V`_jb1W=5=TG2_vx8%TSdV$d2@omw94i^Ev>zK z-%mVroa4rlTWUw`9OMoqZQijfVJ(Z|1i>S3rl;v1KVp4-XZg1|@)76GnV-48`*2*W zv7n$}V#^)oKi;v|Z~I=B+4-BXp|-q!a`m$13_FUyvo>UMBpS^=`>y!>mnn;wZ`{89 zdqdP(zq_?_s;5aXJPQq#)t`R)^_|UIRu=JJShnuVCH>%&%G-nDLf@%c;3 zZZKRs{VyT^pK`gpxo`25>OQlhY!BYC?@aet`XpP^jDg`djM;E${2FM0Xh1Cz>L zOWbD)dSm9cpEc)D-rWmJZ{+syB?OnfZd>;{FS&$4^?kv{mqq%Em^CWfyM3ouUrc4a zaJf!#*B$O!J_kR>3Be3cL>Met9oB8Xd*FFpNc181wVG3_{sQfSxZ~I#*9*&RjlZ~R zgH*vZ>`Y>2D41T|7Q$e%Gd&|XhvD766SmG;@9HL2w*kG%kT44<=e2KI5;KRQ55t+_ z^A|-MDmfA-fdj$-7__TbS;-Z#^#9)x_^F&#OuAv_&7z%q_!MQBEDSeqRc|WQE5u z(Ana$3=O-dG<(=E_`cbAk#WawrEd|Qr|;?~^}pT3 MUHx3vIVCg!0DBtBWB>pF delta 875 zcmdnSF`Hw;-g-|@7srr_IdAXSXWw>^IR4T7diH{@g>#KqZFY$C#QC)A-27{2^(0kf zQ^~1Giu$U}+MnE=uQ_mvXgLc6w(nXz`k$tPp?{*zUIuETbAX4)1KZe+F9dcdtrY{z3hP;GwT<--d#EK zY-KuUNcDSh-^+KF%cTfUuWImJwd$7i&quRop5499dhMz#{jUnMQ=}bkZ#!=G?&$yQ zefy^Aq)H$7Wm~WQq(=89TSC3uk22S7*C!P-?6iNo-v!LN!Ners&hUuCL58v8^GbG! zQ+My)J)S!+-)io?yw5f3>szfGcD%4Yz)}8slEjBT!xwqUSMn14c9$;7XS}$(_h3Gw z^`>a^G7yvT&4s+XH(cMEv9VA1%r|}3jIA9%wH0p5>Ny_F78GXi|NWCAj@ynMZksYg zVf1a@nwRcdXVzS?nh~>pzIB5I*fC|#?3>Eo&P#r5lx zmgX===uPjx_q(;%y6IN+{u4iUGi~NQaAr;BtluY7ik{4|Hr(tjeZ2YMsWWbF0?{fnLX^e?`K>#$%#xCr80aM;mEupa7nl5Bduy>!vblB(Tn ziy!_kLQ9TX4$y>q;Ji#m{c$lwByjyK?5)@I%y`rp5Q(^s!vJ%1%T69dEJ&(Z}^yALf@*%HYB1fH&b JF6*2UngI09g6;qS diff --git a/app/ui/style/olive-light/png/paste.16.png b/app/ui/style/olive-light/png/paste.16.png index b4641fe17e1d0c5f660635e5f66c12a29acbfa5a..02fa725d3906966cdb03807a873c4eb0325bbc40 100644 GIT binary patch delta 287 zcmV+)0pR}31JVPKyng`zNkls#GAsF+g^LJ)C6*745kA`8m0LpCD7e(>Z zG|lIfEOLXC(iw1@^W*Lfc%5uxI=`NwfCw*r$V#26b9S&2yZ z-BY9!kyVVb$?xxcVhCXaT>VtRIp?S6ofrHT{|0}-pa3w&q?8iC(m8invN36DuudsG lh{(wyVpV-N#u%&tz5wN@R}=teaLE7w002ovPDHLkV1g50gPH&U delta 281 zcmV+!0p|YF1Iz=Eyng`tNkl_dR&9Uwda z7#;#q9%9XEg4-Y~YDTVT0)lNj7t>9KDG+c7j=8z#Bq+=Bpzr%LV3tTbYwbf_ z*KaXt(|{1diK66z(NCs| f$cr&%1Mm(abrM$vOG zxIsdZ8z50YK?@Q)fD7(G@oCm5UgCHcVL`D|dDnmbf8LR$1^&1sMpP8VKFKQp<4E6H zM9!UaFMYzT7&nq93E==R_C3871pr_>Av~!k9D%6nDS(~Urhmu*$*Et?%xt#KOjRoY zmG7C8d5&{klY1ulo<3TBDenem}I$5)CoZHrkS;$Z39-S>O}{1Nq&v@**Uk`p9Zi2Yyx1? z@h;Ua`Zs({c3qC_i8=u@Tc|2UQt$_gp}>)n!%pt3L^Ls$z{4*Fr%JV#vbSJ4FBuXww zUYBKAZQ~w<2ud1-n%Dfkq)`YrC;))NQ1jRse+6{TT>>~-ZGTES1uzBxk`ptVG>JLq z3Q0v>PD#FblrJ;82cTu6=LuX%y8V-qe39h0H-cm?Y1|N!W;R{c{t8Z_T)JV+qu0hF z`7G(FE{_46M;d(sc&xQ9Bn_HKtpNZ$R8=(res{alA2{c3T4q*F-o5$g0F96|1Tc)9 zYeVQY{OF(^G-nfZ0%kUI&Pmc)2%qF@ecg5w0D#PF7RZf4=nD3R6d(mi0aAbzAO%PP zTHgbbiY&{Dw(l|6^rZJs;CmN_Td?M_7J%fO-SZ-Q1y{kjt4c)-23gO}^(YkqIkOh7 z3QqX<>X!0{j~}CNZ3{iSdAh=G25I2~dIyfNY~bEt$oPgS$A^JTp|IEqJM5lh=RcqH zm(zf8p?q*mb@$mza?|`Ay0Y^(a=ug4Q24ZU`wf?!Vd;O&_c6R-NL!F~e7g|?5O})! KxvX=Rp zo%1UBw>8+ie`H!$Y|?3XPrq{Ay4U<=)8?zNO7w3%Dx>*q#m1Q;2D1BX4e#&Vz;@wV zEkDC-=lWUI>`x@Juc@3jP**q}v01IM?a^|Fk4$2{2c463kKai8{#|;)V$XH6H?};= zZ{SwAetYukncow*E0nJrzpr-`6>z%2bmQS~=a#b!3FcoHIL>9d9Dbdxv%mkoQ1X&% zpQkUdYLF6Nz_;KS>k8%-g^aHlvSJ#@6cW?*nDhD8?Uf?+%rOVfytlk|Pj8LqyhJ~T szOCljlhQr74C1OcA4^$#?q_}tW8+otxg0#U%?v=`>FVdQ&MBb@0Q0NDEC2ui diff --git a/app/ui/style/olive-light/png/pause.128.png b/app/ui/style/olive-light/png/pause.128.png index c58407dca7eab6739d17e78769623a505ca23b12..b2e9622c0c749a43671c5c8b47f0aec65e516317 100644 GIT binary patch delta 567 zcmaFO_KR(T%0!cy^(#DG978JRyuEIpH`!63?c+?Bu8!@6j-tzdYKgmD(QtQIntFG_F{h&B=&sgwC56C-Lt6Lcr+xqV^`2yOe_5(A13C!M zdSBJJYE_$HVP0DLyE-Ak+blo&p*#jGus<}Yajo+%U2&<%qZCs zxBmXF->xn)R|=Qyey^M~DM;#k+UDI>=l-nRQv1KEU9YXrZSmr>X`k(s;!Fzn?e?$U zd++tGx+|Byoh`ia&B1u{luOpe)i)n>T)vxkJ$`N2{MQz1w$v7HsbdZaH8t7XUmCl( z{?WT?&g zEgK@2zMZ|an_-@a+3GE|n@a>4{wYq@XDXXKfk_mE>p2`^UNi3ay=@6d;p(ppN{_rf zH+$VS4;S}80Mo6W@aWxdv1f1Y)&?E6bbUMf^@g{NtFOMw-haP7EA70rTA5)b-N1%-_#4{<0YuN9#?$&(?f!InaOQ-_z5cmCpJ7 zcvZqaAI-fp&!&}^&dChBw=dGV#PCaaXeh7pqdRBL-TAAc)K_fx{@v}49j2SJ%lFSZ n|J?j+PSyG?wT$QycHsYO>u){mMsj6N&p>jXu6{1-oD!M?kfAN%-_c>=2R`185tTXf96fm5y8!g5`JN;uTB@~pSmr-=cN9Df6`Uc zU-kU!-2MK}-?QHPH!giEoqa{#;;Xe{OUnHV>Ca?Z1l9@f3BIy#qZ2S>sy|pi}D5hcO?)PdlHWz=dY%1@%Wq$1m-Y@u_p|Zu?m`_wK&mSL^0|TO2(u82;?v Y$Lx~uH7fJn2_BH7r>mdKI;Vst00zDRZ~y=R diff --git a/app/ui/style/olive-light/png/pause.16.png b/app/ui/style/olive-light/png/pause.16.png index 072327c48d5db9192029f8351c03105b62cb8405..ad34897c7c25d12e2fa1b9951d0b616ee0700339 100644 GIT binary patch delta 151 zcmV;I0BHZq0=EK?BoYa5NLh0L00Xc900XcAC&Uk}kw%AlWl2OqR5*?8lCcedFc1R| zr0kIis2Ct)umTgY0%I^hDkktAX(;%h=sP+%Q6BoYa5NLh0L00&_J00&_KmBYBUkw%AqbV)=(R9J=Wj>O|HIj3VaQn|Q06~zuskNCOnaiL;3lhdEM?_OTAG-uQ{NGWD{ zCUEH6wX-j|8~=S%c=<;9?yH828=~*LYB(R*z$CJOfmOqSacRR{uu$vg=&8b&?>*vD c)Z=@%PeNlwe#lIqgBUzr{a9VrIVCg!00Qbq*8l(j diff --git a/app/ui/style/olive-light/png/pause.64.png b/app/ui/style/olive-light/png/pause.64.png index fdff29653c61c0f6be68d44a8ca809999bd69927..5b474fd73112a7a4cd3df7c3987ffa7aa5305c0a 100644 GIT binary patch delta 350 zcmZo+`NKRxMToP&BeIx*f$uN~Gak=hkuuS(y7e1iz#WXNymOeJvPC@Fe((O01shxown%Y4yE^l1#w9iZK_Hm;|HQWz zZ_V~8mxLRt%lE(9ci;`ngSA`BVx~Q9uH0UoZWiHXIpd~r!ydz+yMG@p-xOHxe#wV} z;hO%Itt#~lPfVS6TG!mqxp4Qrk`Yj989PIP?3B)3x3{J@*gG1FPpmZ Rk2nJmc)I$ztaD0e0su|=mp1?a delta 358 zcmeyv+`=+JMTw=@$uool2x>S|Iv5xjI14-?iy0XBj({-ZRBb-#iDvEfN}eu`Ar*7p z-ZJ!JaTIBJSjDBr<)`M>{QN?4g+R0AF}b7C5;I;{rsO3wOMhqcOSsVMZ0_6mFMiMZ zZ5lJyr~=Jp_#gO1=KSXx^~}zW_Bo$ZKk_T}Sw1)SY%h(qpR@DmoNI^IKH0qF^;~t& zOONwY-Jf2YvsETn?5+OFx7)i7>$k6{Z0Oh_UudkgeOYD0oX=M~W(V#xwVi)p{sD$} zOnE#H^d1}|pJB_dvd`^K&#AR9D-}N4JxUA7^F6O#aN#@i(!H0;9-q>+vdp*j(X92m z{6*=dno^!>?36ljL3hvfljeQf^F(SYH^_VTa~U4=CKqhe^UniuJzf1=);T3K0RTd4 BnsWdE diff --git a/app/ui/style/olive-light/png/play.128.png b/app/ui/style/olive-light/png/play.128.png index f183975b7e9641b374a4364b155f2e5f1bd07fb5..6a1cf4af23f3a739af60c817432cd2e972bb9508 100644 GIT binary patch delta 1347 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 C(sm>O diff --git a/app/ui/style/olive-light/png/play.16.png b/app/ui/style/olive-light/png/play.16.png index 4e14e991b307ce3383d8f46f7548d40fc2e88f86..155a1fceab5c729eabcea4e74d2c8d3bc24679bd 100644 GIT binary patch delta 221 zcmV<303!dS1DOMmBoYa5NLh0L00Xc900XcAC&Uk}kw%9B$C1t|Ni|eJAC-?;dxvNFucIX$aoz}Z}|TGyEi_~Sb?^-HjkW~oDxZz1{44Q X9W^)s=I&8I00000NkvXXu0mjfDAQ&A delta 232 zcmVg-|NkmbW&kHA=T>=nc|(#6Kr>8+k&$tQ zf`URGF12_KfEvR5|Ns9yd3pH-%F4=OBpZMPtp5D@GoKOzumVyHIL5-ll87$ILP!@Q zBjaBN28O8*9z2-Bz`*d2Bm)>38K3?60000)HX4mq z8UiXt&R+k20l-F~PVc(8D>m?^S@AKfMY#=dOn3OpaqPGq(VoM^SWt??d1nz=4QJoaEH5fSJL}x1~~P zGwyJrls3T39{`R-q;9SKSMA6fVCH9~)S8IYlhh~P05g99xU|+@5RpsTXQ)7Ty~RJ_ zh=>kF z=J!kmwAP0rauzBzgCMx*cDsW#1e~aUfQZz8m39h+!mCnhH4^~<3uB}fiRe*l-H3U{ zL;_H;A)j4>}tsV!Rq5RrKRcS@=ATCFylxxfelaM0`Zp0(E6 zh5!ISM3w+Fwbpx91V$2bB66ve+P5MQ;>fB15q((|5Ru!c%*-?f6VU*`6*E77WiCKO zZ2-s2%yIH*UV#93D3waPafbsbZGedS08W{?<$2z}dehjzo9nvU%-l-SoOlC7WB}YS z^EH5B(sLpOh^Rk$Y{Ga%bkgZ`K9dgq!Ho(Oi^U;;%}}Ws1VP>ReSgy7K+I2RrBYcp l#;iDw^O5$aG$+S8-|%vLLCV?=&HVrX002ovPDHLkV1gbC!Dave diff --git a/app/ui/style/olive-light/png/play.64.png b/app/ui/style/olive-light/png/play.64.png index c869f0d121b028c00b110bee73f0dfb945d9ac6d..be962eece87836194f5a318410dbc24bb91cd8e8 100644 GIT binary patch delta 755 zcmV9|~uo1~Wpj`yP_^T7Nh$5s-A-0MUY%Vu@ za7~1W5t0;%`)uySBAPqqySKAsKJ5+f&Ak22&X?N}i9{liNF)-8MD`@m5*is9Ih*JC z1b`zXw?t%r$rv-&Y&PF(c@%+40BM>|lf1E`0WiO@u`#orHyw0ohScjmtieq z%v7`4T=MnP#`p^4d48>jVF}6C*4jx8PffflAWhTHB=`4h2z)TcOfN4lfAjU$!24gww1D{HMSYaSuI zkj4PKvDRKG!`%BNXsvB%OhiNkz(TE7yW40qerjp%MhF$~2a@Nux3}LWNpfsZoPzD|HoMA07yRd)u?g+vssoc`ij&QCNfX}tdpF{vTR;MuWA8&Avu+0S*9gei7fzt z0A36a4`0$;yhsHq0Kj*Wcd{&7bk3>k2VDVwosTHzHC}fABFG8=@QdU_=iID_csD!$ zBg6pOd7j^DwOStsVHVUD0I*Q6*Dnle@gjj#K=*8S&Z(U3{SZO`>SudDl(q$mJlp%B zlnN;NZ0`r}3IOn<&+&zy?fsxp0bfPrL=WS(06cKcJrNNq_^P0BN9b7(!&=6e%g(u0 zISFX-A|f?kfwi?YH#9U<6OrRP{SIJ$b93{0yWMX4dKH1%MM-PzDG`|fFh;U2BA=>o lQ8E&VL?V$$Bof)9{02$n5TaAN$Zr4u002ovPDHLkV1jA|UK#)Z delta 752 zcmVuLB09p%n?$sKoMqYk+S=NCsTxHfVu03q2EdIWKey5}o$YqJ z8xpmo@it)V$v^tfFsGE7UR_;X_N^z)K3@SMy0(j9I?J-x#+WIInv!@Yz!>w1nfK@T z%TkggGb<}A-+XIJ;QcgmE*=0*4hDmF#+cK-wIwJej?8?JnICJd?@dll*2Bf5u}hMR2Lea{5q$@6$6CASoDm5(#*=i!n|qb=f&L zj|wdw0F_bUo%qaj(W}YCT1i;4-K9r0^ iB9TZW5{X3iD8B%T1MjFoS{N|^0000$*lar~O@l2h&%P6Ru{7b*DW|`pyNeC8+FMfhF^$P@;_XdaX+1Q1 zd@^}SgK^%LR&K|2v2@v+ysuk1rR~tO!K~BXP~Bb{2wUK=M%gkrRTCBa-m*W`}&snd@4vW#0OIn&?&`u$QChTLf;R? z%unmEJUK7&*z&VA(wArdFeUt!42n&nk2v?v0fV=%WvT5>!r_%?Qf1kAouCQ&vfohi z)c_(-qkMoOsggzU)$LV=#4Mj#iTg2ED>}7u0ZE5zGLXgs%PrLwN%CN3b%iOXTRp&7r zhIkMVZONCQW*x|tsb`-9K$2Pf1kJs(s5QynWQQ|u3ypNa=+HUGk2C-4+cnif48EG+ zki5RVKNp)=WwPa1ZdVN!t@)}HH=f4X zU5U;3GGHYBc)T){+WkiMKH&mQtKmGrT)*j*j0dN;h_D8ehdYbbZG5Ft1Eq}vTKMuX z=7kB+bl66H#I^skUsqFeb2GJ{0LPK|h>3{_kNRnt$5|2`LLiB~=C%^~wX_UD*EK}U zFnm`>Xye+qoi)cA)qgvW5_NSQ2e6(-k{^wL|y*{Nx2s+g4oxt`u;WK_#F=Q~L= zB|H1yY-F^%^jbI~3~XpBEI5-Ji`2`JH(I>KmVoN&>dA~DYGMZ-f*%ejlvsD)9Ssu` z?A)u#j?TEWGL{QCckY~m?L&7Y;Ht>{;Co!`w-kT>cL=)Fv9_4y(&rf;SmoP#LjBR? zR(9YezchY&Ca?!oL_ul~sat9%jEi_eKIEM&{wk;F=_ z(IV~vpL4O2+Xa7;jga}*tvALk0_{rfzFOS)FP2PUXT_0^i-;_=`!{hEtpxz;Q>?<6yXNrj2Eg^ql|W2=;dCNH}tY+dhQU9 z$6F4#TF=dX1;pz0N)jJ=fz>IB#w%mHM3AwnUGLsP75x zuBHHNV~G)0JPn>7M9B_{zDqCKnv5wy6F-nhq(9X|npeG#yHTVk_V|AW;-pJX1f}#OfkCvKoe&b9|mjr(FHn) zdqblYft=_Uz4DvC%7!}bhqW~?-*qgRSsLlTOaN1h14+T_=3OA6IBfFoXJHsRLEypj sRwxuV!2PvJ4F$wA7>qruUgHvJNiF?Uim_mJa|Kw1h(C=hbD+fi3rpmyvH$=8 delta 1451 zcmb_c{Xf$Q9RG4Sy=b>ZCs_-*bPgNyG^vTNg!JU;SRU@k%FT7_5R`g`iS*=^{-m2*P?p( z1nRDWt{Ve0%~%lC2iy}#V<{xvKN%iFcPeM*jd6CEA<25uiKd-0U-*L7hW^~IwV5C` z!Y$E3nTgR)vf~%<^{jmV86!qDzirRb{_*mY9LIdxhVWz_GT*6$On`r#rtcakxv{T& zkepoAJ+FH7Vse-vOoQ(0cW=-DKEr*4T@N`QDmvBBwDTgnWiD0C%+AhElgs6@`uRW| z+q5qN{!k>R<&;KlXIFp@-lXMaA-w<&uD2#(5R78qA=%5@x;J~{cEw*xDTWd8lk(Ds z#m5G{J4Wk5X8U}Nmi*lFEozOUMJRCu4Rm0_H|x;`#V@_n|Ji95Qp)taKi@OTEekIi(L^%&2Uu&wl+8Fh zHGSm#CcwoV_{$9V8<~-$>rT+RiPk)X(AdEMe)0Sdax(_i^X4@4fgGB=A4K4(e&Acf zk(KIe^-aR1Vz|a$)y*%-Rj03%)s9AJ?#mxvha&icopfQ=m(de?{E~y`SfLI|f~!wH z3(3Uh>}Zq)Sk-ufmQLMvtSMYq&f3a36v2yzJ*+D3Y5fmp+Dpvw~V6Rs@cNWmTfip@~Ns{F1W?%HN|^Va?tI%yW^^UCAkI zjv#<5znQ=ob4ll)VN!u>lL}95JCz@o^4{(8)@OHhs${q1n$-XT?J|o*?RxvkKgt!1 zNmp%-zZL-W4QeL^#(Ic!!WhK?8lcqn%`J!ir5 zw!GHCOOu8T_UqxL({rgNwv_ivhO?e|j<_wNem)_?x~nL>zwIv}P_O(Wo#Kc4?H@qq0RT7Do zl|Wkf?VY_U9%XC~sVbE;`VVK$%pHvE$V$7&IYI^?|np=h7mdKA`p zWfOc8p`nVl!Af0QAa?ootwHl618cSny9x7+ zR2ByoJk^{ivT6iAsh1sNZO1%p7TroKtTOd7V7QdHjlGERetm^K#p+Bcv{RZL4vOKl zgxB`Zzyj1(6*!*N9#uCM9o(yB44{|~KHRxN)pzb5U3}F8@vJNd0C<_$Ig7w!nTuW5 zaVn#%cGG@T%}%f98c0+q1-f2Z`cNp`VqPW{ZH{gA0IOd(sCfgDLTqF77{($`Ms_BK zDPY+8lo}t~x(6g)6wId_ki5Pfs9hJ-Ff3`|@pugQ*5FBQQ~C>?&(9A4+7L=C-(Vwc T_XYcPCTp^f*8!005taEb!!o1d diff --git a/app/ui/style/olive-light/png/plus.16.png b/app/ui/style/olive-light/png/plus.16.png index 8a456e85dbc47ef4dbb98b39b8c851cff4b11ead..b33c1155bc12152065563a1dc47ea199c92595f7 100644 GIT binary patch delta 277 zcmV+w0qXv~1GEE>BoYa5NLh0L00Xc900XcAC&Uk}kw%Aq;z>k7R5*>rkugrgKoCXW zEEllc&_sCG1rjx>pr!;V5?muKM?kc>2Z{t|fC_q`SZ(O2>=WeE#E}bc6e|V4n$e&6 zGk*pS#L*7Ug%EDbvOH^=<_pj$fvT!zz@wzAq9|5v+kOsC$qAU*q?ev#*US<7;$Q*m zguM4R!10!NFuRa+xrtvTz4iKjQ%cXk+5kcbcak2)Om@!Q#~7bF3xh8jYvJ0=PJ7%` z(m8;ceE{zrA?Z7%^s==u1n>PEm~YZWN@+1v_y2F)CGgXWSGl6>4FFfy^$Z}!xCGYY bcH0ww*ndC>6>3^b00000NkvXXu0mjf9dLg7 delta 287 zcmV+)0pR|$1HJ>0Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L00XfA00XfB^@Ht6kv4~a z+(|@1R5*>rkv(n#F%U-IkPGZqG{|-pi8`r5O&KJlMZs5%^~T@)!Hs&j!g|iRx1uP9bzScO>tx`)pNhyAFfPk7R#mlatdcVj zkwNlw**0^at!_4uvr!0P0`wF1VrC<901;UMzX|(O)gRy}0M5C05&7&`{3FJ=IFHbH zqBcrLcr~-f3lMoWv!_$MF|&2T_NuzPjL@VI!pzKOrw?;goj2v(|BTlR4oMtyN!c9$ lJ@5S#AjbF&9J}?_QvW#sJqQrLhBp8J002ovPDHLkV1n5!em(#I diff --git a/app/ui/style/olive-light/png/plus.32.png b/app/ui/style/olive-light/png/plus.32.png index 25283189a50a1a7c2b1c72539cfe67861771d086..9abf2bf617009f69253af1f642ab37916d128620 100644 GIT binary patch delta 347 zcmV-h0i^zu1cL;SBoYa5NLh0L00&_J00&_KmBYBUkw%e!PQySDg}-69h=Pz@xTM&E z3viF{*8``ZprEBd3I|CANVxzVhj6iVB1I`dG9C(Iw3rAb>jVpFU$;;8n@>BtV;Pd# zX{T*~#JuF3>jBrm3826eaOb^$T{p|d0Eozys-6edg@}~E?Ydb}Td1moCEig?R%{RR z6}_ziY)lD%AOUm^@NE)0=X#4FGa&L>{i3OejEynFqA1>K(}YiCS#|?l0{sma2iOG; ztE$?Y&*#sz8MZ)x<1G|!>WpCLyEp??xCjC2ui926B9Dt&K;sPLdH$lRePEx@o^4VS zRUKJthqKx2{R=22$vIan^S$>6>t=O62NFO6__qK)(I&j3VZ-1JoShqsEN{tJvT t!?G+5aJm3`u-4wkWVMwLIZcyleE?yEM;2R01DpT=002ovPDHLkV1lG1n(hDq delta 363 zcmV-x0hIoO1d{}iBq9WJLP=Bz2nYy#2xN!=000SaNLh0L00&|K00&|LIC`1ekv5Tk zO2kkUg}>|gU>Ffnq!g0E4Y-f-uUA(wg@vt!5Eo*l!fe3KMWmRtGZ09p!Q@(KAc3Hh zm&73C>+T`%yu*(+O-Lwste$vR9^xg zz-?16t0feXd5v~#<7E{!Y%1=0sa|2ufvyLYR*aMETEZa|#(!<0RMC6>($`5e{@^VoQP`uUp z<_XZEsGI@Ubzk#5p8*Ga?OB(sfd^wu5XW&=h*sYNp67*idK5*6O}z&117maU{{_aFAWhSWh@5>(kH(mL8?Uwqmfduu;1g)0O&J>P@sI!j002ov JPDHLkV1nhAp$h;2 diff --git a/app/ui/style/olive-light/png/plus.64.png b/app/ui/style/olive-light/png/plus.64.png index c4f69a0c2119e7c837d95d50bde6174f092e0bd6..66d406e273a51eb905134e9b5c2cdf4de413d6f0 100644 GIT binary patch delta 735 zcmV<50wDeM2Kok&BoYa5NLh0L01m?d01m?e$8V@)kw%Aqs7XXYRCt{2o6U~WP#A{a zulx;`5!cXxj*@T}UVz5Y8*nx=cnK!n%ZxF^opCY7@dCUD76c=u)0L5A8V3;%^tg}( ziJVe}o^No@v*f%ttKGFM>m>k35%HyzM}xtjugghW0hLPSRz9D951gEq;qYgfZT)_nkXQc+78BI*M;?)7?KR2gLf01$@ZWvNtp zlgVVR0F;Sn7eH>qo*QNUSGY?=uY?dUeBb|n8k^VT1=n>y{Y~EUyhd6si`@9TK~n&? z05_%pZUJsg0o(%Im;$&3xG@EA3vgo!;1=LU=bNI5-~A<`?`gU$qVo*+oHQtrO%sOUWwly;D})dLDges!r3(OU+qR#_4KV*ZT-V*<{%FczFc@w$zW@#3xE_f9 Rt33b!002ovPDHLkV1iI*MxX!y delta 730 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 delta 1706 zcmZ9MYdG6^7RP^oQPH$x>QeWP`(;#&CR4Jsq^L^ODAiU}5L0m%gH$!q1Vwaa(drC; zil8)T8BJX>s?99h(I##ctSYtbDni`j(r9VN? zIoXX6psEl<^)maG$z5h5!Q({0)w|NkP<8-K3%Rn)cjlo*8lAtz@Oh#`q5GfTEG^bB z%{zd`(yg^Jd**6geFBc;PLjOz2k0~xUG=X_PDlq2g9JQ z&aI7U+mfZlrSh(4^x4l#JI4l=x15EHS;u5Gk*)EK18%A&H<4ZuCHZs4vytw}$;s67jU$zrO|h0Q zsjQFm&lmsN^vRRmYsRdO4Bv!VN&GiLFr{1=((9Q+eiCF?JfM7T)OMEZ!h#K+&JMKn zhkZcX#Q2+(_1V3gNvZ_@$k^ku0|X+f4k~*y`=W#M41`Y}3p)_&UNkUkPyXw}zUL-+*!J(VVJ4+d7}&H~&nVGNCN(y~d<4Lku=5+P&*t0REIm?9URZ zv@btDe+ju#*nnkoIWf!8WM#ZFKRDqy>o{1tzz_%Xvi1~#?ZG(eTU$y$*Tr4Q-Zwox zy>Wl{wk}JLhCYF+*~fOq_#`)ybwlwyE2Bb#unXgHSNtwrnsA|nXwuLPUO>NhCaDo( zD2GKe#jRX(sN-B&bZIkmwF}-$dE*5Vh9)M;d}{sWFp)@o8)FV=CYzgRi&aRqvz>Z0 zPmR^o)n)XW*&B^tn3^i+nFNG6=_juMaQoGS{MH>{-q60~E(hi<3R?i?tqKzY^Dc#T z0x#-v!FNXNd+pRrZAaF|CbRFyba1adv;>F5Uz39#40ttxw7Sx4IQ*?+?eKha)yh6S zg2sIVfxS<%4)&QY&BQ6M?+at!r}{0btmx7LVNtWE5Xn)j6;4YP)8-mx5NGQHMnQ+8 z#3^ND4YJ?=y}S76+=Ceen10ILH%K&8;_N!F5wvqbqIl1oEmIBJHj^l&D0o+!206v< zfU6a$7>Rz$=o%FG=<M;YTsHg-}rl1{ru7?l_K-|Pq~Ld;PAn<`(B0kb-WE@_ zWL6_&OsrX{mJo=2h`-QSaJ$krRucZsrXK={Jol2)($|2aMMM9fB?mw-I5=1mKhb<( zC;=phWj%S?5chlGBQ<)()-iBc(dBj@0MHc7Ut8$u>EVI=QzUQ0C>;PguE}Eh+N9-R z3at2wWsfmvguQ~#6)}s73{0?DIgizVF*b`IWyErV^}a2<13)4C`x%Xc08deA_YMY< z%apUl;{Rr$!W958ST6>sv!GFop^lRpkt!N2XNwpGL>YgLMeG&W-nPdU0+G)GoS__6 zky5Vb1sLow%1W~YVGewLjhEjc>kdF2oNX@C@9*+l4OaHOz@5V!;!M)`()@f{23yT- zQs?4%6q+CF|=c^BJ}z6`4*w$?LUI6)6T zk0^wghFllebKD4GsEv&`yt=wtsq;<9E&}U{;xxj?OLo}raY%$+yk}Jk1fQXNxl5Xz zmBfb6ugwT`EG;b^lyE~mYrcp6NOPSl)%UxO0Qg#e_$7sBMH-WuR-Xq^b$^UBf2t`j zFP}gnk<=T0Wj3ureau5fMy|t?lj-Vsb^L5xfmO9S<+|{PyWLeG%S@|A(XrRB7#Ak*KBWTCDRAIPR3vti%a^&MWV ne>CQufA*hV`~P9fy3rB5Mubn}SR_huHGpvPJC7!}u+0AeSDFqu diff --git a/app/ui/style/olive-light/png/prev.16.png b/app/ui/style/olive-light/png/prev.16.png index eab15ef2470f8918a48e7aaab0336d0c0f126910..e65b65bb9099d824553cdeb233a6f878393c69d2 100644 GIT binary patch delta 295 zcmV+?0oeY{1H}W7BoYa5NLh0L00Xc900XcAC&Uk}kw%Aq^GQTOR5*>zlCg@yKoExi zxg<>l3lX{0j^GD@iGPQp#Rk-}ikPMN!-IY_rf>@5<}g^o0;D*L7#i{Hl~X0hm+* z0CX!-jf$dwSTb{1S_8BHR2LTjg<<%iwcZ%Rzw|Q!0KoISj^j8BW`1s1P!F(ed(F(l zYr{bE6K+x^Kq>W3MEkn|S(be!Niqd62XOf_pcJQRy0R?mjfm1)0q633D~{tsp64$_ tv;_bnI@Yed_LYMm=nElQ4XGcXFF2G!!AxLyd;kCn002ovPDHLkV1f!zfVBVs delta 303 zcmV+~0nq-%1I+`FBq9WJLP=Bz2nYy#2xN!=000SaNLh0L00XfA00XfB^@Ht6kv4~a z>q$gGR5*>zlD!JTFcgK)O&kh>gNRw$QcT6g2XJ(C(#275@j(P9Cm%s@bP=DxhY%N+ zmUa~9LP_J&Az)j77ClpPZti#Pg#dpgDP>zq*)FR)jw5~FZ_BV9N)t*ToBO;K>9Htmkxqpn`PM)K=2lTh;Br5 zGrcH^&PkGt0UYu-m(s{rU)gotju4_=G4&7h0D5sY(@g!Hf&c&j07*qoM6N;tV1n*) BfTREb diff --git a/app/ui/style/olive-light/png/prev.32.png b/app/ui/style/olive-light/png/prev.32.png index e05e89fa9a972e00dfa50162ef7a7ec2c4e9cd5d..2f5f2611e59efbb0a18bfc543b4613576174a98f 100644 GIT binary patch delta 492 zcmV1&IZaBoYa5NLh0L00&_J00&_KmBYBUkw%Aqw@E}nR9J=WmN94)K^TSK zJMTc&E``?|>@0VkfsjhEQLqp}j#Ofo6cL1IZ>v~|BBZkr)YeARSP51(3PEg-nOV3h z1PhxJvU|_wEQ~wHZFbEz_fVXY0rEAtIWa1m`fxt zko;z?{Tf<-*AAMI&m>)+)mH%QEE3%9cF#po^ia}RhV}#n@b`3rlbS(e%vPS~ZzY+6{`o~hPDHQQTj_K&6D;~QC)?MYg% zoIGRU2_#9fE$KmB!G9<-fz7(Z%L-I~@QMPj8x?TQy_9qxz|Tem03c1%5AAk)NOHds z0RR|{Mq}sPZ2-F@r>8D3Blq6#PN&l?00&J7007c7{hVdlO_HA)5deVkc>KdTcL%^@ z07rFC3S@!02zl>cwOXxP0Mdf~VQB%9AB*aFSZlveCX*q_cgI>Uf;pi^4L_w9Nv@IH ix7L0svv# z$Kx)rUyA_1a5x-z@9&Aou84#)7nm|}&h4t|I`FFw0RX)BUni5v9bm5(0f50^@W*?< zDI!mR!zu;Fk$M*DoO_d|>0Q7>A8m@r??nW@MCvF-QT!Z@MqS{;k=Co&%xOMKuY?dT mWm&dg6vekPvrCqoDSrV73yqYou+0nr0000j4auLA6t&g4>W9ITa&&uoC_Ox29gT|OM0H#O|i^x)vB)8h__TMh~tPM~~ zHAy}IQ2!*<6_Jy^Oc)y*+ci2mdRatHY!@eaBg?Wm+q{W&ga2p#)4>BkeJfTvtyXJl zWMpLVbAtx}5&2aqb;vfiwE-e>z$NAg(=?qi#@qvcpmusVNs^y!1%@0t^@C%~it+LB z#_;g)RT25oqS=(Kj*9`_QA+J6IVU1}Y}$#)E?ccZGoY5H>2D;@iiq{=>B7JmFgZCn zUKGVO5t$Z|%5*Dnc_)-ohx`5hqKHgatsQg)?6kL6K`;X*CMNb7W3G!x8mbRKm{)*l zn$8q|MR7m$;DL%)faBiomC6io-P?Urg#nfC?KXHdAk^M&gSQz;)AU496c0n}?KXH> z0nKLff{4rx>a2fA=_^1fbx1^J%g*bI(hYDqlZV8|cYyVoJS3$XAYa3a{{f{NKys<< zoIWYt0AtLpvUB>RbOZ7{e+=M{vh(`FOCh9xwY~=6BFUbQ{AJ>;64Y8R)M~XOBwzT_ zC+mFAaF z>G^zhb@g?YWxoKp0${UB?avY7f$A?93+X`44V2qgq z(A_4~-HMe?yWL*e*w{Ema$&nTNdYiiueE++o4aP)pxfh=1gBuU0d?j^ZN^0A1V z_xVT3Uaz;=>2&^TG#bxEWH*2Y$#nq#lDw?7zUNCj5{X12kw_#G`389hxc*L^vPTY3 P00000NkvXXu0mjf&#ALy delta 880 zcmV-$1CRWZ2#N@hBq9WJLP=Bz2nYy#2xN!=000SaNLh0L01m_e01m_fl`9S#kv4~a zC`m*?RCt{2nlWe;K@^7nw|fT%5ibPskX$lrYE#&13b7L?DKJAj#gx0$r* zQZASK!Z5tS%m=z1Lqx;6I@$)Lfe>OJfGU8UI^&qRM^`Ir282-*odtOAPL{T)B&*vWl$n4?) zOFKXaahaLV*@&GqiSK|;P5xIb9V z4w$wO(;A5zpp=>;qFYJFwS|>LNJ=?LL=_^c+lZee)-pjUIsN(x4aT|#{ZHcqE zxVX@0G)4i;ZqkK`Xi7>suNynm9T3OyT5oUfGXNzb+C@Z70CNCCF4_E0vRzi#%WXtapXkr3nl`;OXk;vd$@?2>>Ke4v+u< delta 52 zcmbQtyO?)^3NK5slV=DA5Y%v_bZk`o$;zbkX|fDkvPjP2mt9K*bpJ8{fv2mV%Q~lo FCIFhj5M2NO diff --git a/app/ui/style/olive-light/png/razor.16.png b/app/ui/style/olive-light/png/razor.16.png index fecd70e0d4d98f14e547ee9978902fd62f438485..ff5c9203f252dd27e791a0a20f142380fc861ece 100644 GIT binary patch delta 252 zcmVZ~rJ^9hw|vK?;-zh*#G$|G!uiAbE^ugA*Y%N^os0?RdA^Efb_ZZGroha;!r1Vd zN&G{Uqy+$yYyfbVDFS#3AxzzUmYO6z_kBMHfU2tK?oC=ALRh-{XY9J}5dey!5Xs9Q zN0wzDN#K27W7?u^+c^M)q5bZj?Rsy*vMjGio=Un%Paye5@?l+Y1K>CvLGne?Ym{^= zX{%Y%8GvR>_|?w=Ad(Wh4Y7VKVaXmuImFcI~o(t z^ZX^6*)4#{m;y8V3}eG9Ch-qZk`@3+vH`$trU+mjLYTVyd1{jM*!TSm0II5@yEkch z2;s@yKVsK)4**aUg-BlfII=8zPXcdWYtt5O+s*(W4DEOKY}tSY`UR4& zB=1)R*8mRF5hRzAo};82NgK_QP5?9;!moY`d>`>@$g~TCH`tX(^6tMS`{fJ05>y85}Sb4q9e00lxEVE_OC delta 91 zcmcb{@|et>;~iV$akM`SSr1K(i~W;~w1B4wkS8?y_;hm%`cJo8>_%#o6A$Yi{HgTaS; z#xb^pr~@Wu440XfZDgDwwjn}Ctovxv#)vZ?*w3tH&=I+4e4POZJYD@<);T3K0RZ4< BBtifH delta 114 zcmX@Wet~_0iV{n)lV=DA5Y%v_bTBY5a29w(7BevL9RXp+soH$f8_nF9T?8ijFH`j? zigtf^H` zZl%6eoWMOnyAEXurt}(?<1zHg86#=$UPZTB3Ag9JQD1=;xYrG;VD0k=2j15ae#f`Z zZpA_z|21pqvW#r=-~rdh2|9m61HazT0p0!9k*Cr%4CZ5L6g(Z0@utK8gSVTbw?&Y#6!wAA!~NWM9@j8dVPg4TaUzR&xobF`mILd`SmT{ZAna|cJ|Qb zxj^rV#Z%=s`6*RU8zk~{d01_pCj_Wu1-GAh-SM;bK!JRR<=23&uC6rGv%5PX23wQYDh!5{ zGonG-+AggLE;XB>Mg-Q+@8u2>Y4IDblT_~2rHpUD<9&TIhv)2@W5C4t`0wGg4~OCO z^Vp)%RCKSCVW#&y=gIQMGnJB#B;hD3)tvje0bkTB%X?WYhxH}O&qB}&b%XWkx+fDk z=-&P3NGJYJBy%{NI*M4({c6XYFYI=XLW&3spgS%SQq_ zr;8BD#oDZDPS0nRPd!SM-;KH$^+>#X4hA0@Wf6s})@n2-?0E*7hiH zDw1qL0|&IJEftSlb%aR*mD}0b=?z$PW2maH=ilo{E*~2c@Ki2EoN4!PNyOSsTT-j{ zGrf~YR6xts5(6ol%O9C^Ym)^YL15F|M2_nQZXvZ>;+gO1RTz~XQj(X@dPtCiaE;s(hGz;lCP^kAR0=)Fr{HRi!gsAeAQE-NJ3~+W=gaI! zG&8i&m_2fsdHZA?sHIFeu4WrjlQ8xgjpn*i9WfdXk(_-ix~DGXMpV3Cd%6w)L-z1( zUS+Hct9s|q&`_^5@M%VJadp6r88%T^1o2A|*6#XFv}}@YVvzqWH2@_VqlVXa%!IbZ za!|p)&`oxG36TJ7##{vbbT~bjO%Xqh!#BrPQ(Yk2^8;>-FMjgnR!HU2vJd9@j~d;^ z>F$S6Kt}ie_$48j#xCMx*9FOfALLs?Gyoo}FOPP-{Qx-;zh%i1p^hprFnifD8jXY#Ns1uS+g$78T-`> z27uKCgC+NaH1FksIiHN!kcdn)^7?xd!5<#AxoC7Ylb8!r;Q&!;_L{AbtmlhF>lMgG z^gbE@yixqKp`o)eG&tlP-6-ZqEq|ES`J9dkZ^rf~Au5WZw}+EkEopa$tae$)#uU~( zIbKHnL>V{&fNB{B?NnsQA?<-zl^A=AHEArCOY51rWNK_f>H_p>>Wh05vqeQkdF5fR z0e5#=d%CTP&3-%VpKBf)pyU;m-oCnt+#c>O*PGjxw6f<)@nqp0HZK&WqS2fqwHbF_ z_9*y=8xz3XwyN+K<~BWMTeaj`L-W?+t(bMmCUbB?49y50V9L5)6$(wS)3blhk8Zle e`&*8uEjm@D{IAcg^~?-dW>4_`pgRGK3x5F2OaH219!z5ecdWAeRAp*=RlDNXBYqI!o9$v z%9>MF*L-GBK5!1fEf~|wNvd$$g}3zf={bh%9N!*g=Qa+@M-C|$ob_pHhf5B2OIyNr zKU?K@gFl#c_@C_d3+fO0e@E4??wZ=c=4JBlW6T77;?L7{SDIC&a{rp{(oJ6P^Ac}$ zVY-kiq$tU74cx@tdxdw@BOHL=i9|+V^XUK_?)39pnf>Cp_kOEV5WyYYOHTGi0p_d(~Hy+;MytEMYuM2SM%u`R_+CHaT*x=_} zkP1$OE^?!VIjc;;d8OM3rVt|zkg4=SLWFH@;|;#J?i9_6v7*CNW_y2Z34p5k;>CKf zXLx96f@GaDtVw)QQDl?g(z5H6{>V>f8YL?hN= zr7YyDNO?@`%^9NN8@EeWulmxj?Faz6<EAQdtxYSyRkjD@SKs}He{MiL`_b?j8VAL&*GPn_#iTmc_1 z=%AmSJgaF<)|_9)-Dd-OzA}PnY=u@HRHdi@WrHIqMJzEQuH^PwN!y6H9l?l!2W;1^ zUBH6WiN?9GHwuh>&xb1sCW_fYp&qbnrQnF1XDwJMY0IB|xgdb-S){XX^O1RmHkTkZ z*xzm8t^Bvj#X+w{?FnIsBQm7*TNzTf9nguehd($k7@egEH>FeBNPVaT_C7Z7>d!U*XzZbyuJfN zEgDnKa4*sETl$Z2?fUvG(=SBs(wMEW@UGkO2b2UuV35041yfyLJ&E?TDa|@93@@3i z@Rwv}aAj9;EN diff --git a/app/ui/style/olive-light/png/record.16.png b/app/ui/style/olive-light/png/record.16.png index 2094fc36f7fce219ab2b74e17a566a58c23fe6cf..f4af4cd08742e02bde2c9e3c8d7ffdb00c2c9a5d 100644 GIT binary patch delta 209 zcmV;?051Re0`LNmBoYa5NLh0L00Xc900XcAC&Uk}kw%Aqo=HSOR5*?8jKt}S~b=~f0H2U~6fFKB}Ns?TVJTM9c9-GbPsR=~IB(PSiU64F7@y@lK zrfGdTo!;w=+7p=H`EA~@=LQ2AfMcc9^KU+r(9pJAM1*98WT^9LgGqL5%WY=0001_M z0sz=t8bCx?6o905*5nG}q5vZDwln~MLD6=S+F28SfCxZlTMi&|94FHGw2NpmnY=d| zjdc;(w*=@ZrEYXSqxbE)ZWq9VMfuS4yh{_W(JGGP_^aJ+-=%3<2e2nO;PdU*^E~gY z-|v4K!J3#B)oQhNNQNXki{CNHf#W#Qcszcw%`8=_)N1P+cb1B!SfS6c00000NkvXX Iu0mh|g7Rv?2mk;8 delta 424 zcmV;Z0ayOJ1jYoABq9WJLP=Bz2nYy#2xN!=000SaNLh0L00&|K00&|LIC`1ekv4~a zWJyFpR9J=Wlrc`jKoCX$c%>9+QaBZaVk4sz<^YJC0Es#hEq9=zpo+K!4M>sP!U2qw zK$Qysa%JH*MIsllJ2Wm*5O(Z@ihZRuGym;a8o=Z6{CB8sgVuUrtsMb40nn>H=Ky9( zsU*v?*FO=6UZ;Rk zDyc49Er`e%W0I`}s@p!PE5OY6d7i&-EdT&v7>)rvOT&q1rnSD2)QV1VQ4}_cqQ|l< zJ4AGZ4dT_Wy3<-;rfK>ml9d##)9?2Ws|zb-n>oDt^6S SWJ#z10000mpQ}L}rrX!YUOkHoYe);(dO=bIv{7bLY&xfW>05SS%Kc#bU8oESCQbb}CRl zpU+gQ)nO5TISpWt+8?U&B~AP82~oLVB^_xCm$jr$^URLi*qZvdPN!?3O)b2KCX5XbTL4lEu3jsdu$B~#e} zxm<3*ahw^0)4nB0R$bRUtI-N7JAmYPrxp(YB9e;ZctXQvT!4H&pCLJ-kxVO)9P91v zO`Cduj0>K_j-t88E2e*tOWk1t59Y)M0>eY>gJk zm^ut%?=y9%4MP7a8ZGcuBat1({$lFTXn_x=4g-v1YwUmpQ-=Y@u{8=XYwFl3&1UnJ zsl&Jc^?Lmo$(pIBRY=yND0*q?F)l! zAyWB;tyC(N?(Xh1fRh@&zd>@kSS-$HxYP!rL?SUsa$d`~6(r|Usnkt1pOy#!eBbYB zG#U>?P$;zZU!!Bs<9&U7sbn%aEFz~wWN3@$@wd%p x^K}$OFEoZ6i^XEGSS%Kc#bU8oES5hO@f~vW5mV?3_WA$-002ovPDHLkV1f$sfT92Z delta 807 zcmV+?1K9k{2f_!CBq9WJLP=Bz2nYy#2xN!=000SaNLh0L01m_e01m_fl`9S#kv4~a z;7LS5RCt{2nLTS1Q51&XGv2}7WLAhUMB|!_Fo*^b!Nzn3Tbtwuh=Ly=X|(Zg1O+jq z(Aq-$DpL8;7`vpA7?{m2Dr+{eSXRxl%*A7~h7^fx_MX`wo~NJZ-1{>3-ZOInMNt$* zQ4~c{6h%?~H>g*I!Y~Z-`TRJ5F(NvDK}1DnJ^%nj)L`Z>0G60}zSU~IuGMNkdoixe z0~i?@IYva+nfW4se20%UiRdMOnM$Qn$!>HR1`tJ24!|t{mzjBAml{h%4~;R?Ns_b# zhqp;40Yp(0G4p)@$Ay%O#+aL>QfW=dw~2TF!^6X)p65Mc=7YlORU*1tsZ>6HN=iio zh@vP0@Hm6X|6$el{fQ(=)}@4=lqinl{mgtX!^s1{A#3eydw&r@EC6fmZ2%{wd^^F+ zrvTiL@`)^g_E9(Iu-oqnBHA#v6^>jfqP1Coo66XM_)#^t32WGE%UaeL)TqRP+;0yqNE9B~g)EM(X zLL~ADTd&va0|Nv70M1JII$*Y3F3(Ab#2O)E%rt;SDc@gM2!i0QluY!eXdK63nx;6VWvQtCHR}Up>#eA~|_LXb;#*y@6$AWBhln2 lilQirq9}@@D2k$N$8WIL>~%kM5~TnD002ovPDHLkV1ij>adZFx diff --git a/app/ui/style/olive-light/png/redo.128.png b/app/ui/style/olive-light/png/redo.128.png index 870c4f95ce6d8c3d85458bcbbb86f655f76fba38..3489253ea9018f6c119a56a7de1edba05f120ae3 100644 GIT binary patch delta 1676 zcmZ`(dpO(o8vp%7#hNTZT~gwf($XoSD7vUif}%?2J|P}NUD~>Z>azYwN7YG5hE62W z%4kNkRh^cK%Gv1&r!Ku{sHG*_%xw$REGkuXvhzIs^L+k!zwhPqKJVrGyzf!nD3%@D zodZ#h68)pk@|3U0KNx3V;IFq;$C>B59PU%^Bq-JAu68V|Kk+>cbY6v;ngWCq8pqYXJ_&$~x)Gc5g^cES z@rGlVKBf$0*u?87$UF^I7*lPKuBj!5TLF=`F@v`Hj8AXwt%K`Py1v9dcPP@v{&Trz z+1OJTDWO2#ojtb5f5l-Z3mNcoSopDHV>`rVTgVsA~wf%=x;Igc8#L5v_)wB>|D!y1c{?i<)rfXc<iajh)7$Fj77QV*|0`UQAjq@;^rdNvjLND#())>}~q4pVpm5+L2( zS)0X)8K{o|!ZOexOyS3Yv?;t!Od7ZXs0O?)vMenFp(R~#`%@yX;+!8A zyWlv1tQ_DcSDxN$S0eHE`9g$zA$=(joOMrrOvwKCOUP(2WKG|{YJQ9#sf@!FDDf_ed|m0gU)*-I8d}41*GO(CIDJ7|z_ku#X9bB!YHgs=*~}4e zR)gH!^?INxeIUL6P_x~-A0fFI?`*%|LLf9f8tC*OK& zBvqWYHY|0x*jjAt}U}+@8cXZ^R?OF7N%uTAeJL#$6~4A~tz#Z=xX& zsTfOo8iybpu}IRp?oJ>OyuH2ql4H*3=CyZNnX&m%#!4xMw`GU>KM=TWpuehrWMuzk R_gO%TqofGp%>W$==adOOZx5*`D z8f7jyJfU?cIVedZ8waiISvN7I_axey@Mt*VprTecsRK^KRAotW)rfHvE*Q zFBt_P0~Nz!TUIj4eTfIiXDgL65ywq~w}ND$|;3hNykS0Qg%^IP$-Gm zB;{X28S3GPmOFNwwahwO9ik*@G_tOd(FS?jvRIS@w=7W9z(Wql&J=sb+xhL&+k8AM z&$hcbH6nB2a3yy}lU6fM-A$7ZS4zr`Fj@Zr2m{noFDp_0zbX9=m|ma46QT$M0|RwxjMQ!vPC!8o>8O=!p-OB^I3^a6A7g} z-iEv4j-(F|`ICxK^=IWbB`<0&GGVB>G^sJbzmpkMku5z7USRN5&$nEw?6@V!Pv?C{ zyXEn8FPLj~+FhVRJAk=_eYp!Ra4iBV_=}h-JUN+K)gC;$l?Tt^Pb4T{i5(#+hucFV zq{`E}A&eXG7h$Md^pzzepnGIbw_QM!I>Lh3IqeoGqb)0(6WQ;!bR^Xda3lr|`Bv?B;2{bpbd zk#cg;S&{oqmu@$wXU{uN@|PwAQ{d)SLgrljw8$;pM{a@bo>s2Dexgh|{UUr|V8C7^ z5`__Cx><>V6PhK|Zn-809b?Rl6}gzg`*nb>8b7v6xXg%{LdWPc*=%-yO4nxxrmf3$ zTw`a3OjcHRUdbWEe`~D5=ZlbiN>F^HIbcp-mO|SNR_K}h$d)(y?7^d(I-$9^M{YS3 zwXx&h4%inBMS{s`zRv&^r*}nt_K(*>?E5`{Cy^hzAwK^|T+NdwX}m=+bA8Q*ywPxW zl`q2#Or|CWPPl>M2H^pT9(#uCZ<}(YG{NZQAGELg+`-QAwuZ#Ugd6?HpkZKTWpx2a z;Yg2?LM`_KELcqWr~yi>lYAt3cqOj*rN+V9+FBFX^Ai3~ZQqbnJKwBd#%b7=!Au8F zMv{Z?P;BA~{nzvUG#`!?rI|1lj}tF4S~;;(QM*8*CJRDc}J5Go_K7 zpLais!{Pj^xO4pQ74M&aAWFRuvYc|MCb*|X5J`IWp|bpJOhW6duq_?a%262qdU@AX zRX>u7AOyd0ni=!tCL@u^L0cP}*rX>9MOZC&G!9sUGo`eH#B=}r4=R;G{X1YhH0`IW z5UUbS=XJgs#vDADFo!hc;Zqh+NEuTJRfd6pE_&rnUa775Qs`~mtccXG;PeM{kNmD5 zXLPo9Zl8bA!($4w(F*U{y@+U>?=$dF$`HX9y1 zc+ji;%fjQkvvIBRity+`MHYlv9yLfstr^?(wi>d% zgcLMYG;A6h8-E%)Sy=(X4OS)D)3T_gUtP1iz8V7e9PoI&C}nXd zGk@M044f!dVRG+}=Fjhk)~-j`C-eHjW6_>sv3Mr}f#`tU*6(Ao_E#FP)uDM?e41Ud d)%$-i?C-?|^{ZYOhAaRGz9fHQvuAYHzX3a}El&Ud diff --git a/app/ui/style/olive-light/png/redo.16.png b/app/ui/style/olive-light/png/redo.16.png index bcc69b628b43a8a31cf99f99f89d2968f6fab5ad..d5164149da44c07af8f9f57dade0fc597f093eff 100644 GIT binary patch delta 290 zcmV+-0p0%11Hc22BoYa5NLh0L00Xc900XcAC&Uk}kw%Aq?ny*JR5*>*k0DOPKoo|* zX-hWEnwgq$wA1tksJ#FyP#gda2?o`yU*9(kZ2?s&0%i$0G7EThKJkB82b&thLsN$m=XY*LB;XD87MHU^SLZdZF+8 zPp$QrQfduoL-1PD`MfOHs!U#&Gtsb>*+AH&w#WtL@6 oyS4w|$#KqIJLfKDgNKnnhD2UWB?|)q00000NkvWtM6N<$f<1q$gGR5*>*k0DOPKo~~fpAOk3D>|db&6wT*wHIK;Dh_~#goG<_020JnF0ca64M>m( zFd#Y?XgVQPWcy=wO%1Kwr@#0988~^0DWed=T~$>f=lnT4P}lWh7=|YiSv%+Gy6$aO zpl#c|wKj>!g{rQ`kx5_3Ie%GezeQw!t*R?)?IP#=3LwW(jBx|p05x#-UsOc4P19`6 zLB0eYro3j1In=II72rOlv;+3zVT^GjB9E$C9Ipe2_kLNHR7nM@KMC8@H;R6BB^GYN2C`ppNdBX<+?RNW%QtCs$ zC?YRx^T4asYFR{{GEC1gzReGN1-R^d~8%n9qQ51bDsP8h%9D@7?4Ex2nqdpxY00000 LNkvXXu0mjfr>63K delta 544 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 IM6N<$g8v@zVgLXD diff --git a/app/ui/style/olive-light/png/rew.64.png b/app/ui/style/olive-light/png/rew.64.png index 60836a3065e7928528ad11c609a6822fa6c790f3..f4ba38e2e6510dd30fdaa1e8a22106218722dbc3 100644 GIT binary patch delta 834 zcmV-I1HJs!2ipgbBoYa5NLh0L01m?d01m?e$8V@)kw%7p0|`k)K~#90?V7)96hRcn zzi;>M0tv`oK!b3wo68jz37A5~ABETjMbc;;L;|9f{sk5`5-=u>h$OZmhMyruF&Roo=pr!lKZhYyD!oCv^%?>x9?{5&5r{d4u`|xa5x-}{}ReuP_Nf7 z7-Mb%m>{BmGJtQ!n5861-skP^#-CdPMn*=41_uZ4GxPLb*NNy!9LICg{#+7Juh%Dx zG4lYzcI}vXHjkdri{H2GrYMSLnE5e);ZBV`&pWEMUXk>dY?*7d+HkpCe#p!hd$?^v z+HWNRVHlnxqB&+h*2{g&JS6S!HvxVWMYoCQ4l{dyeLhRXpE&`IMx&Od=_6*IWag}o z$&4+3rmTfwIMr&kUNiG#W^*6d^!L;QI@Q*^$;01u0>;M1#*H!a%pBR0_d;I&ZiWCw zQ8bgL=}V!P&(+_y2V|_R)+oZiZvwK`R$CP1-zx!!zP9(mt_1umwY?X1G8{$Gbeg7b zrE0r>l)nT3qobqunE95(uP*JUFbppd(bK}s+c5L2q~G&A?}n6oI{;ZfEUw8jBI@^8 zYT$1p?e~aiO)>y!zh{hDk_t9n z1JGJ8NcwkXf=a1X-}f&Q(bpmakoNC77ueW;*l234SArm5B07Zvj?T2!3zGi5R$Hl3 zYQY#Y17JPx0Hpo=tbHk&`S)^CC!XaYFfseKmy90C&l zZZ;fPDfQg<{cA*|YzH9i?>eKKo15zc0|T!rl}Z)BxUB%%^?)M$nZB}N7)}w<0{};V z`VBxS)sXaO+H*^i&SX}`6) z`nzUVtJNO>&Y+9oMMPh;)~k|!+XoLE$MG}I^R5F(IyPormiAkpSpmCh_Hh6w{=QB` z3}8_y^+MWTbnp*NA92j^mFddAkpS-{EjL91e%W;W(iD0{Jg2y+k_T0{{R3 M07*qoM6N<$f^`Iy{r~^~ delta 828 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 delta 1963 zcmb7EcTkfF7XQ+OP-9$aQUpQ~LzLzsFtm+yLKlJv7(f@;P^2hJjt@c$#Q+9Sq=OJx zG)fiFg{UwHtb~YwF(PcT7^%X6f(PPd?*6$yZ{NI`_ulW#yf$xsQz$N~7$XZ$uy^*A z6bnT%oK~V)1;#q#?R>9StyObke~3^T8T_=G$j9;1b+da}tFOtJm%1dtl~g!L2$qrX zG7YXFnRnk5@mRXKlf^4RhVIjTk5gw z+#2|_y1qxDzqI67^F&iSb1C2-fXwsL|5flmCecP~8J@@(Ulc4}{aPK>-4A1%blZeH z!mhY!m6)e2j+JHWZ%y6sf`)hUKC@QnFePIBs2{&)=Y4OykUsIGVJP1Ma`CULeb*TR z7@M}zFYF7#u}(f{F>*-1+P5!v{?q|lySv9Bv=Hbv3i*{!7*T?3e3!T8kwHrp2K=M{ z>z+mBqtqe{{IJE*#KR*Eh{Id+c@!)V&xgKN}MY5)Up-8rY~pa z=H#3?!hMY2MjyWKfkBHic)TbZ#njc)0|C(1Yf(?RWHdZj;-QaZds14OH4>>!+CZDpk;9&cGmIUw?TY>Jay^cbUV@JJgoGc&9(p_8}zD`(4E zyFuh1=>QD4>oRf^HQc8x;CH=S@vXiV4*1ymK1w5NrAA3zUHx@QrBsw7cOVk=g@!t+t#9r(zZU*0@)IPZPKQ`gp_dcA0v6e6(OeAba1 z7w5U8sCi^0eg>)}c`TRKv%RyU;ddef4e@UEeb%$qSnNY-Y;``(iZU<8r573vLUz{Q z|9;`7lE(=KgRukbpFCMJHV^kkc=}Q#HPgzKJ&p{%kZE>-MnYRa18YF5;Q?mEm(U&f zEil>bDB9_;?WIl4EOYT)lf06Hrr$kD*{VVbx>kETbR-Sa#{@9*EBr6HQi7;AhQZ7|h~l7jN&}O5B{eqo)3tRiVII55qB%9ENaMs9>wz{&CErQ9)Xk)g&H zptG}coy}(Nlt+*e#WOVuja3dNtfKuxp~(JQWzGCsbBKrVxsj-7Ls=0dfVy7Kv*+iV zWMJ(?!YgG-)7?OMUBc$$q4$Yq#X29YsH+b){vkNOnS+{NnZ1vm)+VWN36;?l4-nqX zCzKPKs`KUHRmgDUGj7bVMBr_y%gDe+wF3FBUIjK9-gvP7>^x>YmXOMU0hX#GDMY)V zrf}nmS=vWgUVQZ2L9p_$1SUq(>#QnZUU$4X>dUyCejERR<1+nt_VcHg#ZT%?Z!Ju; z_|}UO5G#x#lJ`D4&7+%1=EoauM-c65`i`CGA;)60BIoa~#tf>1I;l`U8HpOvxi2x9 zbua$#JNGE0sKdR!BNxWmY7QUb+F7aBmLGQX6T`1AKJCbXX$~#g*KZWv?JD(29UY!N zZR9I%p+B#H3o~yy-!>BQ;Vx{vBQT9nw=6DiD1zF{N!)5?GMj8-JId8YuApmE3-b7jx=ifFh?2ZX}3#JWS zcy_P8zP=j2t$uj1{6Ifz0|-LfQ))OO@aAp`IFPq*sCw+j7)l|n20rPC2V4KuJ&#L; zMt5d;z;264Ap33OqPF%wN6VI$mXrY#FHwELodt4&>o_x0HWzVPRe>EB06f10k@*_| z1KzSr*3X*kHvxZiaYHZk&*$K`nPd33$T0Xr>^O&*#U@*-g~6RLXuUr_u|G@)UeKoP z2c;7_#4J0TGy*BSH~H6ZWPYmUS5t4#JJyCzDsNX*RJbyym=|ZiRnlf40n%*5Ms5T# t}72N( diff --git a/app/ui/style/olive-light/png/ripple.16.png b/app/ui/style/olive-light/png/ripple.16.png index 79c2edd1dec5de9ce6ecaac8bcf3c2ff19420068..36522ac031438e5a6143992c246f899c3fa4fd78 100644 GIT binary patch delta 325 zcmV-L0lNPF1LFgbBoYa5NLh0L00Xc900XcAC&Uk}kw%Aq5lKWrR5*>bkugp}K@f(& zC6p%KfZ5F>CUjz|01J2ArZ2Kt#IU`y0SjWxe+!5$RR}y!UG?}vbNm#55h2XR@J^|ssX6L4Aa?2mM|E4)u&a{dyR z%jGL@n}`6ps&-Vh4Qzmos>f delta 352 zcmV-m0iXWk1O5Y$Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L00XfA00XfB^@Ht6kv4~a z97#k$R5*>bkugp}K^TN*Hk2fu0CqPaCzdrE2U z03f9_2QVSIl{9L%+r4^IjIl3iR1E`_Uq~sy`?)B1wv-$!aOnQfF`1MNw0000*&fBoYa5NLh0L00&_J00&_KmBYBUkw%Aq5lKWrR9J=Wm$8czK@`Tn zw{8qONs%s1kSWqlA$OoyCZxO9$|6FN6^FD2ko|xDDXTWHNa& z7z|>Uq|Iit76icy05^!}BV+8Tlya0eH+Khw5cN2Y_W|6=Aa7Nx)%z~y01yPh0{}Mx z_*(0YIF9#)5OpVjskzpA%^WA9pRNEz^uz3Ht=DXS5N80+F+cP?@4YL4*7_Y09lAiw z09vh95Jl0;9P=Z_*iOISAG-o5rB0J1c?jTZ5d=-mec#^$aLv^Oz&8L_bJ~T<7PT#< z9C;RsS1Gk? zzPFWsc0S+iD+t5zq*kjvCZZ!VAgkA&5aP1y3ft{=wNk0PE;2s@002_T5o2sS2Vy;n zqD@zTG)=d(*6T&)zX6;FK}6PbV_rm5aWT&YFd+aO5RnG(DM^yIt^nil_ze+#&SDR2 z=1%H#I=L(7oOe0r{p{)H&9TLrD!dQ$dcCwN7_)rr(k~<{fJFd~E$u(j(tpiX`UM4~ V@~7y|OnCqR002ovPDHLkV1mzN2TK3| delta 604 zcmV-i0;B!o1^5M!Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L00&|K00&|LIC`1ekv4~a z7D+@wR9J=Wm$8czK@`Tnx7jGWxhBPuCb(0iOCdQ>EEIx;*NGq&+Q=!`2xz*e)_Je*7>KdRI*ssaGGR1p6&fTd^+uyO#i zXu@%v4coS#1Gve|UzJi%$K$coDcWka8kS|fWaeuCK1nH`g<&{dw07YM%*^)y+yY<{ z(GAly@9LNXfMr?tnE5*XY;eoA?LEhFHnadT=DqAV5hc0+Ns`35p0+3)1(%tQD^T zTrFCh9TY+gn0WvIM6~1k{!Vs({*>0v)l0vEAPA16lurPRatXagqp{oVb}#5|uhZ#V zG)?nOnfV+50EA&Ul~Qi!A((kHilY0v07|I`%)D71>ECdnl z17ITh9LMoHT>z!jTO#^0%iS+B*HXXVU$}E2#K3i3&vji-2r)QIZdRo)?}6cPsLC;` q=dS!gvIaO0z+pjrCawI}Y^~p2A^WG@9Ju2E0000P@uxH>fDy)Jy#zY(>yRLH`HEgG!-AMGsAPo6?h5 zn)Xud?miDqN^7^t+vz4#oBcp8yOWvsK1_CJ-UP_W$;s(qNXMWjt`Jz^)+|pgREFjHWp`6inr5YSV}H(8fp0Kn?%DicvBR&TqOX1*o>)a&)1rBdmGVHlUOc2u>O+4R<0 zKO5{330q#-n+`|!xP-*@O5*OSTrM9sP4k8Dye{$m+6vpYr<1M+K~RzQk=0@?aV404 z^>Q<7vRtWdyBFB460%;Vx7-cZYPD|w?qF@2x1$K)x#xM}X`B|WoAjAski2-s=^WpL^K(H1cBtinTq-O`CkCOv}mGKmq>jsut7pnZSFTS zKT6xD6lQ)1;CI5UCDo#g(#eqT`%|WA-T?5qxv3zcNg}!$1i=rLJ|)b~&VFa+YXGJi zV={nGg+k%FYDH?tztu{mQVPS+NHguTSP9y;eWXw*#M9H$k}C1GC?AeC*=Yb=s$}(? z$^RdqI{@9}0(1wUn_PhI0CbZJ&>etovO?eZS=NY-SaNc5a(bG-?@QZ~xTna`00000NkvXXu0mjfcIe|P delta 1011 zcmVD1KJv9-0ey8v$FO)qPIwc5=5{QQ5TjwKlNga9x$Hg+GtG=LNNb$M%R z>(u)C`tPHTg+@JL&bPw0q2o%xX<^&YaV6l;;03r2z%^cg>i}Hi1-K5tHC{joV>mfa zlr?w7_7B4_{4xlFJIs6)z!-pet@TW|+x`2XK@B2~zWzPUy%jc{z^K~M65k=9Y z&6vglq9~fwTF(I(FZlVSQtF;fAQFh^4uF#dKaFdx=WHYx3D}W*wO=1*{u;ws7lQn8 z>qpf_f>?kg`5ex#veDRItg!@tkpP3_p_Cd{QG)^eCg^7*VP63z$phF3g5Vd)#5M#$ z@DRX;psQHIKmlPGUeH=UhAjC_BAQ-aUhWF|TCuXS(qZQB0sJHAUe#L9wOXx9gF5vU z5QgCeB62 zrc!D;P1A*)jk^SV#>w~CBjJO9BanQLT@n;}IPK>`7QQfgScw?j*w^T$V^(P*4k zNx!DLlteq68D#ka93aU7o|qNgbF zjIwV%AW4!%BDxKkgz-wH^0T0y6cqsv`1bZTncVhe>;zk_*6B*6qL-GIBvshW5?l%RRoFIkoCv7ZYBK<40j%fO hY~JSacs!m_@;~XqqdKWW?Zp59002ovPDHLkV1j`y+CTsR diff --git a/app/ui/style/olive-light/png/rolling.128.png b/app/ui/style/olive-light/png/rolling.128.png index 9953aff985337a28fcdc6e2a530de6f1ed3e9da4..6d730cf9009b96b0e7aee3d9d317299950065a75 100644 GIT binary patch delta 2944 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 delta 2985 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 diff --git a/app/ui/style/olive-light/png/rolling.16.png b/app/ui/style/olive-light/png/rolling.16.png index 3bde379f5d326cb0ea968042a19c9cf6c9a51e0c..6524547b1129ef5bf88792f9f78cf7bd8f608278 100644 GIT binary patch delta 347 zcmV-h0i^zs1o;DyBoYa5NLh0L00Xc900XcAC&Uk}kw%AqCrLy>R5*?0lQC|>KoCXW zxQ>(?Fl&KGkSMqX6@8o{LdrRkCOHV9;Q+3<1yZ6UMUcnzbhK#FtSw_qkvhLwY5x4b zJF_#;fU1r{2zP*RjwFPTsp_a1tP?{B6JP;cx%;dv%da#|9{`G?SgPtsL~`H&%*|{A zkhH}>UY6y5H-NiO-F*rWV|mP3L=DpK_s7TM@eR1{c=k^`2OZo2m?s^?pO9>~+YjI| zIs)WoHZ-#Vum|>LHZZecETO*L%r*%?Y{)zkvtF-v(rJJ+O~=5Dt|nF{?w$cpyWQ@y zZBP`&ySqQTdsc~03>xqY<%)=$akW7RVIm?c;8j&VZ`+BgdIP+O$g29n+ThY0H1S{O tKt$FevWClZaDuqb8QtqFs(RmE=U+sbrt$+7vnv1q002ovPDHLkV1lUtosIwi delta 371 zcmV-(0gV3n1Ca!fBq9WJLP=Bz2nYy#2xN!=000SaNLh0L00XfA00XfB^@Ht6kv4~a zFG)l}R5*?0Q?X70Q4pMYwTWK<`z|3U2?c*aMekV{62C(m{SdU_1FqsPNHj`ea<@>^ zQQz3yk>fZDYo~m>GrO~I7ihrDMlr@a0K_>$j4?H{QSwEeFFf0Wm!(kvYY~dyKhKlRe?pt0eijPIE3&9;JV#2 z$sYiaH0X#O0L(*&*FPcbcDqlKkCh@S3qyAwNZL!gN{MS7QA*@0OE8y}ToS-`A6y4`cGrMn}^Dj1T&Ons> R9QptN002ovPDHLkV1k#0p?ClQ diff --git a/app/ui/style/olive-light/png/rolling.32.png b/app/ui/style/olive-light/png/rolling.32.png index 3d849a553d1e8346b0df9a44cc87f24afa473d67..128da431cc265c963c90f20556f0f7b5fc580874 100644 GIT binary patch delta 642 zcmV-|0)73t2A&3xBoYa5NLh0L00&_J00&_KmBYBUkw%AqOi4sRR9J=Wma%ISQ5?s= zzw=_acil52l~>4iptPVkC^Vv^J)#1c@#x^09FB*0B)Dd<$GCp&iNYW zd@Xwr%d+kRxCOuzLfnm_XwPw+1ucM)xe#J`!j0&cyibj{0c@vhx%Q{L7eXwnASM8& zm>(I2@jlagMX`nu;vEqk=|GGDYPFgbhT+Q`^JB(;*rRs4J;>6l2}BSydC+zYP8wsjlTll_fKuxenLdYazi?=UB_`Q>z=S) zua`@IrPAvn^9cX|a9y|07~9B!SP8@Mfi6IjBbTmTsY zz&;TP0H5MGeya;G7!2MJ(P7%VuQJzCqtVDcIp@5|Id7-GW?qe|S61#Dkkx9nl48uW z_bLf5LLN|RCV60*W|aq&n&*Kc&GUe)c^wQ|t!^pf{}@B4ZA@yHkW z&!Vge+qPFs(|iTsE;D~sO0D<%eVJ!}({j0N8HVwinQsBumr}m)Ja05m}glIDJCNpo2 zAtHrg7^JqXXF((YrkEd=N~KS!+AA4j6bglpM0A)3A_AyXDu!vAZ_?%fI==6JKkatA zzti+ta$WbAQtAnSZ?hoi#JpH6ZUeZH*Mx|^GxPQIIHx*N$~DjPMuqd3&q2|bIB5Yd z&^)0+uh%;cg5ViW_v>FOYC&{=$E|n^;AYn1_)8%~iu$y8r?fV)Uvvw4 zz232u@;QJ`s-SLJ)^@E{)AJsGuUf5M(lqVeEb{~a0C=7^l2WdvA((m9_x(qC0hCgY znR#`V`6+-I5L#Y1yD-8C!&LK?Ov97E;SmBi6<9A zv>eCjI*!v7LbT3O8`s1y5Ldh1Rsx diff --git a/app/ui/style/olive-light/png/rolling.64.png b/app/ui/style/olive-light/png/rolling.64.png index 9e314b3c0da305c627591e8f078950ef7a6391a9..fe64bc50ffc284850164dac5968cb839d5c2e9d1 100644 GIT binary patch delta 1211 zcmV;s1VsC|3epOYBoYa5NLh0L01m?d01m?e$8V@)kw%AqfJsC_RCt{2n?Y|IMHI*X zZ+A=SA$GL6AQU-c?+S#{Du^HuoO|I&ReD1-;(+)74HDu;xuoBrNrePRmFOoxNFWYS zMM^}gf)v|pM>!zCijxCscI3qC-8bWnnmGGA&W@k={WH6M^X4BQXKd&!f46Y} z-}k*vr*jK`z}o;`Afk24vR10q>Z5UQDv3&^a)p_fnfVO>&j9=yhT)y2}bl^6h${0jm8s`xM`G1rFq-7zhmZ0$1d#=(Neu$-_(t1>3*P>{2GoW z4*<-3iHJVajVZ;ltXnb313-b9*UIJcf^JN$6)=#0{8YlUXF(9m1K?2;78e&Uv|6oY zX1)dhMD)Gux-0AJ>jw#OZKc#B02dPG>=V&Vos}S70m9^gZsH@82Y_DkO8|-hip;#! zYPFVA;zmgSgH7qK1d#w5$pgU8f;sOC#|B{{`biL5ON3MbG?U-6ZTqXVNz6Pg89NRU z-3G9KC%6x>2#ErCo_Cpcd6a>M> z;NTGfCOG*%Ln0gsa1N61b3_CJ&Q+zXsm5wb4R6L*8nX7e$CkI`M`X-omQ>v^7d8S7H1R9*>x z!|-clxJOCt2h{8JO(MDpnFxh248Ii2GlH3KL%uZ^ZO}v=AsrEj=*>!{l6gfrJ3H(4 zTH$GE?M}r#L8%DLOi>hNeptfHl9(sg6a{1=5Ya{u1d2xfeWuHYQsFa#^94Fe^+LCmMN8*h0VE`ES z229E7J!A9;OcGfLaHjnM#*e_H_ydeqK)GCA=yW>w0bE75G`+~o??zGd?cCgd+-oK= zC6r2~d1n5Gnco3$vG?6qZQH(Yax@O){s27zga@T>;bh(mHoA}7D725pf#>88Fl3_q z0VYh2KfsjSACUV4a(@7T+#g^{?hioj4*-z+0|4ayfZQLD`vdv|xj!IoX6_F-rAOm^ za(_VX4>;rgfVfp9S!t8x4|pJd96My9`~j}(t`N~GfHr_O5v{teyOI`HaGTm&bM5YJ zT8oT`HtO~Ib=|lUlu{1>Tp4jW_Xn6XW$g4R!|d+v{xvf*^8+)#N<=RMpq@YAlOPEG zG>Ivp-ERL=EEazxqIm!>^)@sQ9mn~!R;!)Jf2*eA`+h+wC8-!QMJY8N?fd@F=~Rv; Z{{xG8fQFO$5O4qh002ovPDHLkV1g_(J+J@( delta 1184 zcmV;R1Yi5o3b+c8Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L01m_e01m_fl`9S#kv4~a zR!KxbRCt{2Ti=TtRTTd2nN;aRVvszDWHLV-6xo)Qt|yry2x`y%K0iY(OT=hI}QP-!|3^)>eHN)(GX%s~Z z0MsOdrKP1a+uPgM0bELkzH2lZ%WG?E|77^J9LISC;7o?iJ`r8jnF;I}zziN31U@l% z07!yw19&O?jm~9~r*2NSI21PVfNsEX(?u zVOM94jli<38vyng{@EmC5@6eZ_Bko#E%1WhC!+So#zvoEYlO|s&7M-~BLF)L^Qx3` z)pgysvWzAYVB7XNBD#&i8l491&BqkIUhlC|>SHiTP)e<2k&sHjNezC8JV_YaRW*a3 zC+rI$+F=-Wjt-6xP~hN)7$f13fKw3s5F;cA;8X=a#32a;078hV*;~p&ImgIbYh)8V1tg5Uvd3P71tuXiUrDX5G)YK(zh=R4ob|NvD2f8EkGzt#)J!n% zbTe<{nW;{!1x_jnd8g@_)nKpJdrU;10N7{Ttg4i{)oeD|(^wb2@4rq&-yp{tWokd5 z+wDFiqO0JMP^(lbUoq@|j3A}F0e)%DD$rORAsrHwQg8ddpL<5xY&Kt3N?l->YE`G~ zo}dN^LQ0wYVTn?T5kfq`vm&ZPM3=%a{N2PS2g!+l(`5j|Kox*rq?8|; zcBE!rt3eRd4h{}TXWHkH3A(OZuT&~>eSMwNC7y`NEMEqISs%a@dF?YsOQ1-|gMhi# z2N*AbqUZyRW`O5;i$ru!DRmKp)bvFF?-S8o$8p{?@yS7})mn(-_zr;gl6zK_QWuHn zp2^WTQ0fEp2;dxllq#j(!SU=1RSZUJ`Kb04-=mp?C$Pv*X#8k04xA_1%m?aft2#I y7_M6fanU)}_gWmsGZAGizsF|=$Zf3RRSXj1w;hA%fQqjtF2t;n?RQ(O?eX9&d&8^r z3IhqAb>_C-85fym_^6o&SA0G%`K4;_@0G3sx(p1r1;5{&@D^nsxkE`Q?z()Oxeocl{NcW=wBbvQ&tXIl_TU(4c{})Ru`&z+t*_ z0z+eoX;a32uDIxE>s6a;Bd5i?NIhkGey88?yS|ct_1=5W-QC^mkJ$KW*f6tP+iJ|n z+_AtLXoANspkX`iT&|2?u}a%D@J{yUz07O{or^T~F>g2_zANm$bppfmf^&a^>qU;{ z>IgW_)@SEA;CxEZfWd#I+X03w4?`xlfZ!~kNtR1Q7@21TYk{1#L;&c*fa^eKF_u^Y zUFZ=GVwM8c3PfC2N?;HS5v=KF*gh#dJbXQ?%-ebi2bFU>)344 zO^hxgN=%`5XZbCk&nok}zDeg=U+~5k@q*UkPmH(mK8Wj(-P@PmkoQC7TA!o?`;kBX z*=z|i%m#go66tykS%2+U&ER$jtqQ?SJ_X!i8!|?x~Ugw3PZ+`CILEUCYpR_~EA#tGkRFSQ%DHrLJI&4ZSL@RK$EB zF>+e@s%*Qxjo(!lEPnkzKP|Fswa)49v*nho-NXFi!>|9^k<)6=a@<>UZu$Ye_5aUv z+&g65z;f+>d}LJAFE%aaF{W`1ootSdP(L3)MB@VhiV`7jvSgFPg zBB#^UWn13V9A#z{2}DLr*fpF++yOG!(AKYIr5Pg3{#~%>e=DYt6s# z0i%0%zF5_Dmm|M9^GnY$RDbSu=KWB&eh>4B&o$et^klcr=#csH`)};~x3AySSjgxx z-&i@%-(A=Ee6wy@ kyZ7(cU;EboFyt=akR{0NO?VH~;_u delta 1213 zcmchU{a2C)6vyxLX!&HN;6Z7bij-+@M^EOkO`0L5&TKj*(XAcNRHU_Xh3=?JA z)lz#NBPs#I;~AA}8e?2ivoobG$0 zo6GM}Jam}N@mZC74D(K-mFElZq$zijZqZqt(abNHf9)LSEi{$#MFp|?PK(8oDeWIq zNF7Sz5+JuWQ`GH5EK9A;SmY5f<*Qb!Rh#IMFTZRm@~yg)O#N&Nv5(D?EGh1K6yxmD z!G)5#_K4jfRz59DN8hn@>n0$#TF+Il5OU#!b(p<}HWZ*y`W9XvIW2Wq6sKJm>VJPQ zrcqv~*Xz~%H5Ac8iskdI070K32n;m6!hjOGYa75J(^?_dYeB`fvt(9zqP~J!W=__= z%YJUjFdB_sI!>D;wbnPG9kp-SlZb*S_Ba7T>pO%1Em5qDAkUB4NlCc_qZ3Xra*FwU zF;zZwq(yJ=fNMdUjXN~TA?b2#@ZAAEfM-J~KuEMJ0ttTM_7Ho1fB@IfhQk1E>s|5r zED2wHucI6Q9Z0taf~gJ1!0ABm zp|9r~gJ796lsdreHf*G63>o}oGstJ-`vWhm;o)E}OEb9fZb-<=x-O}a8$Al5$fRR0 z>`;`t5fg~IH`6jk_Y$ooCnZ%+Xh%4z#e~YAPfAL<`&a9{erR+tZ2t=BO|Nd{!})2O z^IP(yL!in}W1d^DsXZF`0e5(n!k*GIRc1Z-czVM~rp)AF9P(h%NtF(|OS%1F7lS5_ z3(DWvR4>Gr{i&~Fod39g1b?G!Sd3kueH_gEn`+7Z_ z`MrGH4}~$-?g%1825<@tGwgrrV>8_iT$=9kGih)w2U0>H!1F)ccJK@lO#VMI|KAtm zp1F1@qlQ!`;f-5bo*}gpk(nxfEGs;ATApWka?f4B+n0HMf3Gs0HDSE#9@_fgkxyM= z(Q1Zf{ET5@V%Bp!|5+rpE~JOXOe+@Mu2wTNGIQC=wzUe0SWK#^sWG^PPr3)H?rCX9 zxfjhR{Mh77okU^s=_*j!tn>5p8fgXt%Wn7tN%b6lY4e-B0eD1(?_jntQiOj4g1Z#0 diff --git a/app/ui/style/olive-light/png/save.16.png b/app/ui/style/olive-light/png/save.16.png index 83ce85d26b86600f6df8d46952bdd206c4aabc6d..ef783374459b833ce01ec0a495756a25f92df7dd 100644 GIT binary patch delta 345 zcmV-f0jB=_1NQ@vBoYa5NLh0L00Xc900XcAC&Uk}kw%AqB}qg#1{|*E5X7}-$76;gcNpyMG6~X_a6&$ zddP({yA;|;Slyv63 z->wrBT!avRh9QI@fV)YH2ar$4EH7353e$8& z(vg|HO{&L8<#-35i3E$BnW~wHn9*(3#*`5*z2EIh+q{Y{(vA@2^Mzx z4}xN0x1C^-!bZrxYvHa$*bvius$m}Q%zZOsl%$j*a0)c}joke*&+~g~2xIFNN!yYZ zfCkWT_atd6gm95k+LoZQ|Ur_!7GrI*wGxpvAd;u+GZF~pRngRd-002ovPDHLkV1jDlp27eC diff --git a/app/ui/style/olive-light/png/save.32.png b/app/ui/style/olive-light/png/save.32.png index 92e52515a3c39ef92637c3e82fa3d912ac3a612e..3b9164ef046cc39fbddb2558060c7c54ab4102b4 100644 GIT binary patch delta 486 zcmV=1%m~UBoYa5NLh0L00&_J00&_KmBYBUkw%Aqu}MThR9J=Wm%mB_K@i5j zZxRF>4XG?7?lqSB1`@D}pjLv7So$Q|*;|QXn??m8hz}7_!NxmNiIvu}J2vNWNiN*2 z7qPjo+MC&#`Ej#DM`;KE zr$G>8?yTHJSX3f%mVS25rJ))CIsi__;!4*2@|Zh+lVvOgpsHO@h%u#GkevUjx=6Ag z+nXfUM&dr4a}NM|s@j{BTtwCZ>=gotiys33Idny=jy(S)zj4lWNxCtohte(ZI{!&- zh{%qrmTF_EV3M7(5T&;v$xgjqpLNc?WVo9E`T(G+i^iA(0B=zgT>;Rk0L01LB-=Tl zt3P8&V+^7wx&;2~+^jN&!5Gy#z!j2!hlvE6*X!B@sDHfcV1($u@w4Jk3}Nz&Y1{EeP>V zehG&CpJWq2FSbvM$YNsMi*xQqL@r2PWNogh%OtmQ0hrlpTK^}xkg@r>bFM2Q?xz5w zjm|6ftn4U(nGSoRRM%R*G~8Mak*0>DFxZyNDgBH1*v9RN>J6rBQKRR9366hB{- z=miU(V>3e(MJK=?bi$k(p11!z0vM_Wr~zt#8lVR70Se!2OK2F&za5L2t&yDj%gCyF fABN!>;@|N*0oJE)1e9Dc00000NkvXXu0mjfZGzS^ diff --git a/app/ui/style/olive-light/png/save.64.png b/app/ui/style/olive-light/png/save.64.png index 3a5535dc02494f15ea00893e357d6c5c6b8d73cc..e4c8e9fe7547c7aec0436198d3e45a27b4111f8c 100644 GIT binary patch delta 692 zcmV;l0!#he2G0hNBoYa5NLh0L01m?d01m?e$8V@)kw%AqeMv+?RCt{2nK5tEKorOS z&jg6l%~HE$$&f84u>BByacc(kY_+d?MkI`-s|=L z3iQ9g1DD2s<#PE1z%hUwnK;-1@N_zzKB-o#og_(SLUrauE{&P_l~j;h9E``~R=r+- zEM3S+0Az-J7W-+Mev+2pDxhe@CHO7?5SHLH3)E`0zU{a%=B;btD2l#2Uh<<5od9P3OhiAIG|6>}^iF^=X2#54 zS4hb1aqvz6P^<(m1pviK@Kyj&j0CR*0P+&N7XZv9e3O_WH$nga7-Ldq{<1>C!DKRd z@6vDSKXc{IswFZrFTI|bUjsN@yWYADH;7%A#`jTx6Pf}N#oBY!1TgcJR_&Xpy#$Hq zl9@q&L@(g@+~$dz0AtJyK!=$-ckSa2n<@)f1-S12uNfp^<|`t)yuNuau)YIEqtOQd zN62>zY5TG4En;<|tfHpyZb^vXH0PO(U z1OeIsvaU{Gj^V)$)4Xca(2ZP_fvlXXv40dX9k5m5{GV6|v1H7aKR|MslBE~U9}A5T^_^lk-{&-bMxW*H%_E=Bv4JgzY&v(l-TSlI>@_n# z1+ecR&jdif(P&(ZMx)HZ__v5`I>&K;{06`YfL%9nunXW}mSqo`&E{Y_o#u|}tWcKy zpE*f!o5T5h-fOqpJFW}a3UD#)jS$g6mSyi*9>d@p)HL{Z z6=DLk)>l%s|3qvNjH2i=&vPh$rJlg@y{!^40b1*vhz86&_}4LP4^>PU1=ybduNh>j zwZ4j?=<@f*#tV#VK$@m!%zTV$Pl5N8QqP(BrBcf3KEfqMi=fN%|HsUH?2CjV0j|&g zANe9dav$J@1nHfixCChdfUpD~1OS2(j5k9?H$WT81VBGYlJntkxcvKnp)WJQCHnwQ z(lk9YJ=_KXHyoK7w@HBU57#ycFcJhv2aqNRkPaYC5Fi~unjk9$%S+fFZl%&U+m#(9vghf00000NkvXXu0mjftP?x6 diff --git a/app/ui/style/olive-light/png/sequence.128.png b/app/ui/style/olive-light/png/sequence.128.png index 34765160fb15d57305955c541dac6f76256a6f99..9e6442977379044c1f64e22bffdf5dec2e4a8aef 100644 GIT binary patch delta 890 zcmbQhv7BRq%0!cy^`V|Fjv*Cu-rhCzpByN1?Bnx0Qj7O^v#Te*Jkn68R>vY-9{HCi zPc5&8_xPg&%j6H7{K9Qu@lkJwz+^p#B<16c(?WtCG1z`@`~2T`$?2UhYb)|67s;zI zFie2lPtd97ThQ9dMWHnz#Xj`{jMeT>KC00SAW?1;EjJDgNi%DBxQz^f(=hN9Ew;J zESVp5Ny7RmWqm?_FPISt5D;@b%SOUq57kf(MD&|Dx^p&Dk~kf9=mJISeoK z_SLW6)j6Ao;qKAbTkrVVtk^pv^o3sB?$>#bp3P$@5kDSLB5c2E?}XXUYIo-Rn{~GS z;J2un#g_HoAHUfq!LY0Qan4pSWs_;hz~MqnH~@nurkHWTZi~K|u_odmBY?qC%qVd8 z=tQ-%tPSrTNpu74)@!>EE0cET``^T3e}>L?k4mH8spY-nRJa(sM-S-W`q}l#JLT%k zON5!BKARx@-@+&&JN{e@dqdv6iq*TS4_{ZfcsBZWQF;ECH;pdl`ONEfS1)FlzPl$k zqU5_IHzF6`F!c!UI2Bnw*7gtWW)^UphOs za^9Y4cJDW{FfeFsx~>1_?OWU8@7E{A?f4z+>Hlc^*9EaNZfHEU~iUEM#^s>JB|Kj;6v@&5Fgb!Xp%ekpHy_HNEk&K=do z-w(eioo(^mm~*~s@%P9ti*Bqrt}|=N+!wBe%RfXGd=q!CXXsL9I4aoih{K_fWq}1# zfDEHXAA^WHx^T?olB?Ci60PSK&AgcjGspGIq8-6MbY{&wd)++b!o^?d4?n*sz5T2F z#Y67L`k&>#v&>fEJzSvD*ECP;wPed|k4rai-aLOZ=UeL5sJF9j7U%9T?WzBt|99j6 zLaVv^-d0(D@sHuZzboYWVMYcBIB*3r{gzh}~0~ zZ2ob{cR#a*yDMHF%X?HZpP@wj_>PxqbyupDw_l8vN&YJ*pH{Qj^7~_%CEN^mj~3pk zouOsO@BL;M^L(b{^87D{ggf)@u^fAM??r2G-aVPTUDb>C3!Ch!EH3!|>|OiC z*Jg$9(uM50-OTglY|}0Rb*Vkv{NRl~w)nypjXTtKRf1B&;@Rf?a+@<2O)#AN!7~zM z{*IULdgHcVJUjc?p5wL$)qsoxH||R3DqTE#`}DGR_deL(scU@wFnao{DhmdN6)(jV Wr85goOD7xx#geD1pUXO@geCyiSedl| diff --git a/app/ui/style/olive-light/png/sequence.16.png b/app/ui/style/olive-light/png/sequence.16.png index 0733870b5a21452d2b81594306d9605f02acd0ad..1b1f2c236474c8280784ffd355b0a0bba8f614a9 100644 GIT binary patch delta 197 zcmV;$06PEm0^|aaBoYa5NLh0L00Xc900XcAC&Uk}kw%Aql1W5CR5*?8k~<0lK@db= z4Xa+GLn9+G)$@2D^#~^3WFt>7M=&w)!?b}c3^K4YY-(jyP_LV&WoBDoNrfc6-Te|{ zybW0g9Dqd)z}*36z-h=rZ8_6CHvxDw0-m|)fW4$mO;gf6rF3o_I0F3*%xni7`5tRb zeJF&h$}+$xx&&xa32+5omHmF|0_gwB(_i@mj)g7~`e)bQ00000NkvXXu0mjf(!EZz delta 214 zcmV;{04e|E0`&rrBq9WJLP=Bz2nYy#2xN!=000SaNLh0L00XfA00XfB^@Ht6kv4~a zlSxEDR5*?8k~<0lK@db=4Xa*bLL(zF)$@3u)gzdAlZ`yV9KpoE50rr}EHW%JY-(jy z@T!}p6=U22OA2KBCFz_}y7pOPy9E{{1z*j8V{bww3@{&>0Ng7J9z)Ye+S}d~!Z+Yl zIdEM14PuNt+Xp_!8i%DWWb#!B3}AaHohztPuHXVZOJGUe)CJK0m8ZY*8!$IC5_o)M Qb^rhX07*qoM6N<$g06W{&j0`b diff --git a/app/ui/style/olive-light/png/sequence.32.png b/app/ui/style/olive-light/png/sequence.32.png index 5edfb1e5d4cdbb39144f9107a8cde7c349116732..ae17e4f5a0c337d25fccc6e13a69947c3c256002 100644 GIT binary patch delta 213 zcmV;`04o3d0`vlqBoYa5NLh0L00&_J00&_KmBYBUkw%AqqDe$SR9J=WmLV3xFc1Z2 zgG9u&GPwnwa}@>W!f_8GlS?e7$d(B9HDX8a`~RzX3kM@9rK^ZMfXN`gsp?Wnd2Ss9 z5xEsB&=XwBlhcgGh=q%!p=-N z=L>KHP6Gc1ETxqDH-Q1GD4flA?FkH+Md2U1{w5CpNfa=kiZibpxc=`sAfaQi z!^I*>WH-x79??e!bS-uV-DzZ250ian^`U9XI}1yLn3QkF%yoXPZ+Lk2euh2sgxhWm z3QMDA!KRgy}D3)Zi)-d=w{q5JKonX)$f59@9_ z9sP|FXr)0zMq`GA!xjeFohoPvF~wW6`F8q>sbw>BjTBoZ#8+tF zNtkWjzWvZ1(PwK7@>^GfosBSKk7(Y;vvUteC*I@Qd{=erABMxWi~FC6G^}6%0#9~V KKbLh*2~7aGfWIaH delta 428 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 delta 354 zcmV-o0iFKz1AqjOBq9WJLP=Bz2nYy#2xN!=000SaNLh0L00XfA00XfB^@Ht6kv4~a z9!W$&R5*>rQ?W|KKoFgoENO&fw-fF#x!`A{uoioZ`vU(Wpnu|7+gONozCaPIA_+OL zk_6Er$?n)hS>lRF1gBcwym@b!odK8`=mM9^zZUR59#Isnl~U(Y$_GS$G|aqb6A`frf?!`Mbs2`?OWU@0pB+R|v<85T znRk9LRX0K_Qdnx5J033`x zo)FQkV+PlVc*D$xBa~HDwIKk2vMetEAVb7gBI>_$WabVL-vA&RYuuZdBuQ#Dj7e>b zi1MN+@+tTK7s+`GUDrJdAr@dAQ{VT+Tr+3917iVeE(`_b`~Uy|07*qoM6N<$f?67v Ah5!Hn diff --git a/app/ui/style/olive-light/png/slide.32.png b/app/ui/style/olive-light/png/slide.32.png index c4f42305378760f5ecd46c6c1999b3b1b4b66ec6..ae4fe465e312b2b37771466ec26c1cbea12d3602 100644 GIT binary patch delta 517 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 KMNUMnLSTZ(1>`aS diff --git a/app/ui/style/olive-light/png/slip.128.png b/app/ui/style/olive-light/png/slip.128.png index 4d013cba6a7b0d03be4ce267cf385c71e91697ac..9a7d95bf6d592be96a14b6e7760083cf12accb9c 100644 GIT binary patch delta 1979 zcma)+c{JOJ7RP@fLHd*=N*Vjo3T-W8DN1UITB@aax{M{F)LQ#esgMXIc7~Kx5e#OO zw$@r&V(FMiY?ac5hG~P^k~S?x=*yh<-Z}5T_wM9JiSO-b(6bExU3gw66Z<5uj3 zhNX&%rEShTyjMQR1_u7Oh<`a#6l=$>%WK@EY)rcpe-=Iu2ABdFxUw{PVP$>&<|wwz z)=O-x2*8Degba_2jPx)GF^{gJV`unJQ~7*;$@HGS#2`Z3HKZ)Mk=;L^N>)oi2as>d zoStaT%*?DW#Rrhyyd5+U#6?AY%BjObM2E(v{g(Dq^Qjkt_X{Oxj?G#g6HzdZB4 zYOM8rKgbzjm(lB-f+RFB3qD*`BLmYK}T4M+2?fJ<3g4qq-xU=!a85PhHSPOqcI5E1AvB%|~AxuwJlO ztUP4aJ0LQ!&yPX@5fI@1(cmQd@$d?om&l;v(OYfFhHp1VT^pLkLWhhXoW$oYd+?5uN0t)C&q*NugB5eY|j`GPF!?9ndr8RC_ z_7izbrvfM_>-lw5$>_6O|3y)T_sZ?%6p+NHyLH(0`KNe(VfmR`d22yPof!yHE*sC@ zX7`_6Ja!|r%gb~t^|EsqB=W)w3nn2E2Ik(d5qThTQh!i$Bs2Q7jy%4 z1KJt^OWScX>wGQ&M{hKNVq_Wa-v9=)65AQMcxFCsHu^xYQv~EGAj9m*EU1_DjpkJf#MCM1T|_S?u~1 zl@bLq_E~;Jru2rHmWk_mce5tF6Rkqp-(cj^GjP^qW3G(6EUqS8x(W0QKM(8XKwm!WN&P-6w*>G;Y!go7N+2ztk5`dGh_1rgLX2Gk86Wir7Y z-~!&X-4k#oM3{*V_25ilVWa9ixk^~rsIeng3Axn{1HJw?wZ*`EEyOkU5#1oaUnd-X zmt%ZT*7r60c}`t9L<|OPv3v3My`4TtBPA);Qqd_^N)7SKZZ@@fNIONtW_N|4+rZJa z)^e1d&mU^{7Rv%J88)lht|gN^nmXK1%1JBC!9EkcTVJzwExojBIu*|C<po&=f>z#RlvN* zo823(=Bh461jax*tY{Pjw|dmGF!1H1IQmP~?{{|#KUk&EO1FCckpoz_a7dJkS9N7&xLi;BJ+_(A&?J-SvN!MV z4B)6>Z82p#bYI(}iL1=Gcq)Zbp;_&7J;%K8IWI->5FpU(|Mu%rA4LZ5f~c z%TDbjsxt>cQjj!|flYl9Mt!S1s$enV@EX0i`%zK`x5H$1;Vf(_V?)P0mo3016crU2 z0TtJmqL=kEks^^lFv_SzXU?dxVpdt;5@h9Z;`Zj6Y1o^#Y}ymyALJjO*vhE7b`o1T z$_dx1?yE*NwELW@w20y}1xFp?I}<+rDMEt0P5M%E%D?Uxr8JicQHhW0B4&9K3uYRm z_Y@#c^M3>JKYb49^QkH>XxiLsUBUS|ORIo`;7Jfuz>f@r2E$LgMie~TR{m4z#4Gji z3M>rlAil%UgqI&CF9fx0fv1PYV%A5fC#E{W-lD`KPm?zGrM4`&3tchG2b1%U=_Q@` zJP>1Gz}9c}q4)5Bfk2kgj&7q;Y=N_eh$&AS*i+iC5i)^px delta 1984 zcma)7XHb)g7X3ovnn(+QT>?f38j1)OKm-M8kxn4=MR0>43`j3QAm)oa2(h3j8VyY( z^e)0uq$!c0NRtJHHK2F$9}2WJK@O5YqVSMY-1PH|S2hMPgF4cjD_e474?2_fBBU?SR{dRQNuKLc-rHUJMrq6e zR`P&pLegaLsKI($;>grU>=L&{ALu?R_1^;jQGKezJCA%12L}fQO-2~zoCQpVH^2VO zjV63r+h8jmIhU(HvVTO9CpZWcxNBEScSo7gGOqve^i%6nO{G`uPH|_v#$mn0YcVak z)o&NLs!_{4i~N~zJ`2n16|h!Jgns)c#?E|xc2p{o;N+C&HKfT#jGN?*DG&dw2Xgg- zGW$oK{m_K-u(3J;Kb4#81E45q;LQuKvG+>Z)zT$LND!U$U3HjWx?;S6KL3B+l-9!F zDcBQ6MzgG?fMbSX@9MPSDYk>d`h8D1SQoXHo)X>nds**)` z#g8E;C2g|DR1#KbR?e+8TNZC3b?@01Hxd;t6YztkAC5{ax6dT1s(-c22+J?`mDrPJ z*>SEGRNY^AV&%g!gcOUW+tAa~cW2E?H*d|4COD+ZzMs3C+?=hYk}CoW}u4fX=D+;!H%pW*N%ogJET03oi5y} zmAGU<#>j=+vti|OSb`{=F{^veR5ukwo=>g~7}2uOhH3qB9eT*KN~BE?>E?6a%t%Ee z@wg`jJR64;tA(-Zv*i`#Mrg$XZylLHJyvbBW?OTW3I_AXw{+HEALd4fi#`FH;B2WEo_ztOaj^FhF&>s7~>p^Suw6&jqd*Y3oHwh4t4d~HskSmXt zGj|gqEx%XQPwxL-SpOgdfl@U05&;ZG2hn%!baua>sp4YxT`Un|K$lhHJQm|g#lmD? z~1&oM9hiqwnJHB zBZ+b7N`sg;83(ScI6bI38@v^|()#HKftD$&$!Wuqf+t+&DIU;^Sw7;elM za3INe$o8Cn2&;#^WUrQ&-KhkaSYvlHlowg47d30crNWE1AQhvbY;T>Vv1YYTVIX_h zWz)o0eY;u7dLyHN%2SfRPnA*~iqjl2L~I_Xm`_)e&f;cgmLdIv63nNtZI#oRUEKwI z?PoD?RomGRQln4!`;N<7m(@5Sqm5T*S-ywYJz9JRDr(x%-QC@?7xY-rA^DxTmX;Py zO&ls2<6AizBoGM5^O-=GAgLYPc}#DWMA1KL0?f@!+Yq0R!m80w{fdi6tP8gwp^X!c zXu8m1u)k2(0@+seXvu^!1!gcNUHqDke-_&7QM$V5$h3<{kP za%S_*_w`vQoSEo=T3iUv8lh_ToJgxUCsU}U>_!Y$s~=x%zIL*tRJ=tJC_5{Yid3u^ zou9fk(Ryp_zN_yww*%7Rk#Z#9@&sd$)8DO~>;vaUC+*~RH8^hN6u+fhT@i(Oe!nBcvwIS9g~{H6mLAE5_##_9~K|9qMZG2tajA5Lu^ z3Nw^#D%r;EtSLTMQdXX@#tTuz7IqW7%UF%02;Q^jm*V!`>DT`%(eP_0b-Nq?MT>@! z+b&-V>s0hfK&b9Mn)5QSqWTuo88dF;_T$Cv@E$H#6XKXHeyTo}CHAi(Z287O7Dk80 zuLGFf65cYBB;$YGfP5oBnWv(YYRez+3{r7TJPFjqouV;zX3Nzz?21<7Fxa8n)rNj4gTQh+0YKv2B?V%i@)i7Pw~ zctYWj?@LAl_YZm1yieFz<%9C`53gz=W?ud;4F3_YDLc^Sml2EHCFVgu47)P~e2pb3 F diff --git a/app/ui/style/olive-light/png/slip.16.png b/app/ui/style/olive-light/png/slip.16.png index cc5360164ecc6af9d2b4b6c5a3f1345a373accd4..65231ef7fe45a06e666692060e803c4024e280f5 100644 GIT binary patch delta 372 zcmV-)0gL{j1d;@hBoYa5NLh0L00Xc900XcAC&Uk}kw%AqKuJVFR5*>LQoTw8K@k3K zZm*6ejj(VmM~F{wg@x~sLr9@Su+JN$_bDVzNF(Cq8Eo8wMGPBz|3b&JA2K5nhN(r>?hJRJtm?) zfKqGy1^`NbsUrXdGtXD6RTc7U4y2SFBANjh1Ly}(0boo-Gbv@~*8)306hRp z0P}!X`dlwbl4)2ZQc67oxC3ww;PfwZM^W?w;K@06bI1~1IKrp3_S)M7fF(2MTI;UX zy35RYh;25TOXu82SOCVDwY7HWi9I1ivBTmxzJT9XjkR`Yj9Krn+8K>8>oiTTgb)QY zKYn|4?tzGSyWN(?nA#bC{DHsoB+U7LnCx?FBm6f6fO{fZG!+ujf|*YaHGnU@@p=0$ ShV!og0000LQn5+{K@fd!Z`*)!jj*r@A;d38k-~q-A*4_g?EQoEeubn7X+%uE!6yF@ z6mo&J3nwBrS$1qLuoo>nGv&;iH}B01a9||X+PgGOKZ>GwtJBzSw|k97<5rOzh7kI7 zCx;OFB!{YQ<9_Jz55r9Ed z%0y&Da%zl8ebc*=)X$ycdx(0H=TPP4boGa|q$) zkR?iN;mdn}UCIQ2rHJ(MJn!Ur-Vu>rT-$E97b5Z*6TmsQ@!ntUypqf!$>%6mcjLXk za?WjbwaOWta~o^zCCQBBQ$+A6B0)rE&bi7NfBZpt=W(1X|6#n3tyuVPXc2ixl4Mc0 hQ7N_X-k%&Q0N+K9g6zrElKTJv002ovPDHLkV1nn$u>Jr5 diff --git a/app/ui/style/olive-light/png/slip.32.png b/app/ui/style/olive-light/png/slip.32.png index af2444cebee99b8f3d659920ce220836b1752eae..cb3c9227137926721fed364d31c8e814cda1d52d 100644 GIT binary patch delta 533 zcmV+w0_y$81+oQ@BoYa5NLh0L00&_J00&_KmBYBUkw%Aq;7LS5R9J=Wm(6P1Koo_~ z8N2&zl3mfv&=)BLLr5Sm&_y4hC6GlIp+89%31krxng{4BWD)AnK1z|s6jou6fgHNeA@BNmfeMvt_zN@P0b5q}q zBjCN?1n>dCs-zWT%==6zYxoL)H2~*z?(GeD?>8l#Na{q*qfEH!V|*iZB%L&w$Qnq& zNe(5w&E-gXO>%e>6G;O_QEX)3uR;h{xz0ieSCV#rQYNgm+o>E{YrjSvJSmD|!x(cq zGwgR(^Z*wzb7~j-EjTb936jUw+Nt)bDIh7dtSJK_g#PRt-k0Jjh}-`tL?MK}wRVT( zS!NMl%;v;OP2;@W^$gJR|8S z1ux5Z@-oMnTM08J3;-s=3E)QXMgzZ10C-9A8-VWs_5h?7=}^)hfFE`2izYabC`9vO zYr{=Dq=WJMBDt}nlQU0pQHXwYKy)M=D(|7 X8)_7=(waB300000NkvXXu0mjfDZ20) delta 554 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 Hu0mjfn^)s+ diff --git a/app/ui/style/olive-light/png/smooth_edges.128.png b/app/ui/style/olive-light/png/smooth_edges.128.png index 21120f6fe4ae006a94bda0030a193b52dadd79fa..602283f68f0392a79af091dc1c1dad2d07d1b898 100644 GIT binary patch delta 2683 zcma)8c{tR27yk~%u4XL5ty>{mWy#ExGGv?V+ttL7Y%zmuMRtC3voy9eiTtJ#3L(l^ zLS&LG*OXj!aT8On8Ckncnxu5+eeV0u``>&1InO!I=PZAGo^w9$RBm7{bwf@LL@QF_ z_2nDU`O4HC13f*|_y;iwQ_rUSy750REuDQE(Wv*{Tf(Nd;!4TolCRZGwV}C>_BS>B zUGRrmfwAo^V`F12o#Q^+3u^mc+&+NJ+@>r?b__c8>y?$|CEr!+*AGLeg=Z5}9ts3V zI~xbaDPdAPg<3YUZ<-?%&aMP0AiTY;^Tojqk@aL}IRYZ$$j2Faln#M=vC zB|t%NP@_+?AU8xz>Wq=JM!)=%n2+n<@;QF^JR2rxi=2_;z6PFnHDg!e0DYdU$vBk$ zd1*4tyF0A0P#z)wx~&Jv-KWR`fY`_RhCwgm2Ph?Nz>swYPV;4oudt=kdWCYh_G9q61ac+1_ly=4I z16q36N&EBgs!NrJ(cIaN0xRL~hWOoz=f^g4~Po z@dOmRz0Z%t>J@&s2*JXyGorL2@To;{D^rJO@Xr!J#MOyHM^k#}>FDTHe^I6OJf+wA zSi(>lzW}bDL~valzTc_NfGw`M)(DG-=klyflq8wy&L7QI?}Ra(K)(GvRHO0`VqQFx$Z1j4F5|2G(Rgy> z!r6{*)u^B{`ekB^gr$e4!ccH>N(z5??qg2*b{WOmSTT#-(b3VqFJBUCP(j|^er~wt zXPo*>)B|zy0Ov+sO8ZWTNRqlgcILWQ#)3xZ6}cF35nIMlqZmLaU2g-)iP7olo15*f z`(=D+^=R0c(v1pIrMYmXSkv^-p4mf%t#y8-(nVm`rJ>*`-O6Y%@p~PU*fM}15jC!7&6HFt&^@hXqcH*s-xzV5}?b@0z9$I{tDji`4{ z?Okk=DF^Dp!_G(QGzs}FHvn+gQ|?cj`LWO&e(L>x!SlCo-x{h+2HuKXK{Qr*)H<(y z`qWO0yLtW#slhYWe1y=TP9U|+Nyi|^&k50^v3ptYx|K>t;H?HE0F+HM?Li1%akTUC zV=HYFW?+EfAfdEl@$5juwIcCn(|p=ScX-Pkmu z+kajvt9VuKC3JW$ufjmH&%MEM^w&=B#Enf&O_{=Q;BKrK0Jv4gjXjwY>I9rK(GiTF zD^y}E?XYP9k(nbLqe1y#N=i)3{Sy>QDV+%dcs4BD;##Kx0jE!N6@mS)Lf;E$a5GlW zOZ-a$xKnvWSn(5hZ39%L9-z-(;h1RxTn)5eq;DwdzcMm=hkhv3Hy6+j~)7S=lJ6zasa zSz`N}Uq02yA-?m3lL9qZVyMx(95YH=2rnyZP!?EzuGq@()r5A2AZ{C?bt?n^1$}vB zbS~!*?V+umozi8TxGqafbZ>)s##6DIVSf>AF4G^?t3Rk}S$@ng$q4b5q>b#M`<-G|FD6Z2lVzQ-{>u)4 z`T6-o8QRNrgqM2du125Mx=4TYK#&Af%4F90l)OT6kIB9}23Fp$tfY5%)Lv2fYo9h| zHvpviS5*4^<=hBLTPDhl+B}(`n_Ao#Bmro0s)oKS{e21n4V8*-h%Ha>&%De>iqc|= zu|YU7{ST)>Y+WxrsZ~jh?U;%`ejr%s8X5qzk%ys7iXyv4rNqHlaB!FfMICSvl=71f zWVJGNqILsQ0s%To{GBiBD~Gd?5AdIuQR@#EO{=Y~?F?hiwttKCKVVM$L<{jwh)YN) zJifQM7W1-ePmnGEiDi7BlGbhPfILS^&V1k)-ePiW40p1Yq=T@B%-={W$BA1trLKRB z!@{X(_JGgHYxL7Y_fh=m+1hfrgS~P-+#sm_UQ8i zpto(g1`#3O$vBGL!mW84^fxX4K6zTgPh2Pz_AG5|>Hui@K4_6*$B*F&W+Q}LooJm_ z07RdlwZ49l7N~XtkgbHx_A7W70cJ$t7p6m$yU*ruI91cr(>*vrJXmI_vgx8%VK#C) z@h9J*{t3}I15?Jg`rz}19`gFCLh_##V9l`mZ7c9B-ZP5NesBGEGlt`iQ(?n zgOp`wYe@?lnx;GAjPk6cE0C9-O*T_&j@7>04K7N&8P+6^&1ZczXBTLQWQ07|0aQ%w zqR}Zk2G)tY#~0At{+K56w+2*@E-fJ=igzo3(ldIx73AG^*Smh_Rk%=zky~u*VntL~ zy>J`ZE~BHP^PF%|poUx3(yS$1!Vf{vwr+R17oc%*r%06`Ku>1x;q1IDcYJlApQb!7d`yD%`ISxZVuNiD2>%>XNi4`+t3X2EndxUvzN^ z=us?XMXNFi@IlvOj#T99BXM6oymdD^IQp-kOW%}|O0-L9+|s`nh|J-rE3wf!;QT)t CAMf-4 delta 2624 zcma)8c{mhm7k_6g*M!Vq##Uh#OO!HXOA`&3L6($V) zo5p(F@~I)-GIzuNGo`CrJ*E2O26gM?5ZHIqy4FSKgH)!>(#nccZf9 z%xSuy2pm=5E8_Ej4tRdK{6v`@cAuD-SP?qKl`9(v9c%w0g{O+0_NYSOK!4e`=Uq3m zRN>?kSJzJ6Xu1?czCDUs#pu@2SW=al*2k-_UH|6X+uM5v`VcwFZ>9nf?69W(&9*FK z>cNG^T_%$$my?s@Tj;5G)d+h!YV4ifFANJSVrkiSM+s^6xA*Vgw~$}a4HKkY*wYr` zH9i3ZN+_x)75&CXA7vo!LNLTGS~fQ|MOn~>V9T@7cED3QpfsXXq_vJkneg&$P9r z;m~S`KFmPK`XixG=wxN`^6yZsm=PA6Nc$&be2IOubObt*l7bwI|$t^7_dgaX;1w4q1(~X zG11CI0j0_!UG=**Z1mzL5Gsx2MWPHhn0N;FMrLN_pa_>#?Q)9q`{X1rnipF@4m;!R zsOKABIUn(3Z4Lzo2R{_07@>tl;|Xs~+!{tA(B9wm!1Hx0cyUiS&o($7u?a$}NW@l6 z-v(!I=dUH|JWHqoLeV67{tv+3)tG2ayd9_7+ z4JT2fFfA+TE0*PgGe#DrCU?45|9&SAI~I+^&m#&z=1uNAi4`;5iy;7a>!zW&;KarBsc_Z zc5zeb^lmDgPx>A=dn@<03gkh-;H*A5HIw0Cclh|q?$^26+S*wA?b^E8`ZVM|iSGq% z20*#MJ;(}Okm&7pbs?N;1_2t?L!$0>AYy0fhY%~mrln)-}K7suX|V<{mJS&XB~YnJP877Tyzddta-rr6Sxp+dX}A(%M24vU^BzE*JoA! z&8S5iLQQiis(H0EaHFg1lwSy0IpaQ{meaf9c! zf?6J5_-`naXuY5dK>7B;UNXW9A}J}U1t}Kq7ZUqYAKHBhi++0i-${d)sypa11t=OL z&mn_8^4(qZ5!&i*jP)LB-G{|yV<-;F5s*vOX#_oU4?$a)O_-$3za)UDG&-7;#!xRG z;=H8Q9};WVsZ>H=wIrCfXpb5y&7W{b8}zKLt-%qUM>JU#jP4_v9Sv>Ew=k=c0wV?P zo(hb=NV)bol4Gj(B?uQ>q^=M=J zIuQKc2KU8;p$#qU9}YMa1_1ZNB}x!Shb$9gCu)jj>7ZBP`dvge0)V6b9MdReTh*R^ zT*>2GjBDlf+qaikbp&4=eJlrnnus?B5U!nmAV?e#O{n~3DclJW-Qx!-<3=yAG-r~& zKr(N9KcEk0|Ccy*~=g4f7o`0+@se_StUB$y(_sdtjw#doxhzom=R5PVXLvJz zveSQz*3fAkkMth>%LDQQmbR{xv4A9>S~lfbfIW~5;K8ENE**>tn0t4O5`fV}I33@B z0VYs1a#9;HimGI2I|(YOg=-(Pzcm@)Iml-HB|XrEidXLlEYIMHCFU`9@eIdqJKZ1y z0A94OD3v9h8>Vv$LOy)f*(5S>e#U^XIN_%HX{oUEJkUsvU{O z4hRnqpNy>x1It?IT8n%mDE=FJD!2qBh;-?=->7=nT(y<(K(Cn<@k@fbUTcAA;R~{0 zAS6zSX36E~&`?uDA%+u+*U#J&hxbvlka{R>`AkdV<~BL2hkNm83F+37r9VugjK|~I zNTc+}&JwF7)&TbFGva1;P|N3;bVH)?&!4HSRD( diff --git a/app/ui/style/olive-light/png/smooth_edges.16.png b/app/ui/style/olive-light/png/smooth_edges.16.png index d73271b9a5102f4729ed13e58fafea296134b6a6..95777a9a24c8d2aaa1a365269ca6165a7104835f 100644 GIT binary patch delta 358 zcmV-s0h#`v1eyepy?;naL_t(Ijh&ORO2beThQHf34WvVxqOH(EX}P$GI6B)!(80k+ zP<#LeWlcf zh`5GfbR5U|Vg(dHtJT_!qUdfKD)kOr_WS+oWr8d~rBa!MVSm^L%5iQ1ZQHi$wbTL;naqsle;TaBN)0lZjFDQ9%jJeMvhCD@UavO-o@2p@*1A6LUUrcH zpja%9lv0O4K3|HWgHoyF)oQh&=Xulh=02oZn$709h@Ab39n&AO;pdM4lttubJRW~6ZIGa~HiID81)9K{>$>*<-^k{5= delta 363 zcmV-x0hIol1fK+uy?;$fL_t(Ijg^wIO2beThX0e>+dw)b6m5lD2$tX`;^=G_K?esP zLGb~cdXtvkN?0WjVM-TCLVB%YU*SfM%XsMAUN}r=BE9 ze{F+;cDvoMEbEY&ubFuxk1xV7d@dy@P)c>Aln>0@0Pq@y;pr-Yu`GP!~cRJB~AvQbyD1bbj8_kF<#Ex>o=$7c(OAP18IZ3Je;9_b55UUfCNtm1as0iuL4oIaW}2o40JZ^q20`!y0DonpZ`@Sf@e%+4002ov JPDHLkV1jPGpL_t(oh3%HjYZE~j#-C@C25g1yBt;QZ*miRftsY7*f~f~l z&_g|V6!9dAAPD{&J?qta@IUYa3hJo}2Jr(0X*&%{7K(O9t8Bq_UoQ!6)2&Ij+w|gd zn`hp4=Ev~P%nR(Y*lswEa~Z%Dl6wJoBGLfxET7NM&d<+(-hWYm(b3U~D2nbU29g5c zA%JPEbv-KpD?SjBqniba2u0+qh&&z{8M%}dKrTKg7K=F%xzHiU0x+qR8ZyQ_%@n}* z{f1J?05}9-phNDMZQD6x%=7I4Y$(E(%H{H&LZL7$A}2)TB7ory$)u3Hwz#-Bn>j#S zKOol-|dEobakV$0?17N0a5{w+<#C5=<-#~1Yp;1fru<8c)fdw z^7;Hbl2P0vdBkxXrzZdl3k%Bt*8P4WLXx+(x>l;f0RW{`0l>*NyJFk+H)G7}9S3k- z_d^f_Qve3zKFO+5s^GfrOV9J7P13gy;CWu8lxmPXhxMHm0Zarza9%0Zr=W907 zXhJ+`w)4k3tVxm|ecyl8GBW!MwAM40Wt}1UAfaVz?Ji*$uDc=Iu7M;~DwT2=hNl2j qNgf1nKtz6!ysfpqw-bA&)*mvv+u2FYVfO$400{s|MNUMnLSTZ)tTK%N delta 661 zcmV;G0&4xi2F3=Ey?=B`L_t(oh3%G2YZFlvhTn5137E=!#GptLn9$jXRu`cg!PJE) z=%OxMintO*5Cs25*SfV`_z(Pmg1V}LLHs~L2$Mvcff8Zv)Fg`}b6l8WI*m;_ounJz z-F@%5_dd*=bMFBTSQIo&)4a*dw}|L40LSc!F;ReAE;lcPc=C@} z2JlP>v1HqJH7WqHZ6L(yU1ABqW#9K-lUDwl6%2$yB zc%D~JrBW_4p8zm3V(pw^7>ets#2*u2Jk%S6VYOr!}ko(*Ao8R34;JKpmMH0DxZ5AfmA6@To=0gQR8Mgnl)Rlv*}L+t5Y zM6p=xGZFa#`;=*#=2QU6$)E%4q#c< z*H){w2tW%=6?I)tSeEt9ah%|9iVnbW9ADG4IuTvL_AZG4%(vU^tE#HTQ>j!lnM}4f zH#diNOn+mwWV^{U&HK!JcZ|>tA;crwwwDLZ&|hFnuIs+lbv+GWZbaw|GZ$4=UGqGz z9vJ`tNGV_T+xfF2_9P^d+3&;zQy?^#eL_t(|ob8*AB?lWxGJ8y1ilNDySB;=+>3M=)tRy%SjoiM{VFpAlwW z7j4a?DbsV?d+sf(|_q4A^Ezh_5pZ6GE&uB z0Gg_LjpXGp4F7U#H+>cjpkA+ks;b8<>x~0A1K{+t5=PGeX21E7#6`(AfbU6;G@H%w zCA-UjLa&Ry?|%W{#U<4B0Bi$rC5+uruXx2LQYxBIf{T%C!@*=z0{9%f9bl_dIVC z$qImCN@F*SG0%y}Pbt+~5>`9GZuaci(>Fdo?w3lX0e@B9L2@sEovNDn=0;LGozAgV ztMy~j&!$D<02ZQFs~G@?Ngh?zb%_j+Q>wZ@3`0r7OHxvKB#Fo)5&5;hzyFk~_G4xf zWXn2|Wf8fQhL@zI`b?ghntC82=Z!IUN$!H>K7-_|<#PG#^z?L;rXL%eY)V9AtWv4m z1aJU$A%Cz?C~Ods^Dg}K!r87YilRwl%zXg6ZS*9!7-LR}$URq{7Q*SaR7A#tAgIFb zp5OuaTSP`(dRk~uw*z?IS0o==%HMZtW&xZBFflQ4M^#T+%D2|*_03KV%_Eavg8;sr zeMzz?s`|ETGu>noKp2Lis#a@zx$hv7lGO|VfPWusM5;RE+DJE<1)!>9meQA<8kt9C z0jycG=1&_P$qlZ(bdy;C#bR;VMyIOlU3=*!vjA?~xbcsrwB*#tJhHqAu1Hn`$lE~P ztOk&`fxKA_Aa4VCvl>9&2J$BB03O?jhKGmKI(=G{OamZ!-$r-)_U*E3FLPuXfU4fL z(SH?-#g|-rnIr2Z(6SM!>JHaN=EypLrloG5Qx{!iy#%h==t#abd*JGvOatia>-*V8 zH+$56*sYrxG7Vs2V&V>Fnkg5B7k+YSTC7wmlK>9Eu0_WKaKIRIUqo!r z7Ocr7fGCQlf*{xo!1fr-1F$;?g6hVN8^@w3vf5JHkXzfTG3E-%j{qcTs@ewNkTGVh zG3Jjn8n9F85?d;bMq{t4j;Ly4A0*qV`kUu@7dxHKl~Sp6t6VO}qobo%zc~M^lYeyJ zw5e9B$4MSZs~*XRs(MvbPuTPy=H9s-$MG-5nC$=>DU~b&7$Esx5ClaLx!g;fdjJ5` z7;^!@Fw*NxpJS)*``6<*e(EE1MZ6LV!|)M+qW~_XUEA}#p37?`%m4s@h&&OIbH4Ad z_dM?nq;!8G8HmVJ|M#>aWOZdW6_47E6!>3)(eIH;;tyX&hzz3LVrrc`zv2VgK z{JNLmnF*kq!NI}j+wJx{vw!6sBsl;eP}TJ$9|QQk)9IXSwOYBf;IHy5@f9z-NSkQ| S=w6Nh0000& delta 1291 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�jYMQtmazy+IwWUGF? z)ViX@lWmNyvxCv#onqyx;m~IThB}2Lm^W*2Oo#xumPo<1#wa?c^3%QQR z-_dp~6VX@-DUcv8GA1i6J)C3Og2p$m2EdvX5s2sURxz!SrSU!19U92r8Vt zW|idjE9BW_=W6=u*RFM*B?HB@J=LZs+rB(Dyqn}vdlmwrMP)PN)yj0p2B;!9j_43N zhSNWoI3eo)6!#g?fdr$;5eq}rv+J+j)mO=Qv=;0~`y=D~OD}mm;-j=fN>@)e20xJ8QWDIn3cCxo}D%Uc5{dhb&w^mPygAc(JKkf?0uw_{=CpG7*F)BsCDE# z4ABgkDOD)#I0lU7QZug(E)9V*?%VsHCg4&4I62hI(Qubnog-%vUQd{NS*XO5IdXNk zkXr0SDSJP|B31no%sxT3Ci8ZfUy04eU;QVObj~y0QlCQ%*n}L9fY^ei?v=xqfqlgB z?Yx=jxj?RC1UyoiU;G_2uJP8Fdl=$EuJWzew*vz!rr`5ezu0@{nN9k_@h0nLmW(56 zT3V6Hw~Ej1PI$@1ogV7B{np~gBb=WO?4c3IZbZ(s&k+>O)L>0MwW!KPy9%0E|8z9+|58sBWKgnaQAo9MfJm+r_-2LK(5uR8C1#9NyfIF)e`1kmUZn@Nw8!ZhxZe-AfFLo-%gec-gkx$Ld@2DetSZDD&e6r+n7UxYEdWkpQLP66 z`MR3;4s}vXk?nB^=nz*+0KEVyJa{(i-+u<@50ejsN+zDmG%vByZ2Ne4?yHJUMpm>Y zpKi$@|J#C@q=R+RlyYYFP*K*@3~pW=tAXp2Vj_5d@}uAJ*vR_QUJ;4a+x>7_PxTrW6?@!yf_e z4f!hw$15?Kfi)OLASidr8eslZ=O;^AU<}6#@nteRSx_JBQE%&7(OdjruAu$#3y^+X zvCd$w0eX(f;($uv7_j}H;C4+~-r%0!N1DXjm($rP4H?(v0KRqaN-WDP08bRc&Q;d1 zvLRl*dmn<1t>bIm-Z{V^CbPbeLbwhc1`5m=x)Vc)oBFR8sPp@EeH4)Of zszbMmg#r-T5bhGS(ihJdUu>~V(iQAL;uPm9wbJ8YDV=<%^Ti?ZI;2BY3$A!#8*^Kd z(fB}Fx<_FQ$=rt%wQwB#uEF|pI{M-Zq-)+99F&3SVcM5_p8U~elg9f~Uch{@GX3=A zge;`+26us97LVW2-90?mMXRosuaHdnMS;kDyp&+s#a_Bvslq-O>HDrFC4LHSRmr+q zKs$bUaGVPd7=Zv*}YSaAEJ)az-%=dzR-0YELdeWCx} z?6n)K^yYMwVT+=v>ibHUW_tMjJ|7j0HWi?P*l!H3;8ts*rh2n9ZhO$SVl&tq7?(Gm z?@bEVCecyS@GrXGD>D=|Mq_ZNGp9d?hL#-@QeuOALu6wkWDR3%8gy){|EfDOJe{4 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/text-bold.16.png b/app/ui/style/olive-light/png/text-bold.16.png new file mode 100644 index 0000000000000000000000000000000000000000..63ced7ab8d15202b1f17332950af1b682d79aa9d GIT binary patch literal 588 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9G08$g&*{RsbBprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq}8g)5S5wqIYW0UN4zI3ETVItxw7sbQ4dAXzZ`=E)m6nnKq^1Rw7`u4H^VwWRF&!_^(Y$uni*h?ngJMZ-2s^xdS1JR*(MJE=o-~O2Ynl?vU`7u{8{4aBIPvq8XY)YF}tjhP;CwG69l&|uOiEmbB6)wKN zo2Mz^|3xu|J4_a1BCpEP)VJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^MzsYygZR9J=0m%D3J zK^Vo)nVSR`Q)GQb*(G6i*Vq^WA_!X9*r{M4Xs0AdKuKXC*ru=%(}?&e1VIEX)LQ=m zF$7{KY<6}dL408#VU3&IITo(4Z0_B>_7V@=;(q6wncqB^?_OY=#pXa?Utf;okTE7J zDMK;?phr?S$(;aFl2QN`Nv=rxPI4AN#d|;1+1WW+EEd0Q8lb}2=5~?{$q@iow*(+*!8!Ld#=e`+=L=yNJ^`>V!ao+*Z`-zD zW@e@c;8Bd-lg(yRi2~H+qJolWjMjoKNy#q5yS8)&l^Lv_ElxAP9E10H`Jo;JrT==aF3XwcNIwaA06y zPpwuP25`Pb+WV~lq^-5rB`q3b7V96KX#i;egUidygJ`{?ADnZQtpIdO8U+CF{VFr2 z7y5xJL;y(619)Al)$YyB&HZSV8wK## z7&9G);UQy8M$!QQy8(0oNCD_1*$se_7V5K{2jCi4{s1aI6rIcE RH!%PJ002ovPDHLkV1hh?e-{7% literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/text-bold.64.png b/app/ui/style/olive-light/png/text-bold.64.png new file mode 100644 index 0000000000000000000000000000000000000000..c276db62e2a69ca482af07e63e63d2dfdc961d08 GIT binary patch literal 1610 zcmV-Q2DSN#P)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H102FjZ zSad;kbZBpK08L?XbZKrNQgw4{Z+5rK%$WcH05fz&Saefwb#h~60BCe{a5^t9V{dJ3 zZ*FrgcWG;BZDnL>VJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^M$cu7P-RCt{2n_Xxe zRUF07e`a^vY?4OOrfZumyR)oqG4w?WN@+FdQ(NqVf{2Ltpx9dK2MR(J1gZD|g5rbt zpic@#(Z2dY#cKSbY88wcn9STHYcYx;Nt11p?B3%;HYJtPojbc*XVM-BS+eK+@7!PJ z-nqGV16JgE305Sl&09-?I4S+5Y=_J`!i=_c10n7t9 zDnMDFE0&(ioi4 zMTuwtisUJhCz8qJfa|)`EorNsA(zW-5Rori(YS%;0DNLu*1MkPec#N&aRIPg0{~uB zO8wr9VpcPXTxRVAaLjR>g9tH){a0}W002pnk2{X@T3=sZs*ys8W?j+$A(DH_e~HK$l4TK@ ztNm9SJlFo5?% z#5V)5O#+bvu%tvH@dB3383C0l7KjQnOAY6$=l zS(nS@c3;4@k9LYJrKr@zQ?e{$IWY_|62H;wjb(iOP1C11k%p_Xv*yf5;@zs+Hg*fWdk`k{u$FBAJEZA3m38`#>(2 z`#9*bxK%5`Ure^e0U(>rb|(^vZ6dOZFRZJ`41rRqG@+C_;rsrP z_V)IE0M7t86Q-7k><;>Pj0}L~8XO#)S4thVZF`@H81D;`v{R|nZ9%+|1hAyx;o&io zkJdgjWU8G(Opyiv07|K!0DKoBx;2O?@&EvUVk_4fa^>%BBFRXdc6rTd2MDp#Ck&!n{bFl|dyX{|AO1%{(A8P<2;)%%9SKR5a zi2NfWFLif!?`@>>K+Ns{5jjQjLz2goQs;c%Z@6Y%0M%-BGL=d_OL7az%~mY15{S$z-w@Kt^lb1E5Dl)?*P&nq&tSPkPb-QUFjp z0cxwgu9BP)5t5t&FbQC?w)HgzV8piVUtQNNHQd9ix~fa+U-DP<^hcxAjQ{`u07*qo IM6N<$f=*D=O8@`> literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/text-italic.128.png b/app/ui/style/olive-light/png/text-italic.128.png new file mode 100644 index 0000000000000000000000000000000000000000..c770394d3599e5dec70aa3ac492caca2a0191ac4 GIT binary patch literal 2001 zcmX9RK;syIO5=>r>01DmM);@ckefIf&e0zUq9|_yO#n^yq z001x!W-}u&k1iRJfbGhS+PL9B3pe2h>KRp(p=06`bb4CG{= zeOogsqOd5%;#hwBn!U~vA}66;b~k9#vKOULkM})IjaE}JYZ5hQ5+(Y{1|P`d^$j?! zFlWgNZ7LquJZDKIXE?V$$!f>d3y;U9OP`I@*2>gsghnRfVaTDO6?ckNPOpPzuT0oo zAP-shL}@FoO>E&=wpH0E4n`K2p|W4x+iz}#{(SohMq?t!%IckuzTrLCwF;rIw7Y5o zrA>*6iCO)2h#WA}fMoc|Tg3Aw?XbMtwwbGzeyZygkn>4+(TmI~;N6=BZTuySl z5xx7un?J-G$@tmgEv5E7{i+>Byo;-!oF~Hm1=8bMTGED|3OaGh=!kv3Ux|=?;A${A zx~{LI7?tLJ){g4-xRkBV2Y??NYYn;u5z0H`4n!D$MrW_Q0vmjaZ4Bh(9$+X$HyvrMbUE~o#HWBPO#9PV=KASCU}p6eRw-edK|kT$$o^I~QRqi6%3Ih~!6 zv9`h>#`dz_>-2R^Kvgvy{mK$ZLLBF_R|AG^fUfIN&kjPAVHiciG|V9@xW}zfW(Q;a z`uQ48mCMvl^!oMdzS7spN-y8GegE;HkT_;f3_PhP=()t29$kRqTZnECuFqlY<%8!8 zJCour=53DjG~BWG(kgzGcS|6%%h$&z^SoE2LHS%Fxc2w9iV9en;weCtWks< z{nsxZ(!T42LFLqT^ySN!1aw;wFHiOH>s4lLYdmMU!Y8M;PCvQ>V)oBCOr;QrpLM$4 z^$=|k{2AxXaRZPJPpc9$Z)l$p%Faz~MZH7sd3{V(dL>*CD;N;{lg{kqnQ@1y5OffH z5OHXT(=pb zA!#c7?`e+|wwOf`Jp%%CR*aQSYisxEwr#j6H|Qoud)lxkbvrV2V$>RDcLSIC+0IrX z+-)PS@z42C!mc{g5QR!4k{B>>W|-Dk?ds}^YheGp>G0;hckkYre=03sZhN9jtlwM* z(W8JRt3d=2vuQvT0M<}VibvU!7TZ>=HdHAo&nVFf;2LFMl9e}}Lq^Z7M z;L1E$xBZT)F=^OQ5#!Xo;0PhC4lCw!nAi>G4r43QrSzDeD^gC61sx#?{?&^;{{te* zfC0kf;+nyL0r08uWrrl!?GNvTQ?h{8?~}M~V>yed_g928A0Uv|DOyC{)8yUO zv{1F$^Skc*#Ic9uNEO(dw{VW%K7PowAp;80K2H4gv7l@I`~>*|XAO>hcJy2QvvrG5 zKTHo6ot3^yF4<$Hn*0iruef1<`Zm?%hjx81zoD?;7EJ{_jt#zln^E5+FCP4KIs6!K z$y-2KOU0$2SxF~$Ii1NRUL=wKiw#YS&R*AwpmPo1L&V(_q%o)6ggm5l>-T9LSRo08 zIR4N9e&i_milgGg2N7<5W%f6vKhEoL7wwi;kA2AjJA8Uws{Kmty8+w}OT%flf7GFu VI3VlD`3;+-AegnC*|sS<|8IalT$%s? literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/text-italic.16.png b/app/ui/style/olive-light/png/text-italic.16.png new file mode 100644 index 0000000000000000000000000000000000000000..62aa787cd865cf8cdfc3f32416adfef493ef2de3 GIT binary patch literal 491 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/text-underline.32.png b/app/ui/style/olive-light/png/text-underline.32.png new file mode 100644 index 0000000000000000000000000000000000000000..04bec5131b097df7ab9a052627ae0546459eba29 GIT binary patch literal 611 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?5GL=a}2dU(e+prB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq`+Nr;B4qMC;pWd%c()MOx3#y{o_`xN&2o*=EN87X$u;59`13 z>geRuvTxkD-EgYeE9s16!HeY{>CL(KGg~FcY13raD-G4Vtc#z`;V(;I z|B-xg1Fz;&sfNqvbXsnFsoihpm0>r(eCxHRCoatkdX+aJyvOTTuoq)cgNOpF2ax*6 zD&SP}P1jfD#M_U2Cyba4K4+Kk9WJn9Jm7Qxjt|d*t?S&=m7*lJ&Yda#`<$IR8%NUv zP6zR(j%z{;IWFgH!&YDYWw8FGP}%%Imo4vhy_>Z1&gVU%N?L9Sd5`~WWQclQtn{dC zf@+J!$)`neK9zkl`)AI)bs>tQQ1ZIrm%v*Sr+gAP;P;*3qO@^5!w$~F8`v0T`W#Dq zrpvIKVVPB2njLr3gBQ^ZeUE)^ZHr~vkoD;si}2LVH{aAP4f@&fIda*8u+^esT&=6q zHfJ(Nuq8-$-DjLKC5XM(P1&Sr7EfU1JahJh*)zLco-oeH&EIRVng7APO>187h@QVH s{;t2m(wZManMprB-l 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 M07*qoM6N<$g2_Bth5!Hn delta 228 zcmVD)4L7AFce1NbFB<=3pxr4mS7V)50haK!ysX0gmg6gGzsq{*KuWA`i@=L z=I&=n8!CpGT}mkjfM&o~pbz3k(so=o!)7mOw}d6NW(M#Kr0BIJwO!Y>-}|A!6b=RE z@M2&I&juoRG7!ao12y<3P>VkTYcLEqFHzDxrF3)mW5DdkiMwZ8`n6~S> z*Z5c{;Q-aonygU5hn?mEq}QxHN(VIF`@aQj;*tSTxKuziE)kG~=MG55a|Z0fa|P_i za|9g1j|Loi#*YMK!S@Da!}kPa#Zv>a<0%0mcx-?e9upvnZv}|sYXK_wQh*vh7odte z=N`s6_tpXdy!V#@2Ob5`EBc=?4p3Ta&%hNZh4DUw&{}J60}fz>(aFX?R}YxO)dH4q dm4G!I;0t^tbGnKjdd>g<002ovPDHLkV1g;oe98a- delta 302 zcmV+}0nz@p1Iz=EBq9WJLP=Bz2nYy#2xN!=000SaNLh0L00&|K00&|LIC`1ekv4~a z>PbXFR9J<@*E7nr*a!M)GW;=EJKQGq0FEn^2ojZWm0@6 zWt{i^3>3f?-L*g+Lb&t~6C<3bQM?}}MtHZ~P=M-0q#CKmiR}2bIugc^SpH4`>PcQ5JEU~xQLVqj~|QGZhahJlcwn&I074G zyannk%T65*;FQsq^|1U AivR!s diff --git a/app/ui/style/olive-light/png/transition-tool.64.png b/app/ui/style/olive-light/png/transition-tool.64.png index fab1fe4cd99c6a513c28c67b8c0e5857cbee236f..a9efdaf2e4cb70c519a758304c2e903f416c0340 100644 GIT binary patch delta 543 zcmV+)0^t441-k{1BoYa5NLh0L01m?d01m?e$8V@)kw%Aq=}AOERCt{2+dWDHQ51&Z z_f7~2q#Mvu2I3ClLex#zNI=|(W)1e)g^gqf7SkFCq#Upq3mK4*-?~3Sk20 zd1EJWlgXsNTCJXdTi_BKTRP|Fd7i&47K`tF5B7$`;WO|6jAU*T*$B9)s;a+Uuiy7Q znALTCCv=p5`0Bd8KlDt7oj?0+yEybfCUJ%4{RfDBfTzvce$YaISy`568=w;&(hkrW z59tQ*f`>E%c*8?_0leZNtpMKfkWPRgct|5aFg)lF5EKu(0|du|-T)$a&>27s5BdU# z;z3scaXjb=5Cso90z|_@`~Xq$5H~<{Jj4s20uOP20;s`*d;nE=kPV;?4{`xi;z1^W zT0Ddgpc)Th1E|MCxByAuAxwZ|@Zdi{Qh4wiAUQnv3y>rp`~*lA58VSKjfZXllE*{) z04DIzE`S+4oF2dw9!?8j4iCo%Fo}ob0+_|a;Q*%bMNv%m1u%~XrmiT8&)CO=Tv?Xa zo9{J$c!>Y6G4cJy!vsy=Xq zonMYEopWz_p1%$TgGYAY0i57b;@kJlH!~aH7(5saa4a4S1~>%|#sZv*2SWkc;K4|M hwsq$gGRCt{2+dWP~K@^7J_d;M;{Zo2kTe%m7XCkZ=GWct|vWFFYg|z$YFO3*Z|M2?Yp&heQH|!b1W9LgGPrfY5kQ z96$mON&`sYL16$%JSYnwjR!>mV&FkZfLM4?5FjQVA_s_#hll|*;2}}~EqI835I_?i zgac^9gJ1xScn}Jp6%PUdG~*#~0PT1P7$5~a1PYJ}9s&eN2@jqFq=pBN0aC<+rvRzq z!9#$Q@z5|p>Ud}nzycm>2C#yM8UZZfp<)1Qc&HG-A|6Txu!@Hg0W9O;OaSZn;cz%P z8X(Iu^LXdnBpVC{U$Kt~xy53CG1`A`hX)1!8FSZ}05)3vm=__*i@`!HMyXrVfwTZqthi-y{VNdH<05 zxA3W{PX+hIz6+N!R3~g`P0=;6mTfKUZ#5G!-hF3palzd8*UwFu^W>cFjh#PT7=Yl4 z>-$ZW7BcI6)F$73S+Yx6$v?F8@)TNs-}%4p zUhm(!djHV-vu-{Pn|!EsRo~e+1twB^=coU-$kdWy(AuSjgonciGAw2P~z#+Gu zk0CBP+bf?jO7O6;r+wSB`sIT(>y{02$u=i*PsugZ?cc9nf3HSo`P*fg=aPG-ujJi( z3S(-XXFzwr-Gaet( z(sr-hdWW$hEKR23wC(99i~w^{_jAhw;R}{~b>kuDX0B>K#Lkz5(~U#+iRT z)~fP1tg6#8=G*ghUMf&r1ISwWsxV8plEI1NxYDPsCtL~^ue!c^^=kRx*C*@eHywZc zaZBc`e5FnCDMl5Q#f60*RkzOA%iUoZ*Ct@*lCt~r#(+7iE@RMuEr3g#9?eFbxu=b~_zK)6mY*-#W&sNSSoV544ysn;^(f8p45F;)IR zJ;AaqA$j<;ozZj-2=4WvI#jq7f z{bDd(%pYJ076VbDV6m->_yY`qVn9mr7ud9S&&-WjBBz_}lUoVmd%F6$taD0e0syE| Bdwu`_ delta 858 zcmeyv-pMgRg_ot+$uool2x>S|IwmU4saN-OaSW-L^Y+g9tYAlxhL6QcrC04IAC2{B zO^Ki4F>m3vFRC@X(RaU@w(M)&y8BYD*{)4*7cqLbXgqN$Pde5bE1H&9^nPyeS8d|GrmM~<&O`|`_@^_O41sd^v3;?=hA|2$Vc4Db!DuYR8&`t@{; zoqfG_*P{{>slQP_-izP8@&5bwz2D!vJc(TEnV7n0)p2ukb9wQbdrmChe);v+d)+4{ zcI22y@rs$bJUL*wJ#^aB){Y-Ho}FSY`2XSl7898_JadX?r$){@ZsyAGu>b!3>HFu` ztXbx`{r28DXVb1P8yz#IKDY?Z)E;pbXI4BSoO4n%n$bJU+Q7b-k2_F!w~fGzjD|q zn=JyrxqeJc6N?DGI)CBT8{r3@n>;=c^(OKd-+|>Oj~@umX%lN=U!c(y9Qt=!np{NS z)!Sdce%*Yb>cjE}CsT~-%g@z{Pi$71e6VGeTx@J?E$>?Q_e^P(9om z{`lh$=N#v!xe1Ze#Lw;YeJHSI*5r>BH9EfQn_Z7gPp!Q7woKpk$Jd#7V|f>zhF-3vtw{+v10%uhkGxW9a`)_6iEC9^OGJshi5OC8|)m`frY>_K(S>& zDWDD*=y+(9ar7el0p~A_M(*+qN>1_&V5E@$g;BvtULoHJBJqW>$W30M_zR9Kq0%`$*14aKBz7(ZSPZzGd1mb(T`njxgN@xNA!2~71)`wbw}UG> a*Z^&kMff8R@Q#200000;qFytmVi5O?s)*L!1d4>`fdWhO*jI$dj;z2Hszczl1|MHwvFc5^{ z-P4F_YVtl2JS!sa6BBd=`VK=G2109+6mh?b$jnA$KH%WE9zqC{h(uLA^&AwDyQ-#~ z^YVH?2w@_5HM6q#Rh}-6ArY-_ zuPE{zHV|;RDEYYQLED>Jo~mn1_tQPQm``m#vNGywX~$cZH|}f`k9DnKmyy}t+~JcZ z<{4MTH|yr)l%T6$YZ(P+GTb?v^UiXgYY}5X@Kw_%(MJOxSLT~-=3q#?@?t*|!vvq7 z+j%;lI2kdvx^q0ZRr&wpPY&C6^$wS=bu418ew>kWq@Q_fl|-Q(d)8NjMK2uI9&_8l l9KVzKU4!)lFj-Kc@3VY|s_RR|SfFPZJYD@<);T3K0RV7aW03#= diff --git a/app/ui/style/olive-light/png/treeview.64.png b/app/ui/style/olive-light/png/treeview.64.png index 30eb207a62abe821e1334e2757682327d25814e4..868df88a2a1395fd9020f18f711c9ff2dd2ec160 100644 GIT binary patch delta 434 zcmV;j0ZsnV1kVJJBoYa5NLh0L01m?d01m?e$8V@)kw%AqeMv+?RCt{2*fCDSFcik| z_gr;hiGsvzI|6zD004XsJz%N_ zp$DJ`gMPH c09kq!2Ya#o;RYM@f&c&j07*qoM6N<$f?O2Hr~m)} delta 436 zcmX@la*<_%iV{n)lV=DA5Y%v_bTBY5a29w(7BevL9RXp+soH$f6V2M|^F3W0Ln`LH zyBNFlq zccOXBn`6CRZoCsQrF(sRUAEPvwWakO3r}0h?=xSwirefM^Vx;v$L=u;Oq}{w=i4je zYxxaQ=ZvQJ7hSAoSoJHqHg%ow)W=M*4FP!Zl5$w zoPYn$tQQU)I<#(#IS)LspoCh9XVK;~KJb!k5 zef^7Dw{HDg_69p^%RPJcybGLM;otx`=T3AwowMUVNGw2>W!+AvbJjU`qJrI>9A{Zd zX$R=_dM^QQS8(tN2duTvsT1r>#oF86U=6F zb91k?_M?i!2f!Hf4kdX{4P;sN3~;>a0sx$Ik7zn5C(E*~bM8D9OuJ<`=Z45s%et+2^ zivv>v7-Q~lrk1p)gQnX4cFMAy62Lk4XEWv8JzjFtLBnnTF3!0>ieqI{z^@I|at|p@ z2Q9Sy?OZ7ilnL--1BFbH!gSC^+b=McZP_)z*Ui*2P0Z6lTWxM z7}NMPFkw6$L?yxI=H}i!&p)P}wtqk2YPZ|{wm3NTEMPbs=KJ^W|HnD^LNj%h@<1%l z4zeuk8e`4@kG5Hdwf4OW7cTrz9G|rw!1nw7&zy5l)?C+Ij4?lrMx)m+UApvJn{_OU z2Xj6E#+dI1gTW~vFTOVGad2*}Ju_Zn)EXgQ7IGoO2UU7Rs{8Wy?-9?Dez$R zr7ccqoxqpyfos4k^A?NlxF&Ec!6(4M%F0>-W6aN^(de}A5_odK2XK8f8ohS;^5u*3 z-n7uFU`enTp@k2-SQah`<`ZK0u*)BYNP==g4Ih^HWsoGemypAU6@D6qBnUoySW*Cx z1TlmUD+mDTN)SucUC z1TlvXH3$IlNDzDYP?G=bw^;YyH7_)xO|5S|1ng%1q~0O3fGTKLeA0N}p_ zDTWUX3IP5}kZSnQumIqn1Z!(+d8*+<3j%;&tBv8#^7A(9V1d=Ub$`){0N_t2@PJl6 z`4d_b03-n|hYu|a07*;Gdidah0Fa~vUW5;x2mnb*;7$18kpPf{1YU&?o(TX^OWNCkjOC5SeBh*$uqM1rWphsXthl_ZEhd^t!!09Zb!PXPrS fgb+dqv1|SVsEZ>;IyyZS00000NkvXXu0mjffH-%@ delta 1345 zcmV-H1-|;O44n*+Bn<>}LP=Bz2nYy#2xN$nA)IMDNkl1uylMX0i zGvF8;u%^?AkYGSpf`SVdf?2sX8n@~~#GeuT0qRQ3XtH+aLJ_w@Ku{PL6Q(=)z$S;@6+F@u0Ay&ll}!5lRW_ne^aN^=~!zoWLdTW zV6AXE_yBlfu4>_5;LCo$|2c3x=RTsCO3(jH0WMy=`1H}y(HFoga~^n{Us|o! zhr7GGe=WIx($sPOf2Rttxw-k|*|TSFIp?k{dGH}S&bjyR-Mjbaitm#Yd7iHuV{QVM zS9u>}%+kO9e02UWNIqC<`kObB3%d8(dT zfP|-my4wCIe?{3Ab%4Sf1{IRrbWms8AH_NM_xM=RHNbuiwTzR@bkIQCALU?tplAyC zt)5yYh<-X~qV11Tl2{wUVkAI8Tf1n73VKN(}1m%X!L{*$Uax1{?e-z?MlEF(fAfqn=Jj^F{r%&|kN<11j+M#t zeBC*>4ZPTJDWC1^?EE@DSomX5zu&)YjJZ>NO*0ApnxN@9e~2;WPQTy3U9@f5&%t(W zZS7+Ut{Q75SP6UyA2=9fX^S?_ToKgibUMztTfnnbRJH&?Eh_OS{D;PvYqJ)Mp1LM* zAi=l5f4MR%TY^8FbJu;Bz>^C;fJfHa_wL`ne|Of4=2{gj3FafT@L_>v;gVoBA%+hN zJ{TeiiU~D*SmMbbNpO;o!-o|f4U+`nhYw2%0Foev@L>f3AYBP!2_IGz0Me5nrtqNz z0U#X-VhbNi5&+_tAja^aL;)aP31ST&N)`a(f0H2Q@Sy?$ARY-~4<9NL0K%6bh47(5 z0U%rnQVAa_768JNAf@o31_2-(2~rCmY7zkammtOPp+*6~UkOqTA8Hl={FC6!nKL%k z@Sy<#z^~QDgTLOd-mQv81OTr(LDMwy$sf{~03ZoyIDBYW07zPb#={2>1b`$Z@FINh ze?$OCN&;`f2ag1RBqZ=EeDF*Fh*|>g!UqopfG8#KGJKfv@8X-J*X#9+G4BEoo35n< z9vWlb@iBbxv;z!@pc8oe$sgji01&hU-iHqX2mnD!5JdP8hyW0j1i^$40SN#>NDx%` z5SReqwFJS14*?1QUP=&T_~7Y%fYb2oe?EcN-}6r+$PO^XgH90aCx1xL0zjh@1Rp*` zAOJKXK@{ObBmzLK5=0X|L?i&zB0*H)Lu3L#r4mFJK13)0R3br?;X|YXK&cW$8$LuV z0F)v@)Zs(q0>DZVL?1pRAOI{SK@#CZA_Bld5+oBoBqRXLB|%c*Lt+BJObL<;7#|W8 z0172YGJHr>05~B*mTLIP(;3io9g+qXlMDt47c9*G3_Zj`yPZRa00000NkvXXu0mjf Dh9z5_ diff --git a/app/ui/style/olive-light/png/tri-down.16.png b/app/ui/style/olive-light/png/tri-down.16.png index be3f1382bd0aceac1d5ce3a47315444232c65fe3..108ac6b6149750c58f17579a7aaf9569222f2442 100644 GIT binary patch delta 334 zcmV-U0kQu51MCBkBoYa5NLh0L00Xc900XcAC&Uk}kw%Aq8c9S!R5*>*kg-kzK@>&L z8`zqSOGh!AAoC#>hHPi8KVe~KL18Z+0Y6}jiJd=SLAxp}m5mA6!h{TApUn;-5ipkA zWSX0I&g4Bf`be6lv54FOL{T)z^Ze@&;GAo(R;vMks@^t%3svm{c<+18xyyYL=Um%+ zKL)yW^=edqbs{3`y6AfE$IiL-U$BU*Rdv!R%kndh<9Fa3Fu+MwRcA?(JTDfDZ-7px zlK>;&G{C@3Q4}u{en``_4-A23Jv24OTrHQ&breM-ptlXrX0r!?jR3$}n;B#7Rkcx9 zA7QlsS5wWh|H%{ukl3I7r??2+t+cM5_e99BfMKG@@~*@Lmx gX4cy5-{5iO2jTyJcVy=5WB>pF07*qoM6N<$g4N}jIsgCw delta 351 zcmV-l0igcu1N{S#Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L00XfA00XfB^@Ht6kv4~a z8%ab#R5*>*kg-a`P!xv0)7;!O!DPA_ZlLx>9Hew})|YT_bLil%57EAWh~VZ6ICNIq zbg7FFG6;oIj!Pl|(~4t%xXb1LzI)GsgOB8S9;@mNz-F@feouU>k8syY*qEr6=_t+i92L*B3o6R1yxmj#Buxv zoB}=I$QW~yB*{}*mR|r_mL*{rPJrVE7Llu>D4wNxAh6vAe&oF${Tn>2d;^yCe7rc4qB{Tp002ovPDHLkV1iI2qVxa& diff --git a/app/ui/style/olive-light/png/tri-down.32.png b/app/ui/style/olive-light/png/tri-down.32.png index 3fff753d07aab64e03fa0376307bb96373dc7966..a56a536bfeff8fa0b80be19b39d57ac56b891658 100644 GIT binary patch delta 477 zcmV<30V4j01^NV#BoYa5NLh0L00&_J00&_KmBYBUkw%Aqs7XXYR9J=WlsittKoExi z*`=V0xj+)fTY+*31PzLm+<;fd1%Q$|LA2Cxgj|4z3xIev(aMpi5K@*BkqiaiD42Nd z*bxQfuU0$j`Mw>?1{PW5zlZFiTCJ`UQ4;`|xf_Pz<2*r0{V6K06VW+-(_)02pIl(jPUC*g?m<~G7r1b}|O{~(0eMZ$j~Ax28ModyRoOu%M_No2aY zP3iOhV*^7miY@u9T|(I(U&q{!~5zl1Teg TcAAm)00000NkvXXu0mjfpc&NI delta 491 zcmV{aW3s_IMc{pB{~v)Sx_uq?~PdVkyh)Peqli2O9yDxF5qXj%$#n?fTbn#h(`O>`rbYfkRZqP4UseGCLI~e~dxSV> z3sK46cF13N??1&Ce=HmmVu<{&07F9zmBZSfu+DTkeIz39frm|X5&30iuYud4^40(V z&bhg&UI59a5U{!_O@y*6kBg$X+T_qp1%RR`uFUK?uxzTE*`(`hZ<9mE1R`CNXrS}t zk=6-Bx+YPh*U2NjCJ^Z{iQXqZkMx>Aq+=3yI(g(y6Nofi(blWB^#HXHI#fOy=iJ;m hH@|oBjvfCLzX3w2{KO*BUtgWrxOw%+3@I0@5a&q#! zy0(flYya1O1T>q?y9)~oZ&dXu(C80eipXKF*L!<*cJ`yZwu_Us{~-ZU6s-gM!0j>h ze|etw`t`RhOpR`ZG<_t#-TJ1@H!=zVB}{B|LztE~)B&UaQsGEY`9;GK2?M>1PED0jm0B z)(6g$gpA>V;jEr99%gy)JV?kBzRy)wQ@~}`2I`bhAUqgZO#$EYG*X9zg5kl)Y6|$2 zx1lN}SO^bBR)6pzNs^Nw2<`*-au!_#o-Hpgf9ZC+r5u)Qgcp&+IF8>9zI!9rcSYnV zZ}BpJXM&~hN51dxnq$8CB}tNA5CjJz@_>wg6$}=E=RpvBO_HROv&Il%7;cEjo~qs| zQ0BPT>+QsGJha*Sqj&Wsd@d?MM7C^52*Ys0_x*hf;kP@T&c*13YXV??B$OQ<#t4A= zB~%d}CJ2D~Bvch1rU-!QB~%$6W)J|?NvJx1Jj^Hn%9l__c*r0C%9Bu6c$n}~bP`b% zHALjSsy@#1djJu+P}Q9@P5;yt9&!qRD+wP|^-CNSlbh(QFzUdVod;)z8tJgdlRbypfm}kgohFYfZaX8_L?816aipuPq4n`M=4DJ z6kZOcO?#741wd{Im4t^11VCm9m4%0j1i;J^Dh&@63V^8+Di0483xKf_Y6%Yo-Uk%L zc&T!uuJE-JMNuP)qQ>+)9S(=X;cz$`91e%WE`I@OUx*8dL>(>w00007E${cngl0R{@6aBBXQ3ZpPjq+_vG$u2OJKE!{Kl^91h3-h)g@N zv9WP8Ns<6SDb+bSIr(j`tl}(M|1|-BzVF{vO1%M|0xN^&3*ab8lDFM%_eWVpn;>ib zV*~-%pa{b+_9+HeI+0*4Nh`0w0-Czlb#3?e@1}!$?371P!Isq1O7& ztU*NNERN$B%O=71{cX?l_O;flv#t}7pGlJJbUK}104jB&IWIhb)_T?RynWw)_qU6e zZH7g|18A-9h)8pIoEGq8(E*o9LYDAD(pg6WwAMkEftNu-p71c9Ri)Z5vKCOKguLMg zjIySe!1p|bR3V{Y__3_%8Sp7@K{h264L@L%)f;|@qUfYvuippmFMda;X!%^AR>EzKr3(0WzGac;ajy@Z7<#6r4OPgx@_h90wA{pE8)R{0LU!CT6nM|02Y>D zH9S}p0COc+4-b|Fz*Gs9golE!!$nBFO5dm|eC32;xH1soa5x+u4u`|xa5x-R`3wF} VT|n;>U9bQE002ovPDHLkV1i5rf7t*4 diff --git a/app/ui/style/olive-light/png/tri-left.128.png b/app/ui/style/olive-light/png/tri-left.128.png index 05bf7a55c7db71389349b34b10583f16a539620c..2b3df60a5a9cb207ec22a0980e2801fd97718dce 100644 GIT binary patch delta 1437 zcmXw3do47) z$?O?5E)gmWVmY&k6WSwAgDzW&QR|YC*`Kq!-+#~ZKHvMi-}j#PtS+jcMY==I4Tagn~`uC}p(XC0RY=LUt@?*^44OG1nGi-XtNl5IKDQq#SJg%;9W`PZ^$)asNn@_KPTaPlz1oD?Y zFqudQUp#ufhN73XbFM3VYKT9xQY2o-$P43C4DVO}mY+LRM2tk(5@oUGdyI88#H*TPIs}l+@4rp*cM|^v*OEI z+_@E){Pg&J%H@IANj@(kwHVSOVS&mmVB+JhfmG4+Hb)bE4@S-;trd!>>{FoR-g$NVge)&3>;qIhIh+jY}&q#?(RKNP6gq zqprt`v$fq4*2;-h&fy6>FJ`ECR^u*frMHO&c<}x%9jSt16^}ArkImoAow{Oi0A-w; znZJoUMe(CU_G@pneF3i%@1-SGFhmOou^8V3bm5=yJ3&t!&le+A)ZR{o5k4`Y4Cr=d z;Vlrp&=--<_GBZe+B0?`1R+J8wc?av3wm05+)&0HyP~zFicbqj>Uj+cTJhduJPAWk z$aRSBYy32Jx2DNKaN(zA7o-Yh-X=uvaTO`^TXz_uCme_Db3Aq%ai4u%kImF)eV%O5 zffdtone})pl=kk+S0|BF)wF0;iWLsM{oOMFn4z1aAv5(BCe&eEkQOLkYv5yBd)ojo zC}K{Z1Hd|O=VK#KiMCS&050~2nF;_b>z@RoKmhAp3k1rfP@Ouk@tVw_08i}?)kX+a zX@@)$0hOT}AQ2B+BS>5=*g!jwpFu$7FalUn_>D_r=2}R$`W;L_NIPD08Dl?DYQ1Ru6TbB>g9WGYr$3`R8M=6r+^*pTbeNS8}gPzYckYFAmaHG9j zZM-e<)5CB~Y91&aN#(%*!UkJhG|ERz%AQ0}RIe|e%Qv&DvnvXj1{(nlperkHxbnDz7y z%8ki`%A~_oWGJeEWka+kv5_5G2$A!qs4EWmlBGlmiVKlTdZ~tjclN6#mY90T@usnv zU+CX=d9zz+sEBGwcK-hp!EOF6%aq@LBf4(6x`_RYB;hbQ44!tGtNm~YM6#K0_i>eD zDOyuX)D9N4Vtw*cnhMQPlcvkoJNb`YsMOU=7*^f<@F1=86tCI` zKfj{UzIjN8wEA*lYln&2JvKYI7RL1`Tk$U9kRxcqZ#hGdf%NICz}@-(vA$k YF`Hh^oEcq+69MG-`-FH)XsrBy0OiwlXaE2J delta 1403 zcmXX_dsLEV9DYA8<02^#UQ+TxVx;J?v}I{T3^C0#OU!H1mZg?uGb_{l2(M*oYIBa^ zOe-_AFuQnGXqcsLdUDNck%q&~4XaUVT3*=4IeY(lpWAt#^E>bFDXErp(Qz3jh36lN zM@|NQe}0LB4Ceduw}zgQy{)`mw0sXO*HE^S;Bf8O^6Vy2aL(`C?=s200RdMpk4U~$ za&1v-u%5^5nQ0K8wQU)die082zMwpO+jGTo-w%vKLFZ#!MhjbP)hWF#9R6k!@`+ew)rEoE`5QaIn#W2UmXW{zCLf5mX zey+4OMtG)1uC`%M1@YhgnYOq8{%vALTtq|R^y!wp5#^7LT5&-1o`JlGa^}6m4UDMr zr|?UGVrcS)P66Bo?v9@bp~VWWJpWNT7)A6`NoCmv8+pu|n~y_E9XHG`E?t)nRhsyz zti4Efz%9_JECx6EEC;$v|V&Siq@)W-Fz++WN(~3K_l$%~tuTt9eYAYIDiX*Qya%4 zo=ke~u#2*|uyjOZkAy}Gx{7Ad4k0F*`9wH(R{p@7Zfa<9qu&HD$xy+kP9oYwUm|3+^lhXIXjcea5Mm$!F~jR4nTVru5U`xwOByxIzp>?CCStBUwe8i%YhVW3WX_#GcZ|KttSt*{a)+pa1A zq%HIwq}9HC&Y<1Q%mcE@tf;`NdOwYQon|Wf@J`Ld9MhXq*A|I43rF@@dN~aia08Ng zJ$C3d&?%TqYr*&si=t7Zq)kqd1SQO_!DPO71F9@W6~+Omf;0sp3}Br#lTg8B%phhp z;1bw`T|i6?r!)Y-Y_yMuK!8T7!6K&Z)((gq{oKk(NdyG2Q}Q4|hPdj=1VkfZ zo$qO+Y(tEZJA7la1Lus*0?!!}pu_}Z&kP)=y!d5G*~r!{&Z08PCeqv(TTpZ3X)dpC z=-S!cFtxh|Sp(iR*7=&ge-;QD9EeSS_3QtOU{f!7UM!A4t-$&Dm%e&4JMXk|&1Z`H zc6+Vn@&0u$?l}vfXYQ-osymZj<%XQB1u0%78n*@iMe3uD%1f-{d&_|5wvPB zp-G|FC3e=BV#6hhWA+TEM+z?Ftbr5g$iLquJ|A9;ro6aQ_Z1YTN~Gs^b+(Bb|844^ z5gQp6TCT9F?e7icEM)UIYkdMr$8Th%PVk_?Cu8f|R@Kh~fE~u;w3<|DZSkSVdaBYU z9GxINA)GlUKXSCO$D8u=!9^~<3Ricwh9#&BnlJ-HP{zX!YHz3Z{Wrll91b2*-n-U_ z?(Yt3R=1!v9Qo$m`mKE1@wBDK?^`W+5dC6YMCrsQSMY;;6eMF+zM#r?znx0m#Ev!1 kYu^I`s?wR+WZpK}g30ue#Z+~YXFfoVzi$x#7EdJk59~l#{{R30 diff --git a/app/ui/style/olive-light/png/tri-left.16.png b/app/ui/style/olive-light/png/tri-left.16.png index 48eb36c232fe7f59771c9ebd301f1f40618c64d9..2745cbce0264a1ad4019e80af11e65c741bd493a 100644 GIT binary patch delta 316 zcmV-C0mJ_C1KI5lRZwuKoEuJ z4cM)nSaOB5z5$BF0e}Lb905224L9Hh5jUZV$W=@n*)78Ix`58JG+D_pyRkFf?#%o2 z-u{3lmQrc~;F5^m%d*sV|9ql&$;>Nb%o%_yB6_wxK1J;69|btXMGyq9{TcYgS(e=c zc(Y;vJ7#`=DvIK36fjlnjG&ZS_QiYK4=(XP2d>Ov7(V8C{_Tr;-~fOaV@z+2uIr8- z^ug6=t+!DW?U?y)51$!huG2LAsO$Q76hK7Ow(Vye$6F$@khzH5CP}hsn&xK|V4Vyg zGa|ZiL7ae7;&=fz&HyqOkqfQ$+Rlvrg{rF7BJu(spmX)TPkC6r@B9Z5f{A&cfOzWw O00005lRZwvFc5{`;511SXVW4%H$X@n04NaJD*!j3;Rf6Q?M0NmTy(ShO} zn*{h`BGSV!Ji0lfBNRn(4Zsy|g%EdtbzOhBc{CwjdE#5G^}Cl4Y3-$(Z>f1PKBT8D|t=$4S%Fg)D>+$Htho&6&L?g{rF7 m%=|z^-=TQ$Cx&e7oPPn=kBpB&|G&Qg0000e$O*|$l6P5_J?=#yj^k-j6mtNfl{sXMr}jh!g-Gya;rGlbqH4e*n<7@F$7H|#kCEx?zS-=+@=#T|*98Uo((7fAcZM)q{z*VYQ z3HbiSWLfs=lH)Xf0iKC4jS!)%!T`{G$x;&q2N?EQ(^kZQCm%I%MWg0M}(%K5RuG%d%w@ zMK=J%AAqO@a3-aE8_J17!U2Gp7XVIwb$MO{ba0!PEntHGZoz#J0ZaHwxBtM5Lzw6J z0TJB-NJiinQp&rrd7K1%!JPzr!Y2#(hEEa*0k;+i1qUpyVU}e}B3c{ZD;GFms6fb- z_o1yo=#?7~>fQgp{xr2qiH|AcVwZ0pAi%0=}O` zu>3C!*B4Y(_1bmaIRG^@zLmbfBrz7=IwPHgsV{IoghSCZ%_dFLM`qq5qFn$V04~e2 eeDTTg8b3Qw=002n`MNUMnLSTYvUazJA diff --git a/app/ui/style/olive-light/png/tri-left.64.png b/app/ui/style/olive-light/png/tri-left.64.png index 9861c42ad2708208e93682580c19c6982ebf0ee3..a436a30ba4e4fd47494c82d3ef1354c91af2268c 100644 GIT binary patch delta 767 zcmV_<&2<-dqp~dTkH_Pmwsl+*wk^0U%mcvX zBuSo1>QR{imgY}1OOoW~Xf*m`Qq zUy6u+GxOfT!NC`C3~50ZxsLY0()@0o=O10#(l`K3=7EL*XfqEq2tcEGpdkQS%>xYp z&}<$E3_!biARvGk%maY{#9|%@03aswfM)=)nFl-qh|xUY2|%po0S~*u+LqSE{4o(d zY}!13;Ftk1zxieT(t?{{9uNZ96!U;!42ZqYuSz-yTA#nKh^ngUIL7cI>qZ!3=4qO~ zC8Fy9tiQx8v_(XB(=`2RjQJsq;YFgiut^ZaX}Bp6ocdu6!VLgdgkiRbXs6%rf1XSx zqO*M$IS)h&2ya|70l>XBGQrD89CLT@HWkHx3c>4K93uqpi;>tM1X+#61R>aRG!_U! z*W)oj2)-fF4xy19nPv!$ZArC4Xmn4m5kljK651fNaw?+7V6t|e;F1a3old83jCp5Uu=NZ$k&mCHqrNYY=lP78_lW4dFhu-f z_XQRZ9!nue?hB{_0Q>{tgJscp?+dJ|)*a3aA=>)_>tqQ*d|#mTY4CqC#>@wU!E0t7 x0vN7&>=3|iQ54@Lb*PyJPgAI?vllw=`V0J!aUZB|8kPV6002ovPDHLkV1nuAWMKdR delta 803 zcmV+;1Kj+Y2fhc8Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L01m_e01m_fl`9S#kv4~a z+(|@1RCt{2o4sxnF%(A6-6hI2Az7r9ped#XYIuMI!2{4k0zJ@1oWhs z?4Zy@Vs;A>@-wE%id7UKzV?jmBwxGhYky~LkFR$woa<~$LJ#1i%JX~~xND5L3S=Tu z8DrLrG0%s?;SX)x=m8W(F}t_7_XJpfI_`53*#aJxW%)%DKWYGZo@d6GXTXjBe0AJ3 z&7G>MHf{Up>4w(6EX)I3?Dcw&H2p*gz|#CgOGQ!4+V&M4fIQDL;3;9|m8yg#+v;l&g1YLLgLv4%5N?DfgT*lHlfSAlf z#{gn84;=!C(L8hnAXf9x0f3mzL(2eSHxDfWNWna`1Rxdj&;o#z%!6kDshJ0l08%s$ zo&cn39y|c>mC_y@9Nep_>VxZlcx>gA4*N`LLzoAL8Iba{pOy;1X)zB90I9F}qf+ew zB4U02J}qO6^!xq3OAKGK9z z>S=gdAULhV2?XFea9J52p_7a(W(b|7q_INi zG$)S{Lg$wfu|WuOD-#ohVAoPUQ|bBn`S+vI=({FB@OlA{FG{NF1%h8pPVN(Mn+dZb za%nUgy|!%_{8d?ivMhIYL}V3s>kuaGdVvW95qYBwk$$~ES(ZD%11$tiy+Bj|;12}s zmqWVs0!O9X6Vj{~_?s*tsOtrSKL-D$x~}&Z7Z+bNO;Z5Hao-Vo@TjDygR8Z5{vs002ovPDHLkV1iaZX7&I8 diff --git a/app/ui/style/olive-light/png/tri-right.128.png b/app/ui/style/olive-light/png/tri-right.128.png index 72c46f98e107c6f99f74196d30ef5e335f56a44f..b4512616dba7264524d4022ceb15d600f3227071 100644 GIT binary patch delta 1497 zcmWlYdo=Y5`Y-dck!gUdEoD8KOP z0%&`}IHH+SNs@`bS*{|f@1fB?>7L_y58o;GU#_5;q|C-JNH+9~v^Bp{Qm&{sEf}`` zwkJQo_(i*4Og`;mm=XiRJJ$lzaBxA4MbH(b9i>*JR<1`bHrWsy18^_3!b zeI=e>&Biutvi|Z9WoCj>lNjJwP*Yp$ocCn+guWH~eZfAAKW~E>=)bz!R41&}|_t zRHZG5{U@bK_C%fMBh@OC&KuHFkL2EcYFDH;v| zXwLA83L?lmi0YAT!gcMW{ynY1IGLC9w4sX zMis*}(bt{_CAIUIiN5kS$|}Ky`8w(&OkSS-? z6H-+?L!#gvs(Ym^r5ANC{P|pTUB33z_8W$NLRigHd)`nqA3m7W} zGg!8Cs$~V^ts|L@((NeI2bU@93QKGPY73sYF*`BJ#=MRYnI->c@aFmbTQg}ZrIYuK ed~`PEgb7v=;m6ZG77xwS06YPHL9|*Qmf(LZI+7Xy delta 1540 zcmXYxc|6o<9LJwI?94dFkZE^k!*odGD22*88ifwWj&Y_*xhs<_%JCb=j*&%LO$Uae zFpeBe*rcDGu8mFdGDu}a{WP+s+Nlw;Kka`1dfxBv_j$g5eV%l!2CdVpwD8AW+?hnQ zQizB6g~laNk2}MenN%`e>JY2%r_UR0SwY%m=1;)wu+=p$8efG$yH|9`? zfq8C?d>iR6AMB9u)*n$$4MGOj!{g8AaR&wlu9$ZVv35R+CnNN@ijnCAjSyS) zo*hntuvYIB6=wg7 zlpbCVpvQGx&KC(o{QZX}?9M|g^e{|ik!$HbJMC~-zT7EK-eGy~nAIlMN_M0-vfWPm zswA3_6vd37#%f~pXtHX!YxtnS)>dDk9t#?}zT1TemfG|Kx%N~~gu&`GQAu?Jcr*@tMKzDX!cXM%OmyBALs`_JUUsn94m2{doptup}<$Wq{eUdpZ7fcm)VEYxqypmN8~?Rt!g_aqkJ z#cn^1wMyBVp~oE?p%eklQ6U@8R;3YL0B=TT25sF=TE-olyI%}69W^_MutH+oWHDJ1 zlfR=Pn>f*``n-@fc-%0=dZ85lFN0(^m2pR7m+jTtI^~ck5fj{6XP;g!?ERECYz@oh zavwpMCx+G}vd4Tu3Jz?>Hk;qn;u+Fdgmg4w%z^4>i%DmZ+4>=tm_C?xxq7j{HF5k@#Vssu-B_G^?{hBW8wrS7w0q1h10=eP1`fIi#s7L2EvLWSq z*%j{}&|_#bt}^PWUZL}!VQtgB>BBijzNx`4-#`0^-1$FQW(T5#V_Wgz)J&datT?>I z6iC&B1=IxXoHwsz2{%&>;g$@+_>KMGbt2v#xhVP!;JYUV$%X0sXYT#i{n#95k-bU-K@>*M zy=$s1b}%wciUicWh6usJC-5~a>{3|R`w~H{MKr#G2x2LM$zo#@$P!kIursL^CT7E~ zUv~%2nfntFq}S^iW6W8SB$8#>Hw~g;AtG16P*rcc-R|kX1!cVVk*Z!dkwjr(t$i+v z;uzQkR8>!Zk|g=evh1UgU^bim#Bux>MbQz^E+xj8ulaobUMm1tEEd0U9FIeZhzzz# zHUy=_TKg1^BO-&UaViDnIM&*6-A*d6P$tiF54iA6Rd*V7(C_#6fE(ZdKtu}X-1&4m zy{{E?I-NE!3Sr>lFAN}6aI4iC0f!+xnN04gK3nTOplRD-)|R+jE-!)o5KhzdVH><5 sDAN=MSUZXLeh9oc=ibsZeXWB5R*N%)w$+3pj{pDw07*qoM6N<$f(oFRxBvhE delta 355 zcmV-p0i6E$1AzpPBq9WJLP=Bz2nYy#2xN!=000SaNLh0L00XfA00XfB^@Ht6kv4~a zA4x<(R5*>DkugfdKoo}mH<_f!1ZFT+Ns)kf4iOd$TN`U{U}0zB0R#`BUcf@vD~KSL zA{Yi6%M1an^x14A$xg_wubW}MkN=++pfhDz8e`0%)|#AiA6Q|6?m=sP4&aE04z$*9 z&bikqf$&{2b3jBFMN#apl|U)=Af?=Y1+W1?5YgULlAfSxnop(Foe*LNK-x--G4FL< zzf1}ilCLC5<^#!WOtK_sB}%FLL7kbej#tpuiQ{-a^(Wpfv_nM9%s<^bA%yI`8H2Md z+l->@%PverCqvkqAkXtuN_hofy9-xUb>poz`JdRM z6~Zt)TL)ee{KZ-k27vxbh)w}KGV`;w_Gt&cSMS}qV&q;*b1wR)M;@$Co2~DTd#*JG42V9ls`M?-+Jm=P& z)f*8VjK|~arZs|3Aj`5{M|dfv+_QxPfhWMR^I!mHxHo`1+zSvRyfq+Jcq>56aKO=q zT&-p+-?^Y3{_7dRcP?NJcLAD;bvp8$3)n|9>s+9ex+S6&B1!;U3Ly@))^}Xt|Drws Y&R-`He7;cpT>t<807*qoM6N<$f?#pIxc~qF delta 447 zcmV;w0YLuC1l$CWBq9WJLP=Bz2nYy#2xN!=000SaNLh0L00&|K00&|LIC`1ekv4~a zdPzhNZ?|Y_L-BB?J-mKp#Q0x3#vm@Ev>veF(A8LQq77 z97ig}B1x?`HlFBl*-e&Nb;@ku|1x3O9pI0PT#MG)RRD)Xw8+fYTI-`M%N~CPkf!Mp zfHP*+-yWBf$z(Ur^IIu^a;$C7gad$oQA(W-27{H~0MwNz!UZ@dqW9Q{*%p6QQ53I9 zlH^3RhWXG1BHHZrdKXnyy@&%o5f8?gjEL49h+)6qzbuO4SsVZWWm!IX5M5^83PpGU zu@Q{`F%gXcu@J2QF%Yc*Q-o)WcA0sj$rcR)0CHP27y!t0BIGRiQOx}2d4)QEolfnC zI`0F%vepiX=w!~RIju@5wKp1#Zo~m;n(hENc7!*&I|Tg#YwgezUMZ#an_OI4cR-@; z!2s#-R)84cjRCR38v$a5djV2gEeKFE7l?)f?dJl~a37$qM5m*+bAkA1=9~+RF?Rr# pi6{YZrL{g7kH_~?;s2sO0D2@6B!QDPsD1zd002ovPDHLkV1hE$zvTb` diff --git a/app/ui/style/olive-light/png/tri-right.64.png b/app/ui/style/olive-light/png/tri-right.64.png index 737ddaca4d056bc908519108ea57d7b4af186fcb..f333988c44d2e9cd5a3e2fd54965223db963da3d 100644 GIT binary patch delta 771 zcmV+e1N{7;2c8FzBoYa5NLh0L01m?d01m?e$8V@)kw%Aq%t=H+RCt{2n@?*KK^TXh z+1(}*VQGS=l*CYb@Mb}C@e2t37VSar`Z>H8L3{NB2$g<-9xV0XCkQswOX;8FU?F41 zLlIO+b?4u{L;E}L%$w)Q>@1Vb3%9x1Q7(h~{eD|1wW*YP2K0bS;0y46G#Y*M@c~1} zTEJj1SO>O$fqM%s*#lmVMx#sH8Zlxepx5hl^F03ml-EwK)V?w1xnv2M&7h(vUhxlj z0AtKkrPQ0jU~tE#PK;Du0c&e(O|A7I@ZV69S3>0#FrUxwQvn{XRsyio?RHyL>xGWZ zEnqBb4I7QdTWJz13&^tUD_4&@n+%)H=C-6gA+I`r;PmwLN4wpA06es;*;7ibFE20e zo}Zs<%Q?Ko>M5YLeho})i%NPrR9*o9lgVV->2y8=8^DrfZ4oQMN&vvw+1YVfmY=dL z+W;Dt)AWF0tJT__PNy^5&*Bnm0RR^l7vIXVJaCk-lIQu8x+FLWfb=Ce3xKpGco6{U zO7JFs0MeA;RRE+X!MgxROF|FF^LxKnm~>NI)v^ z5I{gm@ZecMYVhDuK#K6-NkFRb;6Xsj@ZjDrkTg6v9ET+xXv|nIm zQKY~_q<(=v3JQV;D5?&y=@x7bQx+fP~$CQG)jiNW16% zPSAb<>F{7F;OOY+7}x?%uDNVaIy~IA&fez6=O=yZTQQm+xElZf002ovPDHLkV1kZs BY##ss delta 773 zcmV+g1N!`)2cQR#Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L01m_e01m_fl`9S#kv4~a zzDYzuRCt{2+p%ubKpe;M@BfSe5!GrWrc@4*=)guL$kG?6#9Ooj?C>1y6%usi0g#IN z03E1c;0Yocl?7F)Gf;`x#{gX_rIqjO^Z(TTW}h#=Pwa~v>) zPO>cf@*m-@<7skW-0SuB=kxg=*U#b;X8?e+v$LOBmK}K_tR+eEyekAR0Ei#K8vx=) zXaoS_MQ98F;zVc^0OCVv901~fLTCj5;z4K)0OCMs6#(=jvijoc0+^{{jSsN^>`B*4u{W-F(0h8J&)5Im1Vgzolbw(9oQ*A*X5x@01f4Tp`$e*&-1Y{ zX3w+yp@?kzl!p$k04?AAMS=ooD-QtyG?s@z09wmK007P9p=AK=<)KA@7|KIS0I`&Z z764)@4-EsvRvsDzh_O601Q2U^XaFGQ^5DN;AnNkq@i?sMk=7?|?-#f#D)thzy`vopXO?iMjbq6?D?iaYoQCXI+rqij4@(^~vK&PwyvV__%(D`b=EFty_sJiDb zr|ta$s>_2T!13|%iHPio$ge97JJ4PpZnw_f=EmnQPQO0O;lb=w00000NkvXXu0mjf DR`+I; diff --git a/app/ui/style/olive-light/png/tri-up.128.png b/app/ui/style/olive-light/png/tri-up.128.png index 48a3758a637eb6ec81433e43cb82fff223fcff23..f2438d9deaafd10a5c1beaa61939d6ab1227e176 100644 GIT binary patch delta 1320 zcmZvae=yU39LL}LL92zWyUe#VOiH59^lQFZL|aaNsVK4azB z(yhPkt%T7l!L)!MxT5J%Ny_F#$3ERa+Bs_nLH^JYuc$n>{npCeu5^tZlNl0%i?&(? zuyx=ToU1bqi;8w_xjfVuu>++Le^6bEdj415y6@(w>kV-ym8VkMXZ|)WWEK->M2%ji zC7#FP@c$2tH%_!!z1KGHXvqO__PsDl)iKU7Jk_XA)FnGfubz`BW8~kqLP?A z`~`G?wOnN&DKG+T?G+up6p!9`s8C%9t4Nq_d|MeIfR3YqEka08AYBHYMUWt0It4t1 zP-ltsJ+N29Sk(hf9TmwbO^p57=*ZH|p>!OB4i`ES~j1Lde-9-gp@L^%~WgXTQ2AWm>4QiX zf@8Y(=MknGI8K~%uNNYu4*ILF(xe}I@4R+GKbb2H+L6x7&CP8ne`=+=^y<;KAe@1S z&xA)Rbb4wHLdqm_V_9Z5K80P4wLib6%1Sk9APr*A zrpr$Pu@E{_P+he1(kQLT}ChEkY;|E?_o-Gfs>=T=xsh3|b?x`>3U+`UOS!0wL_paBbKK`kMOs zFuQE{>L%G^%&zs)`eQRoWU*p&G{-G$u!(1A{WTHvj?X?AUdlfEvTc8OOht+sdz=(; z^k8V&r!LFmG<=!*(FuF3b@-ys%F-OQ#>+1wH(Bo}t7O3^r+ga}2fR9b9M;2eoX5HA>7`Fc%79kReK9FVcGZQE1F2#^ct)m8)*)b`Cs=>iQv!?J0DDtKp_&&S< z*GGWWI_|@^75PLq^6X3B{&z3N96H~2$F2*soPAc-+{}&zO&Oe0?K85t*;HN2VL|BH z@~oCykErI{H$_nLsBL)^KbgK delta 1343 zcmZvce>l?#9LK-Yma(UdXd*|l(xE+W{qnepoh5Um^JDWPCO`7468+$e@2oAmXL(3! zn=o_fa9Fiin`?7&dYmU&gd%N7Waj&H%B;(d=ehsx-haM7&*%Akp4a<%-UFyPRGG^r zcn&cz9JwYsGKq6-$1M`e{aNgzZLX`4L_c%IfwFi~cU9{M^pjuY)X^ z@=I=M4p|XPjBc&~Z6gl+V@;k+;4|%0})?Pk2ac`li=wZxv?nvub?h;WC|| z3|8Mh9XFGg{jB=d7BU?8e}RDd)*FFkxWu0;|=)@;FQT~%R-dO8PqGVu=g=iEDZ{|OjfspXx!;GNY3h_2vb-HY%D zB!RApHmh>=b=RPHWZEO(9vc_Cr|5-Ax1AzO1Rpj>=j*#Jnl)Q@ii*E29xN48tGgy2 z*Y!BUy_U+}4cOvS+oGj{717(MW`aAIzGSW*NH(t7q2!XEIPFp?<-xGfJ~6J%tD%cA6U7EGe*HR@;7L@_1}^8@EjYbPY?-- z<;wu1F-^gv-7#_c`=k%AHXDXsm8?WF$p~Nl3q6(ThGIacree%$q5xjVq5-WK9UrG( z6DXZ5LhN}p=DOw2^F90mq8=YcE-CTcU@(r#Jl32qh06HKgeX`!m&-lInLR?t0V8Hk z=(|K# zWRY5(u3fMag3r0}!G|uYu=D=Vx7$&t)t{+=Qh~r6u|;89`o!4W(&B(t z%_l9^yk|=!65;cG1o?0L4inHeaU%1~oho$~CLkc7aoA9BKlfOfOK*&W%e6F_cUygyG`2CfJWwb@VJpOKpS zFVTv`#@az}Zk(u>tfk~#-R}_%eLO22yR1rGx~;Vc_p*NV{$htCTIJBRS^?pl4ch7H z=`d$`gZ@%2wM7iRP1MB1#Ei5JubuY}FZ^Ma;%wLzSpH>dYU)kX>R48rJkBTs_kW-9 z`dIn2o#nM*L#a#PS2BZflC@EM_}@C({hwMIP%?>;OSr3Uht@}dq!9mBB8~YE-Z*e5 diff --git a/app/ui/style/olive-light/png/tri-up.16.png b/app/ui/style/olive-light/png/tri-up.16.png index 4a3c776b6859084da77b2911017cd5bf2cde4b03..67a5d1b2a9f3ba713dbbe0c7b0de93f1b3fff9da 100644 GIT binary patch delta 317 zcmV-D0mA<01KR_TBoYa5NLh0L00Xc900XcAC&Uk}kw%Aq2}wjjR5*>@kUvVqKorKm z?+r|oB7;gQaRNfx1utN;$dVh#>J_|-YvT>X#slnC95;(#C%c#sPzX4&$w-QgvDL4A z@ArFufd3t9ZEmg2f9g>~g)~iPBC;SkGse7>W%>APfweXlkwx3K3V@KD#&Nu^s_JP} z(81Ro93mora<)sNM&JU#8-Tqb$+sZf9AJ`brPO89G!IItQvmxx(*KDHFv*)fEFu?0 zQM}f5{SigcvM(Vy4H8;wPekOtzqZzT?ws57&&#sxplO;r0LR^sPw)M?kerOc0N|Y4 zXszenU(mL#A~{jUm}inlBv)GNt6gx&cDsE~l4R*1y+0(m0&qLj`-k!cRLOUvRE0ii P00000NkvXXu0mjfbgY!0 delta 329 zcmV-P0k;0z1Lp&fBq9WJLP=Bz2nYy#2xN!=000SaNLh0L00XfA00XfB^@Ht6kv4~a z1xZ9fR5*>@kU>hrKoo}me+IG$feh*@h%ev)3SPiXk&+uo^$K3acH<4ijR)ve#HI*B z7E&-_Kw*N6n~a3gv~Km^zW@7p?*aciB2tJ*v8$tp26>)ONX|%3j4`iuT|fO=AR-0H znfG1;P$b7`ny#9rdEP7N;M)!kQ6w*awn_9Zm}E)v9l*hmEQ7Lr} z;4nz~KhXgOFyDZ$%Cda3)_x{Qve=M}gM=b-M)IM*wsUS;Rn@wGUY2D?Q54;K?@znl zm-qfsksR%V0idd?wR3JtvIGF{y(T%*#+VlXCjgdh+um%0L#(wQaU3tS*2e%GmL%_n bx_>C&zD0nJo(~y-00000NkvXXu0mjf4JnfN diff --git a/app/ui/style/olive-light/png/tri-up.32.png b/app/ui/style/olive-light/png/tri-up.32.png index 3c849330fed227ee4d740cac7553493c9a4a6e88..7ca8a9819aa122d23e2c832f717593dcc48cfc3d 100644 GIT binary patch delta 445 zcmV;u0Yd)M1lk0UBoYa5NLh0L00&_J00&_KmBYBUkw%Aqh)G02R9J=Wmc2^DP#A{a zFB$5VgzhOJgIG$v36Y}UHFygSt*fhdp%r)Q9k__AlY?MS>7*b{ac%N-Nn#p%@^{if z$UB}S-}8Luj{r@YG*O7_x;@u*dnz@wsvp|6-3@}^#`pa@$8ip;)}g9!UDwCVY=%QW zM07r#PG5I_F0ch2rILhR=H+m`#{klB0B8XiwA=0H#bWVQyMS%mT_U=bz@zLj^QmQ7 zFP`Up)+UhCc{-(LB3Gbb=jjxliA;gK&WXq;BF6UPTxcew_ds;c0T?nkGhYTla6v@A zq>PbwPi&omjH9*z7eYKNm&dn)16U;G;7JJp!*u2wZ==qwa^ noXut+Z>sQQc3r zS~buxc{N5&G&W!`c{Qz?&^FLCImso-WzF(dP1Fh$?>PXc4i4Z_DRrTdaGJgogF3jb z_5vQq@xy#Re|H?`gXD3|Ks!pQQ_u5W(lq^S6fl7o$80422y}tlN~{EI;5HI}0{{qu zU=P531AG$4@naplEaAHDjO39<;>7d3=QK^f1OQ}Nb_M;@-U?nMzjmT~J96gAaI`77 zfy8JfKytQ8cpHg=DF8qzbq!!qI=>(}wt<%=NRF%f=gi-K!EiX-CwZ0&Jtax8o^y0UiQD2VMXXcmN=BQV*1&YV1}NP`Nfs zj^zf@#Mk#vknT4+^3C}^Ut3lbz~k|FJRXn7Ph5)f}OJi!WvQqA2bI*bKw)ZoAz+I6FJLusw_Q05kH8vj|oL%#mlDM6ecMfjnb9 zf|USE$}?6Y7!OcWp0O6eXaGfd#!3WZ0jBcL73G=DR;zWV*XtdmY5H5+a21RMXn5sk zxe4H­xbfM$8d*zKS-fFXItNCa&GG~M%y(Edz+&=SD#m7hiHGof(+%kqr2+o4ea zNAir82+9F;-19_qPDB>~t|>0j_?e*egGlAdZ>gLQ07UeoD2k_2%Ev_XU3H!549Y*M z)ZPI)w*6H8$#^_|mu1;ex7!^AL9h+ry5f?`w?nM}y5;$p%Lq#cFeT5pim+4w)AEdq z2nz#$*pg>#N4PS8ZF$CKgt-A+$uqVh{4;=SdB#SBzXGg^JYzb-r2raVZ+Awc(R{XCwR3cPe z%K%c!7XXfzIC*8{nVJ!fr>+1h0g@z{0N4d^dd117t0vFHaXiTL{1Fz+4`6rd3Sj1C zO)yQ<{907*qoM6N<$g6&jl AbN~PV delta 792 zcmV+z1Lypm2eSu|Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L01m_e01m_fl`9S#kv4~a z(Md!>RCt{2n!Rq*P!z}i$L1rViX|g;Nd>w?W>{b;FMxOg#-a+;rLWQ*hVl>yI`9IB zzykmoDqErqRd5oKf`WZnav~>?roNv=y1y-s?(zBma;|k{1qcKJfj}S-2m}HF#|R-> zLWq{n9wJ{io&|p{rF_}xbZ+?SBldBB(^~ik0Jh>dzPGWlaWo!}r>=W(E?_A<<4uB7 z0V~2YUL-gZuqHg?T!Iq;7Yxrhm0(>!!|;qV304IthG(2euqHqV(UMZW0H6|{*^1-% zZknb?MN#}V)mt4a0{EAQUU=pffcv&4!MFg;v0sI??O;@ZrSOau3C08%+VkswF#b$1 zBEayTUx(3Wg0=w5W4{Vx+d)f!r|^ss3CaRY?0F)Z5YZICRmBq8&jh6xBDFogt+IZ` z8GvV1RXri19~yPGbzZ78o&ZB*e?~-4kB^Vv4Tr;%BuRQv6g>iPO|hQxc4#EPba=kt zQ^JJ>*b2}1l5imbw!5^9c|_JOr?>TG?iJW;7aqeQmefA2cVS zo2KdKqA2>n;siWaZOlb@#?U0pv(5!bDetIMav7e{l~B)GpMb`HRPYg=(UdUHIu}4h zS(6Gr!!xQ9>RIbs;BA8f-orC066#s&0uG7jblu|16rO1!frw6}l!yFzE+EUY?*R4y zjLumvp@>tE##U08tcW{eJ(KrM|83zxN*q1OkCTAP@)y?D7Y; WxkpU0_=L9r0000x7Vt0D^kkaNL7 z1hFQ62SQ5B?Y4ehVu43HxVR(4k%$P)6!$WbIL~MR<}JSicG>WixB$vASW=8zL~u;J zUsMo?kB>JArCf{-@QVyGiHQ2Ca1o;dfF#!ivUk5yv@pugc8^u+Sne|)wH&ErTHzL7 zu+5``_0072b+Ssej7p(WO6iA;2V6S^cc)=&et(dCu8e)4j3(qHs}t)+tPjo(KftVM zeC}Vi=o#l77uRdWHz7K9Z(nZVTk$G?BLeM&rsv@F0-D!6^05LWi0 zMq?;(JG1=9fq}irnR^RKQ2UHiS%2Z$0~(En1vh8AUrtA5+X2>~CMr8bzqh+PymN~i z)OD{J2YF2zuy)Y3u3mxuxLPk8Dc>7eo(9Dx`(^7GIXQu!A3Y}jexOue1$MSy=`M6G zrfYb3*vgH{@_X-~fTV@`Gtyg#6>F!68Q62HDyz&ypj7?!y~GR~p5zz8U@X*nE$p1p zc$YAd1}2W8!&+06M{?i-(GC*ue<@)3x!lpFc1>3g@n<~VC6KWOwbCca@rp=Vu&>S~ z-6hGUfJma3VRXZo2U9rPg8AmmA}r?;_<$7TJ9cYH)cQj~Sq}-=Dc{`WXpM+xl(EsxXkb(KbBIb?a}JJ3PBdfcx0IBWlER+gqF`Jz z+0>G;l1}(|NXv^7QulggWyKWl>RKn)^VWy9Qj00vWkN#_&D-)Bz6=012rn`wmB9EDsFYSO>$gG-; z02d@S)j5+)raFCgfTan#dwTNTS+0Xhi9e7WU8AP!1r}r@#kYIp<@;iM;|{AOl(UHy z8(-J$5FZHE#4N9DmX88b5Vo=(1yl* zXk0V^H+R(=R74wZVGya8K<)yTt-WFxHyzbr4?WNNz^Lr&<+2YV$WjVC^7}BeZ~iZ{ zP8pY3>Vha;Jw3fP^w@MG1+_ch4?iB+IkJ;z+uFJDl^<>z)f~>R6?ura&CJ?bltT!U zPPQKv`INaqtBp&dl3}uT6d@6|* zc~h22DVa0q?*aNe? z)irHvleE3rzqcg60gK|WKCW$D*S|hw$Qs&rPI9-#YqsyCIaLxImmsB7wDuQEqtkvi zZD8t@+TGQ*a)R0y;zS+G%gZ%t+efY`I3P6tMLA_*wO7k%7A1KH5l?Lg14QO=ZD#-Z bDmKtT=uGrJoTnB|`~ZLp_6)>!@J;;(J54nJ z$hLzpWB=2SsX#%=64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T+c)B=- zSoFS~Y{+%ULBKWs&JFEph8qklo8yjdUbt$-$^^2R0E>*1H-3fFrgQu&X%Q~loCIHY)Z|VR5 diff --git a/app/ui/style/olive-light/png/underline.32.png b/app/ui/style/olive-light/png/underline.32.png deleted file mode 100644 index 13642e1e50ba03b07c29d21cd68ead6a5dec7d74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 453 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK@;M7UB8wRq ztocBg@yxb`%|JoP64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq!<_&ojhF} zLn2z=PT%Nv*g&A|f3esR2UVSATP96SSzW;<(ZDI!aQ($0<&-zV21XxP0*)NuPDx_m z)ZE3hhJ$n46*F(`t;-58aVe_&$=|p8|GUo#H`OeHydurFX{4#e-}}1#DtG)Ra}fq6 z2L=uXMg<0zhERt0cFxmMt$lZ@cvktnNEU7opTBV3>&46FZ2fj4GCZ3(B71!;o6@Pr z7Srzmvv4FO#l=1t=<3t diff --git a/app/ui/style/olive-light/png/underline.64.png b/app/ui/style/olive-light/png/underline.64.png deleted file mode 100644 index aaeba56468feae515c75c780dfc34472bc484349..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 833 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 delta 1828 zcmZ{l_g52k7skKAunZ+o_7Eh3(n19k0tzydR!WIbNZApYvX?Sb62%w8eo;#`1VJpr z0D(e*BP)?g8Y&?Q#juA03Na9ZY!Vy)fIdHd&K=Kl&OPTc;4k3+H~a#c;_T`zClOvQ zj8tksA*{HfoV?R1{25MyZlsp1VEwFKXX%}w^&ecKJ$%={J@<#Z|LKcr^iuG@qtJRe zgVU=1O0vHt6Sw)_!agWxbpGD;9 zMD8qjq*S%;aC_E=ZU5X!sdx~HTiT1r=I#(BI$X>oI;S*1Mp6`%3z+Bwf!j z9-?)6<(fL=W4>O%gL|g|3A$&32GL7tzTimB!Aln zyLFIdDJGCu4G19{Q<$)w1RnhnJ5y)>A7xkX1*8NT5!J z1CO!p*upw$j{>o2c|G5B?1|yJRPfV1!00AIdX5rvmR+!yJN=rYd*q1)l4i|Z&Nz+W zXM}??u$$<`iKV4*J&2649iWln^X|%fH*&gu`SB{yMb3eABAl3OVhR+?E2W(h33m)N zbpN4Iob{w_z#wqFm zN!O)7iEJ}CPg4D2AesQi4~4&f=9I?Iym|UF|HenMmfnh5%%`q_anN!akw*%AzjN^J zu3^R(M9g)&yYZ~$sZ)q@>b?fJq;HSkzhx)2y6q2C-Yd^1px&^0+Y zE*V)DuftIBX~u~LnM@`8ApqR{x+uqgrjWg z{%AzoUY;E~R}WHX5m{|4MeN@EK%(4NF7-;%t*rcb(R{>;Xt7*loIfiic;re*b;hv4 zZdlV#2VQ020e55V?#!HkxXjm;qZZfvo3_2n!mXJTiH+}o-LZ6j*>Sme*U^uANl5K1 zvdu%qLnA~Q%JXBtP3LVDwhC+XMkkaZA3Bs^@uoRn<&x^41Qb6{!avhYNxJvT&)Ejg z>sNm^F)=AnjMiA*-FSN)dx20z?cC1neTxv%3=;sqn1JB%1Q#2%d3FC z918G2(dwf1`&+ge-PPGji=9uOW{6%sa^VaO4dHbe-N|KHm&kt%@`lp(KE zayP9)hun^E2itN)*Scpa^H?Vozvmu^#G&kn&09H>IQc&Xe*tD@;{k@cf8z?zrrfA; zif@lVI9wxmbQvHnbxiTU=ScM(Am00yT;ECj(xq64p=-VoTzSQ&W>QzVP*2q$h~TNN zQAAAp^;i#}qJX=)Mv)lDq#2ZLVyk;zAG%>Yv>vVEtmhuDrKk!t7*TC9C#lTxt5*OYUP{bL5efBN>Tc;Ow z_CDq==6YCBQoW{YLs=js$OE5KxEY=>U%LRv>hhfFq-Qvd+Qr6sg5 zV>p@pq+u+YBjc2)^DWG2gtygKYB;#sqSh-9=1rk(QDpICNUw94U+M|>Q3s@Uku_>j zli0hqUPQ9%>g^TvZf$LqW)sfr2zd+0ISbX&_V~^NPn~xBNG!4hVgm`rplIOzN!MgW z#{|lGoD2Z|O|Lt>w+vu4!zW#ZMzHH&KM`~jMZS29APr{q^@}M0eu`JdVhNFPj%tfz z=y_Z+PE&j(JbcNg?6&t;v$Ej+E_xJ;6{V7Er)W&9bd4Mk5Vm>YNxC{fpDFO-I%M|F za(#S!D%@Lq)oSDc&zS!$aVu=wK#@KZF%F1neU^?szrErWnQpwIK;=9QefXZpOb z4)s)v*@y0%{lmk@fviPiK8h^^fF`P+xF3P2)Pv?Qx@@Xdb#!o`d2 diff --git a/app/ui/style/olive-light/png/undo.16.png b/app/ui/style/olive-light/png/undo.16.png index 01e9362c5521a99840163d3de47ae061d5c10b95..f8dc103e33a2002924f8735e55f22ffe3348e4f9 100644 GIT binary patch delta 275 zcmV+u0qp+21F{2@QLRqIU=W;HYc*lRf}V6)Es7j`W(QSA8RQ zcV=gHfy0EVUa9Kclv(x*BC-Oo0`L_C!7@pbc1+-Ch)nXAe;Q4|5dnVFr3VffrM%}-Cj;yC^!`B7EX>tIk-y>ZUnj-TUT Z@COC9QD5o4o74aR002ovPDHLkV1i*4gJb{z delta 288 zcmV+*0pI?z1HS{1Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L00XfA00XfB^@Ht6kv4~a z-AP12R5*>@kfCnEa1h47mf%{^KET~s3<8Iro54&iyZ{Lm6Yw4w9B;9O7nqosTLnqY zKdGmwB9!%J25C!6tNY2j`+m9a1NtcR9J=Wma%FZK@f)j zISV;f6s+YMA&7K)otwBaF8lz7^l6eNog1U1%L9ZwK-8oQG57^+j0?N53xk8ekV2i5 z+p81@<6Uf&*n!-n5-f_=IoT&Sxxd=`nZ5sG7?uHY<@(=6lN2`^jRgSJa=Coe>2!W& z0Z>R=D5YF~2k?rSX)qYH0Xzr5cLng$6a_)hWaih*JnYy~7>1AU8lDOu2!bYn=7@df zdEV*N0UY6%M6}lJcCWJla1P-O;V+{o`jSPs6X3qW#{%4E_+J2y@Z0~K=m!9mB*{Uc zP}uDCdf%M@S%;5-`I#iin>dblZ9mmJkcF6e&hxx~_fpDdwm&mG7-K$HDir`&o+1Yk z(TeZ;J6h`tV9G-nhT%LjF9UeT%)+ABh@$8%V0B<9M<-?hJQYG58)H(xfLiNoV@yv7 zaSCA70;n2eJ_3#zP)fA`v_|Yl%=}48xtJDUC}!RRaAkd0>-D;D0%Q%Ll)56KueL`- z4{ii$_y@#?TCG-^1OmXeb#BLT{0$g01EX@x#KU5-xTUo|Pn&LxIT1n}0@(L`zt!*e ze*+V2MD{`gpskd80U$|x-=&FGGAZQ~0M$~dbdc3bmMd4TKS1uo0lP>lZ2$lO07*qo IM6N<$f^??p761SM delta 537 zcmV+!0_Odr1-1o{Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L00&|K00&|LIC`1ekv4~a z)Ja4^R9J=WmOpRPKp2OAuNw&nLCBX3QKUMyHx@df4txNl?p?~l)}>0>_yC9xKo&Lx z5?_F-VxUVIDiuYl#E>m%?xv8cs?R~`A0+&;5b0EMU{j|Hex}oVXa63ZUY%Z`px}Rp zvK($UoA&_JE0xM#x7+=mhd?Pq_y&M~O#n2ROgaG80Ps}>oHU1g-){kUieERz%n!ma zT)b*{Dgod3Tg==tYeaPHIL>J90<*#ad?TXuUaxnNhk&&SZQ+jNJQ)lIU-AgI3S3wC zOo8hR|4qOW{_j60It3t^dAC$5z3cb;M^=Hn!)I^?;F(hDgIP@V4&=lw053g%&s#N% z3)6+x`m^i00I)nq2_mA0wOVaEilQ+v=Ozrp@GdhiCrR=GfNN~MRZ2Yvj2oC@xrrOh zyds3y*IK830i!6o&|3F}5F=)OWNg*rIDQRSdO%9qCZhJG@|`3}-ULCglvZF0Gk*kd zZVGsw=UN5wmXK1O6VahrBchvZe-!wO#H&W5QO+X4%v(lyM=A9cn9&25vGl}k0Pn}+ z@kv^NIF1j55T5|-RIAnYa5(${WSEG|frN-UQp(2wlC6y diff --git a/app/ui/style/olive-light/png/undo.64.png b/app/ui/style/olive-light/png/undo.64.png index e90bfad0ebf9556ef332e945e2c0fadd4bf1959c..6e91bd2ff74bd518ed99e11ef166f311cff32a58 100644 GIT binary patch delta 957 zcmV;u148`o2;T^hBoYa5NLh0L01m?d01m?e$8V@)kw%bzziSjh6vw}B&)i`oX0r)V z4k4QeX|xDNQ6dO7{sSUdS!gF3P_VPK611?h&{8Zcv@;emmH14ML! zi1I=RMnw027-L`4(u+$f1`G`iotIKxl2ZDwUy)Lta~$VQ8k%u2RA11x?QtQ*<%Z+| zpo@rZj*gCYsMbt^QUh$;9tSWU5VEISE{~|xOo}oCLL?6WkW%)j(o}&G1HvZ1!bcUF zsz_`=l;nx%(fs_plT=eBi42H%=O=5m+SMd_X|OGS?uilae8Ka)bEQ)0M_j$Mh}8$g zNd9c8RI0|&N}I?Av{UjxL<8C_c_4xT?U+0e(tvhN9tdGTJ0}lpVnD=weygbf-~bqa zw^GU%ah^1r8qng&H{&yayNt010DgrzVM7D{(d7R^L^DE&D~{t#Zx)+r9QfChU!jkP zPMW5FS>&A01O+O8A<{zRi0Jy@;NYpCpmi0%Ie%rE=1%}eQ(M~BK}2-ivaEOIa(Q8+ zfOQ4{0O!15nkE1oPIGlzgdwFI%jI(StJP|)adJZgfWMUhw1){hve_&+=Pw&4lr};D zCYP6&&lZbCFX{@TGCVxoSF6=}g%JCQ=nQ~={Xy|W^xd+oqlH3YO%*h)fK?(^LOzqp z9O~@soTyYP>&i_fi;IgM=X}w1-RY5$kq4afVE}srPTB5x-bdGUKlukYH2`Q`6INl2 ziCixCtfQmjB!C^w;tazuIOh}ou}}s8t#3lLTCJI;DF7S`2;0dyzvCZ>)CVxeZUMM| z6*Bx_Hk-Yh&*wX%Xe2=h@sNl_KuEuB+q?Y(ksF~_Heq35p)94G3yLA4UH;=(onR}Q zKtvlhJgW#Hdi}?-Tj3TqA@Cn)DW&T_PV_7g!-N}2^ui#7cp5PMt*fi+gMT3OF3^mK zyTe}7G@oLx)+1+21JB@j`uUawzUT3V{B)J=j? z1Asp!Se8`>a0F{B%ry+-qT@J$+tgN*=0{RvhGCoruv$&S3}7%A z3QOr=s;Nvf9>iROR=#hK_KM*ug35VrxWMLMTb@c&qR8}9&I z@O^)#SK?56U;v5-fNcPdyRKV*mQub8OVs{Cq>mT@aA{&<;zU@|h7OQYK6PF9KLCfb z+Sw*TmSr6sA0L0Elv?PNu)zQTkW!Xh*9CwBS?+F=u!!hTE|%3Zf*`mv5`QfdnR8PNNr*2O(>p z$HvCqv<4#I1-cRQ?y%c+-A7W&%)S#)N(sktwgXr<7!gt3vaIuev$M17ej`#F0K_wa znP-$zuXX5lLn(FNahzvFR0mKdqI*L_Ll@@e=H9mFYW+YW%GgXqzY8Jm>C{bwmJVpr zs}qQ*+-Ni|E-x=Pbn2!-s{z0_6CB5B062*C9j1aHIJdaC7JWgFM6?sY vTV}rI`~Ih_^b7_dgTY`h7z_r3!4QM5a6`owv&OaR00000NkvXXu0mjf0}8tS diff --git a/app/ui/style/olive-light/png/videosource.128.png b/app/ui/style/olive-light/png/videosource.128.png index 54ece75685c035c0ca200ca894d56cc0949a950c..5447ee1a910a86067fc0752a0286d0aa2a27e0c0 100644 GIT binary patch delta 1336 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 P00000NkvXXu0mjf(kOWo delta 278 zcmV+x0qOpz1GNK?Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L00XfA00XfB^@Ht6kv4~a z(@8`@R5*>*k~>ZVQ4B?oVKnR^jXec*XlSD-Jso?P4G5DZK(6K+`m{uInz%-9Lc3sGHe+O6e^kT1gMU zz8aXHe=*)kngCbszLeDVR9ziKIp@`BPXX?J156}60@ERPQ8M}f({bV4fNwZA;C);; z?I0rBF?mG4K+Nn((hN9hD_{rIl9mM%Y;(@5h*> c`2IS+0O{mKtVb{tq5uE@07*qoM6N<$f}pQ+mH+?% diff --git a/app/ui/style/olive-light/png/videosource.32.png b/app/ui/style/olive-light/png/videosource.32.png index 333a53a9b181ed4c500bac655f26f40442730038..dfd062585a60f020bbe355708e09241b2a0f19dc 100644 GIT binary patch delta 398 zcmV;90dfAT1gr#*BoYa5NLh0L00&_J00&_KmBYBUkw%AqT1iAfR9J=Wm9a|0P#A^J zY3pFH5W1*S?}fgCIy*V|0=l_%D<~an2XV54;O6Gw;0w42zJ+yB$sGihE^!dS)E+kp ziMCP_yX4#M{ZH~8l1l;<6co%D*6a0kl7|2mGrDI)^4jyfy?(#{ksKOhHUM-HGc~H z$01Y@1U&#flBu6TiR5!0R+3NgwR7%NQkUc?w*6A}egA>v8i0k2+!4tu&+|?OgTZHf s5QgE6@B4QERsg(7>SW|BC@7eoFK3i+qRz#O6951J07*qoM6N<$g3q9_!2kdN delta 397 zcmV;80doGV1giv)Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L00&|K00&|LIC`1ekv4~a zNl8ROR9J=WlrK*MK@dmZT#F#-C3R3WEBYDmCs9Imbjq>fTSP*k9C2okUeg5qNo zh1g9<_@_>h(&Pq1NOLVMY3``Gmz=nnxqZLfZWc;PN|ubM>LzdktmU-k2)M7+Y6pYC z;4|BF&TW}l4@gC%TdCLUm%w^Xa)1hd&>RkjPf3zIWaPWRDG+}@8`YfUKSWW~$jDn} z)&XR!+^7~I&mgMWF|*dR=0t!HLUR#|bFOV>?MyjR)nj1ix9Y3Jfq;UUYyzQ3fb7z{j!!T!_f+(gKLc$a}vJT+f=DxCd1AaS@?lnN2IF zA%r7UO@OIa@qZjb3nBDHqz_D_jDVLStZAA)kH35G&qbssBI#K9H4>4-oI{L&yEu+- rvJLP370?FWfj6L=qqn4_WHG(~(0g6FH&?b$00000NkvXXu0mjfnp&=! diff --git a/app/ui/style/olive-light/png/videosource.64.png b/app/ui/style/olive-light/png/videosource.64.png index 051ee7ae2f714e9756634724f2270436a73aec06..c98bd8cc05c986159d56b3b0f943cd58caf57b31 100644 GIT binary patch delta 736 zcmV<60w4W{2m1z)BoYa5NLh0L01m?d01m?e$8V@)kw%AqsYygZRCt{2*|BRAaU2Ek z_kM{-MN6eAl-QPDf>02*;-VDY?dV`}>eRZ46cORRUk{kfrk_x3#$>Z;b-;i{!2ic=m zlQdf@l|F|(kk98Y2SKn3V6e%qo2lX9;ir-=MVqr{28=P;YPI?*%&_aa*Cnk2Xm+ay zj4`7Iz)YkOdrVTOy!m{77QhPt14rz-YEI%i-@@5{Rs*i<&PjR(Al+(LtAWIEU3Y=x zk|c(i@23Ko%jK3NEl3J|s9y?5<#M^ll5Vwouw?g!w z-kBf>3IJ+RgzGhuRY_06&ilTM$~lII1a Sg{y4<0000#yB!@YPMumek>Vl>E+V8j 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 s>D|j!tm;MPz4ncl$OKwH=@S4+v8a<^TWy delta 4686 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 NbTkbRjq3KX{|DL~|8xKV diff --git a/app/ui/style/olive-light/png/zoomin.16.png b/app/ui/style/olive-light/png/zoomin.16.png index 8b840f1c5cf104704ddf3abe9abb5cbbfd27f2db..44096ae6ac228d48d0f9df0d0d42271526992041 100644 GIT binary patch delta 523 zcmV+m0`&d21*ip(BoYa5NLh0L00Xc900XcAC&Uk}kw%Aq)=5M`R5*==kuhsjK@^40 zz3-WNvxUWiym@b}6a<@qy;m#+x8oPBa(dp?>dO8Zj#*W%mCh#Tm-OZtv%?zQH?P#0jzaE5&21So8(~x z-3PF4PI6I1jLHNSM@1Ax zyLp};w0Sly?DzX~Buet#~6@IlhNnVkXKl8yn)YzbJG zG;3x*q9|G!4u>bMZ7?2>HzmyjpPh39@BM2@ktFlpZvg`{JCHOVLU=WipnmhVnVmW3 z26>+U21t_R8=#^n76H;Uy$S3}nysp8?IJ;47{GQTu5knCG#l^zFJK42IX8%ZTf`JV z(owhDePCv9YB6<^3^gM;}`xm`l?@kEe5&yooV`ife!d_XHhi$`Hk~6ajF;L}seheI6m0}uEx7%G!l4Kch c|7B0%FIF_#=rX-TqyPW_07*qoM6N<$f{Wkz{Qv*} diff --git a/app/ui/style/olive-light/png/zoomin.32.png b/app/ui/style/olive-light/png/zoomin.32.png index 3506a962bd07ec23f4d9db9001c9604293132f98..1af51cbfabaf5f683a7f1efb0fb127a37388e455 100644 GIT binary patch delta 1114 zcmV-g1f~1x3GxY$BoYa5NLh0L00&_J00&_KmBYBUkw%AqAW1|)R9J!;W>E}PQG}3?NK&B64+up3gHk|hC6G`f1qnpe6|Y4b7OdD&9xDXu zq9RFAA}XXHBEu%}_)!(Lgy1%H1Wjf>78ys^<2#OB!neBjoO93l=AOsQ2<{TOTyBr= z`-e&HC%G4Y07T?Z5xJ(6T3lLM`lk~=(rsYNvW_aH#sCbFOcK4#0wlQ~@La+!wM_07la3bZ@Ozo6{A4ZBt;|_R9d?YdRo80N?q(KUFT5 ze>0u4EbEX`>NNnPBqely!gbvXI}!+TegQyS6W>%yoh%lMKeQvR`FNJ(#{llt#2dcv zzgVeM3c%LY7!ed)Q*h7o#>2rK$2sOW&K1XTe#~aG&+9tZbuY(av2g&mG;xnoYND|* z60j_P>nOBp7ZEC@PFAbcWdqT7NIpPvukZWshV{$K%S$41Do9-ePusRV97!PPb3Mqn zZLYmvTkkU&xUM@3;G!-Qkuf8ITrRfK&e#v8^EkC3tlY$2}-HgL!#+Ip>W4I z2}yn)5{){JGi0(wb7dRr!?x`a5jm#IMC5BAVicFlwdAl?EUBi^0Lcp4HXWb0nYZFnBlE5Rtd_CvPHu(8-gF z$Q*zK$s-9I<1qU#bNF+`a3WW{JvPMK?9KZ;Go(TKfA~Fl$ z%bf~V0ElhdKcV$gdOLVBnLJS_6z=Fk+qUmfNIUbL{(&>NR-9Q1LhaZLa3J{G>Fev8kHunX08a2@`B^fVob2=( gcN4qz@zE*%1@uw6l02|+QUCw|07*qoM6N<$f`{V{f&c&j delta 1106 zcmV-Y1g-n>3F--uBq9WJLP=Bz2nYy#2xN!=000SaNLh0L00&|K00&|LIC`1ekv4~a z2uVaiR9J^P|Sg+L*tB7JWhnFSakst6$=k)%M?9}tN62Na6bN+6*` z3K9s^6<>=sELgFle5??ti;5&giKvi*h+H-y&U=Z9T8xmJq{59ohee*F=kc>+x8bbj ze$1TXnLF3>1b2vRHrrh;mj{!{dd|f$Ye5uBqvBd-I-)uNhA_yS5{V*;)01b$;XW`=Kvh( zkQ@LW0q}B9Pfw{-D*e{60MGN@BKdZc+%*6*0OkQKhV}sf_gQ&LL`HjidsC%sLs=Z@CHJ2LRK)@BiLJ^kV={0XSiED5WL~g~EkB1!OXrL1WAX0Lh5EMDlbH z1V6PB9$Di#W6Y-jdLr&^k}m~8kOu(OY%<9So7@;PZj-yNdt7UMMQi=D>$)#QV}(ND za9w`BKkQr)d6(n^BoB(ndv<(%eSKLebp|^} zSHm+}>yf4c0E}5A-?!NIzR37cTtcBxm;-Pz>LWQ8DL$5j@Aa@Szd|;tuu%3 z``H$Pp0eye8+IU(NGt(=*p9f4guVT);JWVPBzFr?L^d7AS!xily1M$Wh|F2;Q+F#s zMBcDmGx>b}c5Ejk`K9GLk;!C+<8o17*|GJZwH^g<+!FLH(4-anzW*a4_aA^5V?OEc z?{7F?l2am56p!&qg z8{~Bed;22EVrV}I;AphkElm5q|6$!4wZYKPP*<^7JO|+UcE~%#HpzFQzr0RBo4 zI}c8~ne2rHl4qNL9ajWWRv8aQtIoy z3RVD!=Xt-N@hNSS-;O%9*7sDa)h9$G1E5zaRWZgC0bFw&XUWcQDL`wzNHT2)NnTE+ zQYYK}&bt$+9Uguc6PtA$=hgp{90`68W8Pqn*^`-y#fe6)-I Y02ST3lEBh+r~m)}07*qoM6N<$g2?;*N&o-= diff --git a/app/ui/style/olive-light/png/zoomin.64.png b/app/ui/style/olive-light/png/zoomin.64.png index 9ed23a4fd3626175e35639b5cb4b339dfdc1f3ee..edbe00f0b0cbe6df7ac81e948512d09d84a7b0ac 100644 GIT binary patch delta 2269 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 delta 2275 zcmV<92psq967mv|Bq9WJLP=Bz2nYy#2xN!=000SaNLh0L01m_e01m_fl`9S#kv4~a zkV!;ARCt{2TW^e9RTcl8cW1lZ{$aP&jduIyz1P_(rS*f>MQZ)D29zd1gQdi@{XoE2 zYZH|~)d(0N))E6m3K~?M0BlEYB_)mfF%IB z0n7_z&H^X{I0Ycj%p*dG*Yf%N2mo%WF|AY+ zLZNUREg++<1PlxebeuVJ=F3W{tpJ=BtIsp@lfAvY&m2E~ypmK&+X%2M>t-T<`W}E! zv}+CkAfi*u{1YkVZxfAgwLwdlE;UoB)Gh#@Z?*0)5Yda3O6C5sv9V&DaiWz*SeErg zA;ew)%Uh{ecX}bj#_sNJuUsy_tvjey1dwgpcN5Wr0OqzxXA;Z-ux`FMcz=`EMbe?r7gG21nOY}?)m;485Q61@rFWdLswQJ#q2 zu`Fv606fo|uasJX+Rm{Wz*=TrmB7AVNhyC2YDWU4)39y(ZUEb344D9M0Kg$BWj@Ya zmStrO!`KL5GczyH9Y;h@xURc<#{M`))WdO{bsWz-7`FYJUo$fP5{Ve zvsYBB)osjtCxDd35N76Yc%Jusv(7{W^!N9ttJUfe09R;;4+|mg%H?v}E3*zVnaowb z@9&1*j#Ku1e|@o79Bb?_l1yH$R(}jV=Z_N6t-8(+4i2WExiIH)xe?#@HvssZhIqGO z7(1JF#J&T96W&jwmNnL&ILT6`x=g(0)aLouJntlv)2_OL1g$Xe8{?XCV|7hxK8-|C6Cy40R5n|UP zcnq`%a2#hvR2qw!pVBk2{qTMNP=rXYX`20jCILirZAAZ@p6BH>?Q1&`csZ=oFpTAZUN8Xw%Od*!+N{xkw(XSw?g6j{A*+2DY}=k` zZ+{=aD@63D>$=UZ_Uj1AQ804`(0>G$M)Y40+FF*i3cx`CgGlIn1iAox0l-1WahxXo zQQ@`;Xc7<=e>3wx8{3HJUbM&Y#<}MKc%Vu9I}t+{0Q%ct=z(PM;>DBozXt~gQ$b*J zv9J~mQRKpZg$pNVke$MOK%W3Vfl-$QbO|Vjb(Tt{^X`zLp`mIJ(q0rOrCvhAMVgqH zh&o130{R5}JFJt4KHj8x7ZIJ+)SnncG%195phS;W$nYfK6dCMD%+EHAC%; zP*l8s&&&&|)#^4~eeD7>Z;wi)G4qkB|FsG5Jn!#_h_RXZ&P*l~6*`}Xuq`s!>a=0o z_DUkUJz~C-Qp)K?Jyu$rnfFDAqHPmDt8HrseBVD5q^`ALnr1eYN^JzNDQ3y+F)8JYZ?Z%Z z&?@Jf-~?)^>%RbSiRd3wskKt6G@qG&m!KBXu0}1e2|e340}<_aUH6BfGGU!|#pCF>|ODT2U8v@W|8%(FueW<<5 zXU)QpbF&zm6fY>HZggE&+j*ej5eTmQ0nF~o7nD+448yn@z<1E*7pIA+2;d=q*L9yw zG=AzI(=@w;5KjS!70orEpp@EDC=^ZwzlCkvx1d&|(>)Anfrw5r^Pb>rpSW%@O@QM# z+n9OBENp6Y{ybQgwTg%~5YbJ{{IP^{ybIuY0M7&=ZRPP;ylohvn!X&|LX4Ue%de$f!g;rybFQap@WF_ x648B9%JEBK=p}(^nqAp!w)0Zk@qe@t{{^}0LnpS(HI@JX002ovPDHLkV1fiKQbqs( diff --git a/app/ui/style/olive-light/png/zoomout.128.png b/app/ui/style/olive-light/png/zoomout.128.png index 39c884ad7fea67c1cc8c9affbeb349a65604a120..e8ee0bce109de5af3134ad45c5dfeaedc251aa7a 100644 GIT binary patch delta 4535 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 B*pC1J delta 481 zcmV<70UrMR1d;`iBq9WJLP=Bz2nYy#2xN!=000SaNLh0L00XfA00XfB^@Ht6kv4}S zut`KgR5*==k+EwOK@^9-H#=Nyu1Fzxvv*sG5U^0N6^xPJ7=O%J?(U5&S|miY)th}5 z&K;Z0E&gDc*?I5xy?Jkh4h@IHn{{2^0bD%#nk317S(cxgdD1p!S++Wx&7K3dI@lkq zwU3LUIJp4GvTQYk@K#kXi^v%;R@DiBh^zrSs@fNk?@5wu7DaJ#4&a=79V>rKlH@^I zmcN?uG)*r7yML;BLqy(t@9!@FvFEXfoEc-*+vXNzUsd~cU2mItAPx**++_yv-v0#l z0E{u~wh0GN)nn(}ZQvzfTmC=5Lsk7e_n1cTcU%R~_+5~Q)Xo291s@aEy!S7Ft6gn4 z=N`q}>EZ^)n0Ilz69=_aF?J6igmAC`OsCT?K&7gEV1IWRB%ZwjR#f${s;Z;;GnzC_ zpQ-9rqt_q6USnX_fo)(#M7~*TH}gC{m1Sn201Z^%7DBkozvu0V$TWm-P*v4Y6KGY{h{!oJP?u#n0VZ9;Y$_QH23yX#4Z!?2yQRMZ Xce)(*h7LRf00000NkvXXu0mjfYX{ph diff --git a/app/ui/style/olive-light/png/zoomout.32.png b/app/ui/style/olive-light/png/zoomout.32.png index e8821de10a91f545062bdac8b040b820897bcafb..ba6b9da4481a8d98de17b36f322ec1a6305273cb 100644 GIT binary patch delta 1064 zcmV+@1lRk%3BU=EBoYa5NLh0L00&_J00&_KmBYBUkw%Aq?ny*JR9JPVF z>?TF)Y+*&9RJ3b5Sq^2PDvA&%k`xK$#HkSRA3y=ANFbpWQG`Is2?U2WoVgKxoFJ$t zk`yHpLJDGKxFqZSQ57i-VN1FdG#Nh*v4i9FCU#Puv|7)bZ{|IF=KIDL>=UI@>5%7n zCrKV9c|QPuh{zuza$PA^Sz229C&@gLR@gMn(@Lo`0ES8CVkZ^34Pch!SG8Jg=B^m9 zZTlq2^8lVqV;I1XN~wuzwOWbm%p?>aCwU3L@s#2K@GyWE3WdVWR;%?(Y6G@yze)0~ zF0oA!nISn3U{OSx0CE8Cjl?McqlH4Dx7BLRhdXwET>{IpUIg&LjsYSB@SW#*ll6N2 zx43bpX`WC@y$WEAq(sJFa9ww5PXqp%PXWk==$lHZbJc3~huw^a=6IUqCjbtI=nc>F zo^Lc74zTrTV&QMN9pYN+@ucDa;JWVBOeQl9;I9zfqm;T3G-3^yrg<8n-7X?jN}X#q zo6AXm#RDuaFE5G6>;BROc*?S@k*)^(Jl_V%=`?p9h3mR=0Iq~N5jhiUpj0Xy0x%pg z@acZV18A);N2rlo{a{Qd?-Tw99-D8 z{T#`+0rV%-T~$iGU#(WZ_1lX8js>0BZ1!k>+#Wa*X|MSI0^r>g;sDT3@;&^Q?knL= zl1DlWkc?Km)CX2{O8?KI)#BKPK6tro14GKWkChNMu<9Yn&ycEhynnL#p0s~Z9o9G^7(v! zrNcn2R{I;kT$u9@mIFa4^;(3QaUADPY$YW5d4w9XZF@K_HVG`t8WoXe!<>kG4Rk5R z^?Ln#5!udvl0x$1!NI{&TJeE_fkyy*6wUwN zOFRbGu=Ogo3IHVgv6Z&R;(|qF(skVrcW}YQ(9lrN+S=MBlFuX*PlF8+xfs6l9R`xz zxrodI$dNqNEvC!31+Dc&x8=$LK)c<3V>fXCv$PmTXKsWaCkX0^Bt?mYkb#-5Ku)^t5yC%Z}cq?P8q zdGo$+W@p~c3J!@vp^$Dg8birs@+8TBhX6oC{%kgzH`D2KX=P=l5hahrCAMw*41jSF z86kNrG^xlA$$1g^rdqAe-4g-%e13@JB*|yvNyg8KL}F@nb+r`MnTSX}p|!pO;8aX< z0C)_*E7@$eUa!}Gi!H#m?YBw3(<62bz#M=@0L#9848Q|MoDz|-{{H?{y$660pJ{fvnGd9>QbdrnK@8EKA#`bTF(GT2HbU$=RME+ zX+PnC9M5a5KLd~rxOYju?0H@p093ERBqvRBt@T7yasa4QD%V@B)&zjR1MWT%xzsj7 z1=zNI#@Ov7d46qe?T@JBZLF_!M)2o{B@g7d8ni`Zv{)>rx&$;DjUl7LdA)Xf9C)60LqygCg6`kk z+tgG1A&l}T`M4eA}0)c<8D*l zk4g>ze(VRhd)zmI{UUNAOn_POVt=qq9sUE79l1nAhY9$rV>J12Akk$2w_}iR_+#3+ z9|?A9t#5bjfo8K=QL01N>2||)-B|#$F$9=+#;|X7tw17?C;`|FxK8=C{Yc2=a!-={ zZv%?RmStI`E&XeA{1rQtf8&*w+NVxz!uoG}0| z8iKwBdX!?+Q`~wiJ^``>^1BJNcgM)*Qll%mor)kMA&*1`!#bO_T9mAbXBoZ@m zR>ESg`{&Z zIq7-cSD^wTkaxhZ?aL%ELcRFzveT#~nG^jp5Up#<(K9kA3Q7)HvZQC9bkqMGx0Q$m$MP!TQ zf>P@1_HOS50U)+`ZU2JqtF%deC+Kt>=e|~}^^}O@0rV@Snp*1`fSZ8e)@%PKIpF{8SeCVd>%^9i3{d85kM00000NkvXXu0mjfDjoHg diff --git a/app/ui/style/olive-light/png/zoomout.64.png b/app/ui/style/olive-light/png/zoomout.64.png index 07be12a2583fa60de4aa60af1482d1c600bbaf91..6a4ffd447993c2433d01e3d5ee9eb1bd2345fc8f 100644 GIT binary patch delta 2159 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 delta 2162 zcmV-&2#xpu5rPtsBq9WJLP=Bz2nYy#2xN!=000SaNLh0L01m_e01m_fl`9S#kv4~a zAW1|)RCt{2TW@R}M-~6QopYQte{2&h8fWizbG|ffK+xclP(DQ}eP(u(;@T+|i?=AHHUqegncvfq5u&P6>bK1N zRJmL}i4@4llz^e3p{{f1&V61fbuR!nW%J|A{CIzV|I;T=o~(CjBr^gEg~DfliReK9 z*JsrR01(kxX8v9f1kZF-KW&Fru3Ty7a=GsU_*mMu<3L1zsMqUzCMG5-N$QC-ohTFv zpAbSE0I)huyQa+xA-44N^n|rq?X+p7v0$z~^50AN#JU!OHOIeEgQ zLK*}J$8o+5;7cjkN&^I7LvL??Z-1>;`#m%>#eByAavWzbfG;GjNc0+j;{aYJqH!X6 zy-+Az0Dv$I7b~S!pgD7_18^%dukFCUCxRgOW~?6_7@dXVIQIeAnV`xPfWrWe1VJ#K zq^&}sP_!&-3xI9Ryu`E~5k2Pn{=Un~lQ=OKuIp}M<{ulX*8v<@xNzZr{*jT9sZQGj zfKsWntkG!fVCH)O!pSW}rSIgxKYIp7F?Rf?~0F zgOqX~%x0XLl=5?xN@b!|V0F@XqtW;d%z}TGi0()`cmVJ`Z&XUT8NhP}>OGca?QJJW zJPSlCyf5qYnE6*>7(Ot6IXT(!GF6B3=g&84wc7K2eSOyhcz>KO5jnlRy{Bun+SuIk zL_J_=Xs9b%-s0WQs3i6~g!FxX4}j-&ibV9_#*G`_GHxUypjxeNhJI~-T1xo< zu1xSVkW$LsL^Kws#LTwmdAH9kOF{rKv##scg%Dq>R4Nw}*i8k0QJcE}G~)Cu%eohH z27hA$ipAnB(5JKqvKa78;rsqD5gm-vVdi3?Q26l7Z({U!MNURLPt z?*0jy3$Dw8h-M!HQvwLUZE*_Bd}wTJ?7X49%rG)CGDSqc)Tn(N(PLmlfa|(zblX_W z{G^$S*+WWsM5EGwZ`<}DU`PNFt=Gt33&YSe^e=Oi%jGiwhU0WB%lar_NPtr6293%e z&0M>pI36doENeAjmP`P^DvkWF?FwDj-N4Md0DJ(zBEz;!aS^~PLWoB^&--&5`69!3R5}?b!nfV{B zWkj?K<~?ja$SI}nZ{ySJntDqB^J#E#oN)Q_e9pMyOlCP<$sn}i%-~wPyz`x^!MD)Hk#g9Of zn52Zd5aRoPt%XFS%Ua(AQtAQBe91KF`~C?b#9aVhLUYPW8y5i_S4!RGdEP5+)L z=JWYMLtB|6@?}k&j#BC+z>omn_X8sOSDcOz;tpef4>N`k;!cgq8|892(IddjtUG_- zRw|WDw#qYw>$<%Fw#MlY(Qgo)85-{h>GFMMUeahZc9`1B3e3EdnPb-g%zSL-yDtv;ZHqJWL5)gIO1aOr?JTmtSlG6` zh=?A4W#-t!9%kN;IY;J+2nfUQC;;8A@9Jn}mg?;j4TKQlhs+#16A@7*2!dmC%aWcA zN&uHEJKJEB>$-b!Wk?WFTc0%0eHbl?UE+LQDK%_a)-*I%VVL<&$8nZPDR*aeP%1&;CbluD)UdcFQC5-g2p4G>M#>-FtP-_&@!zyg5j z>1hk^!r+03fGAzn9VfSz>% diff --git a/app/ui/style/olive-light/svg/add-button.svg b/app/ui/style/olive-light/svg/add-button.svg index 46a885d95..709635468 100644 --- a/app/ui/style/olive-light/svg/add-button.svg +++ b/app/ui/style/olive-light/svg/add-button.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,16 +138,16 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,21 +138,21 @@ + style="opacity:1;fill:#212121;fill-opacity:0.86274511;fill-rule:nonzero;stroke:none;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.23529412" /> - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,18 +138,18 @@ diff --git a/app/ui/style/olive-light/svg/align-center.svg b/app/ui/style/olive-light/svg/align-center.svg index 0e6b28565..7ab91b7d1 100644 --- a/app/ui/style/olive-light/svg/align-center.svg +++ b/app/ui/style/olive-light/svg/align-center.svg @@ -1,3 +1,171 @@ - - - \ No newline at end of file + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/align-justify-all.svg b/app/ui/style/olive-light/svg/align-justify-all.svg new file mode 100644 index 000000000..3c7f626d9 --- /dev/null +++ b/app/ui/style/olive-light/svg/align-justify-all.svg @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/align-justify-center.svg b/app/ui/style/olive-light/svg/align-justify-center.svg new file mode 100644 index 000000000..b583a882f --- /dev/null +++ b/app/ui/style/olive-light/svg/align-justify-center.svg @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/align-justify-left.svg b/app/ui/style/olive-light/svg/align-justify-left.svg new file mode 100644 index 000000000..47b1d787d --- /dev/null +++ b/app/ui/style/olive-light/svg/align-justify-left.svg @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/align-justify-right.svg b/app/ui/style/olive-light/svg/align-justify-right.svg new file mode 100644 index 000000000..38b7e6c39 --- /dev/null +++ b/app/ui/style/olive-light/svg/align-justify-right.svg @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/align-left.svg b/app/ui/style/olive-light/svg/align-left.svg index f61142d3b..3eec942e1 100644 --- a/app/ui/style/olive-light/svg/align-left.svg +++ b/app/ui/style/olive-light/svg/align-left.svg @@ -1,3 +1,171 @@ - - - \ No newline at end of file + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/align-right.svg b/app/ui/style/olive-light/svg/align-right.svg index c075d28a1..8035afb9e 100644 --- a/app/ui/style/olive-light/svg/align-right.svg +++ b/app/ui/style/olive-light/svg/align-right.svg @@ -1,3 +1,171 @@ - - - \ No newline at end of file + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/arrow.svg b/app/ui/style/olive-light/svg/arrow.svg index 1bc1fbb86..abd5a1b90 100644 --- a/app/ui/style/olive-light/svg/arrow.svg +++ b/app/ui/style/olive-light/svg/arrow.svg @@ -1 +1,161 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/audiosource.svg b/app/ui/style/olive-light/svg/audiosource.svg index a1aac03fc..f6e9767f4 100644 --- a/app/ui/style/olive-light/svg/audiosource.svg +++ b/app/ui/style/olive-light/svg/audiosource.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,11 +138,11 @@ - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/box.svg b/app/ui/style/olive-light/svg/box.svg index 87d51308c..93ad6d9cd 100644 --- a/app/ui/style/olive-light/svg/box.svg +++ b/app/ui/style/olive-light/svg/box.svg @@ -1,16 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -94,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -115,18 +138,18 @@ @@ -134,23 +157,23 @@ inkscape:connector-curvature="0" id="path10806" d="m 8,-2 0,-6 6,0" - style="opacity:1;fill:none;fill-opacity:0.8627451;fill-rule:nonzero;stroke:#202020;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.8627451" + style="opacity:1;fill:none;fill-opacity:0.8627451;fill-rule:nonzero;stroke:#212121;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.8627451" sodipodi:nodetypes="ccc" /> + style="opacity:1;fill:none;fill-opacity:0.8627451;fill-rule:nonzero;stroke:#212121;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.8627451" /> @@ -158,13 +181,13 @@ inkscape:connector-curvature="0" id="path10818" d="m 56,34 0,6 -6,0" - style="opacity:1;fill:none;fill-opacity:0.8627451;fill-rule:nonzero;stroke:#202020;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.8627451" + style="opacity:1;fill:none;fill-opacity:0.8627451;fill-rule:nonzero;stroke:#212121;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.8627451" sodipodi:nodetypes="ccc" /> + style="opacity:1;fill:none;fill-opacity:0.8627451;fill-rule:nonzero;stroke:#212121;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.8627451" /> diff --git a/app/ui/style/olive-light/svg/clock.svg b/app/ui/style/olive-light/svg/clock.svg index 31288c87a..8613a65d2 100644 --- a/app/ui/style/olive-light/svg/clock.svg +++ b/app/ui/style/olive-light/svg/clock.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,17 +138,17 @@ + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -783,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -804,22 +138,18 @@ - - - - + + diff --git a/app/ui/style/olive-light/svg/diamond.svg b/app/ui/style/olive-light/svg/diamond.svg index 0d22492ef..e732bf061 100644 --- a/app/ui/style/olive-light/svg/diamond.svg +++ b/app/ui/style/olive-light/svg/diamond.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,11 +138,11 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10998,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11019,11 +138,11 @@ diff --git a/app/ui/style/olive-light/svg/error.svg b/app/ui/style/olive-light/svg/error.svg index fee83e2bd..2163ceb5b 100644 --- a/app/ui/style/olive-light/svg/error.svg +++ b/app/ui/style/olive-light/svg/error.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10998,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11019,7 +138,7 @@ + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -783,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -804,21 +138,18 @@ - - - - + + diff --git a/app/ui/style/olive-light/svg/ff.svg b/app/ui/style/olive-light/svg/ff.svg index 871fbacfc..4c1c142a6 100644 --- a/app/ui/style/olive-light/svg/ff.svg +++ b/app/ui/style/olive-light/svg/ff.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,17 +138,17 @@ + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -783,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -804,12 +138,12 @@ diff --git a/app/ui/style/olive-light/svg/folder.svg b/app/ui/style/olive-light/svg/folder.svg index f87e348f4..12c04c5d3 100644 --- a/app/ui/style/olive-light/svg/folder.svg +++ b/app/ui/style/olive-light/svg/folder.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10998,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11019,11 +138,11 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -787,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -808,17 +138,17 @@ diff --git a/app/ui/style/olive-light/svg/iconview.svg b/app/ui/style/olive-light/svg/iconview.svg index 4b44ce7d6..eb00c1d3b 100644 --- a/app/ui/style/olive-light/svg/iconview.svg +++ b/app/ui/style/olive-light/svg/iconview.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,11 +138,11 @@ diff --git a/app/ui/style/olive-light/svg/imagesource.svg b/app/ui/style/olive-light/svg/imagesource.svg index 9252c5844..2c26357f5 100644 --- a/app/ui/style/olive-light/svg/imagesource.svg +++ b/app/ui/style/olive-light/svg/imagesource.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10998,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11019,23 +138,23 @@ + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -783,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -804,21 +138,18 @@ - - - - + + diff --git a/app/ui/style/olive-light/svg/italic.svg b/app/ui/style/olive-light/svg/italic.svg deleted file mode 100644 index 1e1b773ba..000000000 --- a/app/ui/style/olive-light/svg/italic.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/app/ui/style/olive-light/svg/justify-center.svg b/app/ui/style/olive-light/svg/justify-center.svg deleted file mode 100644 index 9af278b07..000000000 --- a/app/ui/style/olive-light/svg/justify-center.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/app/ui/style/olive-light/svg/listview.svg b/app/ui/style/olive-light/svg/listview.svg index a255c57df..4f9488074 100644 --- a/app/ui/style/olive-light/svg/listview.svg +++ b/app/ui/style/olive-light/svg/listview.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,11 +138,11 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10998,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11019,11 +138,11 @@ + style="opacity:1;fill:#212121;fill-opacity:0.8627451;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> diff --git a/app/ui/style/olive-light/svg/map.svg b/app/ui/style/olive-light/svg/map.svg index fa176eb33..6f09d36e5 100644 --- a/app/ui/style/olive-light/svg/map.svg +++ b/app/ui/style/olive-light/svg/map.svg @@ -142,12 +142,12 @@ id="layer1" transform="translate(0,16)"> diff --git a/app/ui/style/olive-light/svg/minus.svg b/app/ui/style/olive-light/svg/minus.svg index d10c9606a..86fb1e78d 100644 --- a/app/ui/style/olive-light/svg/minus.svg +++ b/app/ui/style/olive-light/svg/minus.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,11 +138,11 @@ diff --git a/app/ui/style/olive-light/svg/new.svg b/app/ui/style/olive-light/svg/new.svg index f600b7e82..813cfd2f3 100644 --- a/app/ui/style/olive-light/svg/new.svg +++ b/app/ui/style/olive-light/svg/new.svg @@ -1,15 +1,7 @@ + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10997,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11018,17 +138,17 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,17 +138,17 @@ + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -783,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -804,44 +138,40 @@ - - - - - - + + + + diff --git a/app/ui/style/olive-light/svg/nodes_ltr.svg b/app/ui/style/olive-light/svg/nodes_ltr.svg index 29fe36ea6..d79319594 100644 --- a/app/ui/style/olive-light/svg/nodes_ltr.svg +++ b/app/ui/style/olive-light/svg/nodes_ltr.svg @@ -1,15 +1,7 @@ + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -783,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -804,13 +138,13 @@ diff --git a/app/ui/style/olive-light/svg/nodes_rtl.svg b/app/ui/style/olive-light/svg/nodes_rtl.svg index 35c8bf7a8..eee76e609 100644 --- a/app/ui/style/olive-light/svg/nodes_rtl.svg +++ b/app/ui/style/olive-light/svg/nodes_rtl.svg @@ -1,15 +1,7 @@ + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -783,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -804,14 +138,14 @@ diff --git a/app/ui/style/olive-light/svg/nodes_ttb.svg b/app/ui/style/olive-light/svg/nodes_ttb.svg index 70f1de339..38af271fa 100644 --- a/app/ui/style/olive-light/svg/nodes_ttb.svg +++ b/app/ui/style/olive-light/svg/nodes_ttb.svg @@ -1,15 +1,7 @@ + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -783,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -804,14 +138,14 @@ diff --git a/app/ui/style/olive-light/svg/open.svg b/app/ui/style/olive-light/svg/open.svg index 5493b41fe..cb5260a0a 100644 --- a/app/ui/style/olive-light/svg/open.svg +++ b/app/ui/style/olive-light/svg/open.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10998,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11019,25 +138,25 @@ @@ -11045,7 +164,7 @@ id="path14274" transform="translate(0,-16)" d="m 8,25 c -1.6567856,1.66e-4 -2.9998343,1.343214 -3,3 l 0,32 c 1.657e-4,1.656786 1.3432144,2.999834 3,3 l 48,0 c 1.656786,-1.66e-4 2.999834,-1.343214 3,-3 l 0,-24 c -1.66e-4,-1.656786 -1.343214,-2.999834 -3,-3 l -3,0 0,25 c -1.66e-4,1.656786 -1.343214,2.999834 -3,3 l -36,0 c -1.656786,-1.66e-4 -2.999834,-1.343214 -3,-3 l 0,-33 z" - style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#202020;fill-opacity:0.8627451;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + style="color:#212121;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#212121;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#212121;solid-opacity:1;fill:#212121;fill-opacity:0.8627451;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccccccccc" /> diff --git a/app/ui/style/olive-light/svg/paste.svg b/app/ui/style/olive-light/svg/paste.svg index b4e3c8d13..a81b834af 100644 --- a/app/ui/style/olive-light/svg/paste.svg +++ b/app/ui/style/olive-light/svg/paste.svg @@ -1,15 +1,7 @@ + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -783,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -804,16 +138,16 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,11 +138,11 @@ + style="opacity:1;fill:none;fill-opacity:0.57777782;fill-rule:evenodd;stroke:#212121;stroke-width:8;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.8627451" /> diff --git a/app/ui/style/olive-light/svg/play.svg b/app/ui/style/olive-light/svg/play.svg index 32a434b9e..3447706df 100644 --- a/app/ui/style/olive-light/svg/play.svg +++ b/app/ui/style/olive-light/svg/play.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,11 +138,11 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,11 +138,11 @@ diff --git a/app/ui/style/olive-light/svg/prev.svg b/app/ui/style/olive-light/svg/prev.svg index 0e17d6765..b886b7977 100644 --- a/app/ui/style/olive-light/svg/prev.svg +++ b/app/ui/style/olive-light/svg/prev.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,17 +138,17 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,15 +138,15 @@ diff --git a/app/ui/style/olive-light/svg/record.svg b/app/ui/style/olive-light/svg/record.svg index a6791a3ac..59a628bba 100644 --- a/app/ui/style/olive-light/svg/record.svg +++ b/app/ui/style/olive-light/svg/record.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,11 +138,11 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -94,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -115,11 +138,11 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,17 +138,17 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10998,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11019,16 +138,16 @@ diff --git a/app/ui/style/olive-light/svg/rolling.svg b/app/ui/style/olive-light/svg/rolling.svg index a861c650f..b08beac6b 100644 --- a/app/ui/style/olive-light/svg/rolling.svg +++ b/app/ui/style/olive-light/svg/rolling.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10998,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11019,16 +138,16 @@ + style="color:#212121;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#212121;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#212121;solid-opacity:1;fill:#212121;fill-opacity:0.8627451;fill-rule:nonzero;stroke:none;stroke-width:8;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> diff --git a/app/ui/style/olive-light/svg/save.svg b/app/ui/style/olive-light/svg/save.svg index 199ddd0c8..a6e5718a4 100644 --- a/app/ui/style/olive-light/svg/save.svg +++ b/app/ui/style/olive-light/svg/save.svg @@ -1,16 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -94,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -115,25 +138,25 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10998,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11019,11 +138,11 @@ + style="opacity:1;fill:none;fill-opacity:0.57777782;fill-rule:evenodd;stroke:#212121;stroke-width:7.99999952;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.8627451" /> - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10998,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11019,23 +138,23 @@ diff --git a/app/ui/style/olive-light/svg/slip.svg b/app/ui/style/olive-light/svg/slip.svg index 122b486b1..b48fd4058 100644 --- a/app/ui/style/olive-light/svg/slip.svg +++ b/app/ui/style/olive-light/svg/slip.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -10998,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -11019,16 +138,16 @@ + style="opacity:1;fill:none;fill-opacity:0.47058824;fill-rule:nonzero;stroke:#212121;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.86274511" /> diff --git a/app/ui/style/olive-light/svg/smooth_edges.svg b/app/ui/style/olive-light/svg/smooth_edges.svg index 5f54945a8..73ec73cf7 100644 --- a/app/ui/style/olive-light/svg/smooth_edges.svg +++ b/app/ui/style/olive-light/svg/smooth_edges.svg @@ -1,15 +1,7 @@ + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -783,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -804,12 +138,12 @@ diff --git a/app/ui/style/olive-light/svg/text-bold.svg b/app/ui/style/olive-light/svg/text-bold.svg new file mode 100644 index 000000000..8ed5ffd69 --- /dev/null +++ b/app/ui/style/olive-light/svg/text-bold.svg @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/text-italic.svg b/app/ui/style/olive-light/svg/text-italic.svg new file mode 100644 index 000000000..c60cc95f1 --- /dev/null +++ b/app/ui/style/olive-light/svg/text-italic.svg @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/text-underline.svg b/app/ui/style/olive-light/svg/text-underline.svg new file mode 100644 index 000000000..b0b4f89fa --- /dev/null +++ b/app/ui/style/olive-light/svg/text-underline.svg @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/transition-tool.svg b/app/ui/style/olive-light/svg/transition-tool.svg index 7dbe4a8d0..800e848b1 100644 --- a/app/ui/style/olive-light/svg/transition-tool.svg +++ b/app/ui/style/olive-light/svg/transition-tool.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,22 +138,22 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,12 +138,12 @@ @@ -818,17 +151,17 @@ inkscape:connector-curvature="0" id="path18593" d="M 22,8 56,8" - style="fill:none;fill-rule:evenodd;stroke:#202020;stroke-width:10;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.8627451" + style="fill:none;fill-rule:evenodd;stroke:#212121;stroke-width:10;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.8627451" sodipodi:nodetypes="cc" /> diff --git a/app/ui/style/olive-light/svg/tri-down.svg b/app/ui/style/olive-light/svg/tri-down.svg index bc62b5962..34ad49c45 100644 --- a/app/ui/style/olive-light/svg/tri-down.svg +++ b/app/ui/style/olive-light/svg/tri-down.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,11 +138,11 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,11 +138,11 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,11 +138,11 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,11 +138,11 @@ - - \ No newline at end of file diff --git a/app/ui/style/olive-light/svg/undo.svg b/app/ui/style/olive-light/svg/undo.svg index 938493c5f..af826ab03 100644 --- a/app/ui/style/olive-light/svg/undo.svg +++ b/app/ui/style/olive-light/svg/undo.svg @@ -1,16 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -94,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -115,11 +138,11 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,11 +138,11 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,16 +138,16 @@ diff --git a/app/ui/style/olive-light/svg/zoomout.svg b/app/ui/style/olive-light/svg/zoomout.svg index aa2ef9c32..bdbfd5e9b 100644 --- a/app/ui/style/olive-light/svg/zoomout.svg +++ b/app/ui/style/olive-light/svg/zoomout.svg @@ -1,17 +1,7 @@ - - + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs14" /> + inkscape:snap-smooth-nodes="true" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:lockguides="true" + guidecolor="#ff0000" + guideopacity="0.30196078"> - + + + + + + @@ -784,7 +118,6 @@ http://commons.wikimedia.org/wiki/Tango_icon - @@ -805,16 +138,16 @@ Date: Fri, 28 Jan 2022 16:39:55 -0800 Subject: [PATCH 004/114] further revised icon system - Move QRC generation to CMake so they can be generated automatically rather than with generate-style.sh - Removed QRC generation from generate-style.sh - Added extra "disabled icon" generation in generate-style.sh - Added disabled icon loading to main code --- app/ui/icons/icons.cpp | 4 +- app/ui/style/CMakeLists.txt | 5 ++- app/ui/style/generate-style.sh | 36 +++--------------- app/ui/style/olive-dark/CMakeLists.txt | 32 ++++++++++++++++ .../png/add-button.128.disabled.png | Bin 0 -> 1212 bytes .../olive-dark/png/add-button.16.disabled.png | Bin 0 -> 541 bytes .../olive-dark/png/add-button.32.disabled.png | Bin 0 -> 603 bytes .../olive-dark/png/add-button.64.disabled.png | Bin 0 -> 783 bytes .../png/add-effect.128.disabled.png | Bin 0 -> 1552 bytes .../olive-dark/png/add-effect.16.disabled.png | Bin 0 -> 565 bytes .../olive-dark/png/add-effect.32.disabled.png | Bin 0 -> 647 bytes .../olive-dark/png/add-effect.64.disabled.png | Bin 0 -> 966 bytes .../png/add-transition.128.disabled.png | Bin 0 -> 1571 bytes .../png/add-transition.16.disabled.png | Bin 0 -> 573 bytes .../png/add-transition.32.disabled.png | Bin 0 -> 695 bytes .../png/add-transition.64.disabled.png | Bin 0 -> 985 bytes .../png/align-center.128.disabled.png | Bin 0 -> 864 bytes .../png/align-center.16.disabled.png | Bin 0 -> 446 bytes .../png/align-center.32.disabled.png | Bin 0 -> 506 bytes .../png/align-center.64.disabled.png | Bin 0 -> 600 bytes .../png/align-justify-all.128.disabled.png | Bin 0 -> 775 bytes .../png/align-justify-all.16.disabled.png | Bin 0 -> 435 bytes .../png/align-justify-all.32.disabled.png | Bin 0 -> 481 bytes .../png/align-justify-all.64.disabled.png | Bin 0 -> 550 bytes .../png/align-justify-center.128.disabled.png | Bin 0 -> 854 bytes .../png/align-justify-center.16.disabled.png | Bin 0 -> 446 bytes .../png/align-justify-center.32.disabled.png | Bin 0 -> 506 bytes .../png/align-justify-center.64.disabled.png | Bin 0 -> 597 bytes .../png/align-justify-left.128.disabled.png | Bin 0 -> 831 bytes .../png/align-justify-left.16.disabled.png | Bin 0 -> 443 bytes .../png/align-justify-left.32.disabled.png | Bin 0 -> 498 bytes .../png/align-justify-left.64.disabled.png | Bin 0 -> 583 bytes .../png/align-justify-right.128.disabled.png | Bin 0 -> 836 bytes .../png/align-justify-right.16.disabled.png | Bin 0 -> 442 bytes .../png/align-justify-right.32.disabled.png | Bin 0 -> 500 bytes .../png/align-justify-right.64.disabled.png | Bin 0 -> 589 bytes .../png/align-left.128.disabled.png | Bin 0 -> 841 bytes .../olive-dark/png/align-left.16.disabled.png | Bin 0 -> 444 bytes .../olive-dark/png/align-left.32.disabled.png | Bin 0 -> 498 bytes .../olive-dark/png/align-left.64.disabled.png | Bin 0 -> 586 bytes .../png/align-right.128.disabled.png | Bin 0 -> 844 bytes .../png/align-right.16.disabled.png | Bin 0 -> 441 bytes .../png/align-right.32.disabled.png | Bin 0 -> 502 bytes .../png/align-right.64.disabled.png | Bin 0 -> 593 bytes .../olive-dark/png/arrow.128.disabled.png | Bin 0 -> 1774 bytes .../olive-dark/png/arrow.16.disabled.png | Bin 0 -> 560 bytes .../olive-dark/png/arrow.32.disabled.png | Bin 0 -> 719 bytes .../olive-dark/png/arrow.64.disabled.png | Bin 0 -> 1066 bytes .../png/audiosource.128.disabled.png | Bin 0 -> 1226 bytes .../png/audiosource.16.disabled.png | Bin 0 -> 517 bytes .../png/audiosource.32.disabled.png | Bin 0 -> 609 bytes .../png/audiosource.64.disabled.png | Bin 0 -> 803 bytes .../olive-dark/png/beam.128.disabled.png | Bin 0 -> 1469 bytes .../style/olive-dark/png/beam.16.disabled.png | Bin 0 -> 560 bytes .../style/olive-dark/png/beam.32.disabled.png | Bin 0 -> 685 bytes .../style/olive-dark/png/beam.64.disabled.png | Bin 0 -> 901 bytes .../style/olive-dark/png/box.128.disabled.png | Bin 0 -> 1116 bytes .../style/olive-dark/png/box.16.disabled.png | Bin 0 -> 514 bytes .../style/olive-dark/png/box.32.disabled.png | Bin 0 -> 585 bytes .../style/olive-dark/png/box.64.disabled.png | Bin 0 -> 736 bytes .../olive-dark/png/clock.128.disabled.png | Bin 0 -> 2619 bytes .../olive-dark/png/clock.16.disabled.png | Bin 0 -> 639 bytes .../olive-dark/png/clock.32.disabled.png | Bin 0 -> 909 bytes .../olive-dark/png/clock.64.disabled.png | Bin 0 -> 1466 bytes .../olive-dark/png/copy.128.disabled.png | Bin 0 -> 928 bytes .../style/olive-dark/png/copy.16.disabled.png | Bin 0 -> 526 bytes .../style/olive-dark/png/copy.32.disabled.png | Bin 0 -> 540 bytes .../style/olive-dark/png/copy.64.disabled.png | Bin 0 -> 637 bytes .../olive-dark/png/diamond.128.disabled.png | Bin 0 -> 1275 bytes .../olive-dark/png/diamond.16.disabled.png | Bin 0 -> 505 bytes .../olive-dark/png/diamond.32.disabled.png | Bin 0 -> 597 bytes .../olive-dark/png/diamond.64.disabled.png | Bin 0 -> 803 bytes .../olive-dark/png/dirup.128.disabled.png | Bin 0 -> 1269 bytes .../olive-dark/png/dirup.16.disabled.png | Bin 0 -> 546 bytes .../olive-dark/png/dirup.32.disabled.png | Bin 0 -> 622 bytes .../olive-dark/png/dirup.64.disabled.png | Bin 0 -> 817 bytes .../olive-dark/png/error.128.disabled.png | Bin 0 -> 2482 bytes .../olive-dark/png/error.16.disabled.png | Bin 0 -> 764 bytes .../olive-dark/png/error.32.disabled.png | Bin 0 -> 1025 bytes .../olive-dark/png/error.64.disabled.png | Bin 0 -> 1562 bytes .../olive-dark/png/export.128.disabled.png | Bin 0 -> 1417 bytes .../olive-dark/png/export.16.disabled.png | Bin 0 -> 565 bytes .../olive-dark/png/export.32.disabled.png | Bin 0 -> 687 bytes .../olive-dark/png/export.64.disabled.png | Bin 0 -> 880 bytes .../style/olive-dark/png/ff.128.disabled.png | Bin 0 -> 1239 bytes .../style/olive-dark/png/ff.16.disabled.png | Bin 0 -> 532 bytes .../style/olive-dark/png/ff.32.disabled.png | Bin 0 -> 651 bytes .../style/olive-dark/png/ff.64.disabled.png | Bin 0 -> 839 bytes .../olive-dark/png/filter.128.disabled.png | Bin 0 -> 1128 bytes .../olive-dark/png/filter.16.disabled.png | Bin 0 -> 520 bytes .../olive-dark/png/filter.32.disabled.png | Bin 0 -> 578 bytes .../olive-dark/png/filter.64.disabled.png | Bin 0 -> 730 bytes .../olive-dark/png/folder.128.disabled.png | Bin 0 -> 841 bytes .../olive-dark/png/folder.16.disabled.png | Bin 0 -> 487 bytes .../olive-dark/png/folder.32.disabled.png | Bin 0 -> 522 bytes .../olive-dark/png/folder.64.disabled.png | Bin 0 -> 598 bytes .../olive-dark/png/hand.128.disabled.png | Bin 0 -> 2442 bytes .../style/olive-dark/png/hand.16.disabled.png | Bin 0 -> 608 bytes .../style/olive-dark/png/hand.32.disabled.png | Bin 0 -> 855 bytes .../style/olive-dark/png/hand.64.disabled.png | Bin 0 -> 1350 bytes .../olive-dark/png/iconview.128.disabled.png | Bin 0 -> 885 bytes .../olive-dark/png/iconview.16.disabled.png | Bin 0 -> 520 bytes .../olive-dark/png/iconview.32.disabled.png | Bin 0 -> 633 bytes .../olive-dark/png/iconview.64.disabled.png | Bin 0 -> 584 bytes .../png/imagesource.128.disabled.png | Bin 0 -> 1532 bytes .../png/imagesource.16.disabled.png | Bin 0 -> 550 bytes .../png/imagesource.32.disabled.png | Bin 0 -> 688 bytes .../png/imagesource.64.disabled.png | Bin 0 -> 944 bytes .../olive-dark/png/import.128.disabled.png | Bin 0 -> 1416 bytes .../olive-dark/png/import.16.disabled.png | Bin 0 -> 586 bytes .../olive-dark/png/import.32.disabled.png | Bin 0 -> 689 bytes .../olive-dark/png/import.64.disabled.png | Bin 0 -> 871 bytes .../olive-dark/png/listview.128.disabled.png | Bin 0 -> 827 bytes .../olive-dark/png/listview.16.disabled.png | Bin 0 -> 486 bytes .../olive-dark/png/listview.32.disabled.png | Bin 0 -> 539 bytes .../olive-dark/png/listview.64.disabled.png | Bin 0 -> 561 bytes .../olive-dark/png/magnet.128.disabled.png | Bin 0 -> 2108 bytes .../olive-dark/png/magnet.16.disabled.png | Bin 0 -> 610 bytes .../olive-dark/png/magnet.32.disabled.png | Bin 0 -> 789 bytes .../olive-dark/png/magnet.64.disabled.png | Bin 0 -> 1200 bytes .../style/olive-dark/png/map.128.disabled.png | Bin 0 -> 909 bytes .../style/olive-dark/png/map.16.disabled.png | Bin 0 -> 507 bytes .../style/olive-dark/png/map.32.disabled.png | Bin 0 -> 551 bytes .../style/olive-dark/png/map.64.disabled.png | Bin 0 -> 635 bytes .../olive-dark/png/minus.128.disabled.png | Bin 0 -> 744 bytes .../olive-dark/png/minus.16.disabled.png | Bin 0 -> 463 bytes .../olive-dark/png/minus.32.disabled.png | Bin 0 -> 499 bytes .../olive-dark/png/minus.64.disabled.png | Bin 0 -> 584 bytes .../style/olive-dark/png/new.128.disabled.png | Bin 0 -> 1075 bytes .../style/olive-dark/png/new.16.disabled.png | Bin 0 -> 533 bytes .../style/olive-dark/png/new.32.disabled.png | Bin 0 -> 611 bytes .../style/olive-dark/png/new.64.disabled.png | Bin 0 -> 744 bytes .../olive-dark/png/next.128.disabled.png | Bin 0 -> 1253 bytes .../style/olive-dark/png/next.16.disabled.png | Bin 0 -> 539 bytes .../style/olive-dark/png/next.32.disabled.png | Bin 0 -> 661 bytes .../style/olive-dark/png/next.64.disabled.png | Bin 0 -> 845 bytes .../olive-dark/png/nodes_btt.128.disabled.png | Bin 0 -> 1325 bytes .../olive-dark/png/nodes_btt.16.disabled.png | Bin 0 -> 557 bytes .../olive-dark/png/nodes_btt.32.disabled.png | Bin 0 -> 664 bytes .../olive-dark/png/nodes_btt.64.disabled.png | Bin 0 -> 818 bytes .../olive-dark/png/nodes_ltr.128.disabled.png | Bin 0 -> 1325 bytes .../olive-dark/png/nodes_ltr.16.disabled.png | Bin 0 -> 557 bytes .../olive-dark/png/nodes_ltr.32.disabled.png | Bin 0 -> 664 bytes .../olive-dark/png/nodes_ltr.64.disabled.png | Bin 0 -> 818 bytes .../olive-dark/png/nodes_rtl.128.disabled.png | Bin 0 -> 1308 bytes .../olive-dark/png/nodes_rtl.16.disabled.png | Bin 0 -> 551 bytes .../olive-dark/png/nodes_rtl.32.disabled.png | Bin 0 -> 666 bytes .../olive-dark/png/nodes_rtl.64.disabled.png | Bin 0 -> 826 bytes .../olive-dark/png/nodes_ttb.128.disabled.png | Bin 0 -> 1249 bytes .../olive-dark/png/nodes_ttb.16.disabled.png | Bin 0 -> 564 bytes .../olive-dark/png/nodes_ttb.32.disabled.png | Bin 0 -> 635 bytes .../olive-dark/png/nodes_ttb.64.disabled.png | Bin 0 -> 808 bytes .../olive-dark/png/open.128.disabled.png | Bin 0 -> 1203 bytes .../style/olive-dark/png/open.16.disabled.png | Bin 0 -> 571 bytes .../style/olive-dark/png/open.32.disabled.png | Bin 0 -> 677 bytes .../style/olive-dark/png/open.64.disabled.png | Bin 0 -> 819 bytes .../olive-dark/png/paste.128.disabled.png | Bin 0 -> 971 bytes .../olive-dark/png/paste.16.disabled.png | Bin 0 -> 547 bytes .../olive-dark/png/paste.32.disabled.png | Bin 0 -> 611 bytes .../olive-dark/png/paste.64.disabled.png | Bin 0 -> 649 bytes .../olive-dark/png/pause.128.disabled.png | Bin 0 -> 781 bytes .../olive-dark/png/pause.16.disabled.png | Bin 0 -> 476 bytes .../olive-dark/png/pause.32.disabled.png | Bin 0 -> 493 bytes .../olive-dark/png/pause.64.disabled.png | Bin 0 -> 553 bytes .../olive-dark/png/play.128.disabled.png | Bin 0 -> 1147 bytes .../style/olive-dark/png/play.16.disabled.png | Bin 0 -> 517 bytes .../style/olive-dark/png/play.32.disabled.png | Bin 0 -> 618 bytes .../style/olive-dark/png/play.64.disabled.png | Bin 0 -> 772 bytes .../olive-dark/png/plus.128.disabled.png | Bin 0 -> 1114 bytes .../style/olive-dark/png/plus.16.disabled.png | Bin 0 -> 531 bytes .../style/olive-dark/png/plus.32.disabled.png | Bin 0 -> 580 bytes .../style/olive-dark/png/plus.64.disabled.png | Bin 0 -> 729 bytes .../olive-dark/png/prev.128.disabled.png | Bin 0 -> 1281 bytes .../style/olive-dark/png/prev.16.disabled.png | Bin 0 -> 540 bytes .../style/olive-dark/png/prev.32.disabled.png | Bin 0 -> 655 bytes .../style/olive-dark/png/prev.64.disabled.png | Bin 0 -> 841 bytes .../olive-dark/png/razor.128.disabled.png | Bin 0 -> 1195 bytes .../olive-dark/png/razor.16.disabled.png | Bin 0 -> 512 bytes .../olive-dark/png/razor.32.disabled.png | Bin 0 -> 574 bytes .../olive-dark/png/razor.64.disabled.png | Bin 0 -> 765 bytes .../olive-dark/png/record.128.disabled.png | Bin 0 -> 1186 bytes .../olive-dark/png/record.16.disabled.png | Bin 0 -> 497 bytes .../olive-dark/png/record.32.disabled.png | Bin 0 -> 577 bytes .../olive-dark/png/record.64.disabled.png | Bin 0 -> 800 bytes .../olive-dark/png/redo.128.disabled.png | Bin 0 -> 1361 bytes .../style/olive-dark/png/redo.16.disabled.png | Bin 0 -> 525 bytes .../style/olive-dark/png/redo.32.disabled.png | Bin 0 -> 648 bytes .../style/olive-dark/png/redo.64.disabled.png | Bin 0 -> 837 bytes .../style/olive-dark/png/rew.128.disabled.png | Bin 0 -> 1279 bytes .../style/olive-dark/png/rew.16.disabled.png | Bin 0 -> 534 bytes .../style/olive-dark/png/rew.32.disabled.png | Bin 0 -> 643 bytes .../style/olive-dark/png/rew.64.disabled.png | Bin 0 -> 848 bytes .../olive-dark/png/ripple.128.disabled.png | Bin 0 -> 1504 bytes .../olive-dark/png/ripple.16.disabled.png | Bin 0 -> 567 bytes .../olive-dark/png/ripple.32.disabled.png | Bin 0 -> 695 bytes .../olive-dark/png/ripple.64.disabled.png | Bin 0 -> 898 bytes .../olive-dark/png/rolling.128.disabled.png | Bin 0 -> 1708 bytes .../olive-dark/png/rolling.16.disabled.png | Bin 0 -> 569 bytes .../olive-dark/png/rolling.32.disabled.png | Bin 0 -> 731 bytes .../olive-dark/png/rolling.64.disabled.png | Bin 0 -> 1026 bytes .../olive-dark/png/save.128.disabled.png | Bin 0 -> 1137 bytes .../style/olive-dark/png/save.16.disabled.png | Bin 0 -> 562 bytes .../style/olive-dark/png/save.32.disabled.png | Bin 0 -> 646 bytes .../style/olive-dark/png/save.64.disabled.png | Bin 0 -> 777 bytes .../olive-dark/png/sequence.128.disabled.png | Bin 0 -> 908 bytes .../olive-dark/png/sequence.16.disabled.png | Bin 0 -> 497 bytes .../olive-dark/png/sequence.32.disabled.png | Bin 0 -> 524 bytes .../olive-dark/png/sequence.64.disabled.png | Bin 0 -> 608 bytes .../olive-dark/png/slide.128.disabled.png | Bin 0 -> 1507 bytes .../olive-dark/png/slide.16.disabled.png | Bin 0 -> 545 bytes .../olive-dark/png/slide.32.disabled.png | Bin 0 -> 665 bytes .../olive-dark/png/slide.64.disabled.png | Bin 0 -> 889 bytes .../olive-dark/png/slip.128.disabled.png | Bin 0 -> 1553 bytes .../style/olive-dark/png/slip.16.disabled.png | Bin 0 -> 569 bytes .../style/olive-dark/png/slip.32.disabled.png | Bin 0 -> 686 bytes .../style/olive-dark/png/slip.64.disabled.png | Bin 0 -> 935 bytes .../png/smooth_edges.128.disabled.png | Bin 0 -> 1714 bytes .../png/smooth_edges.16.disabled.png | Bin 0 -> 571 bytes .../png/smooth_edges.32.disabled.png | Bin 0 -> 701 bytes .../png/smooth_edges.64.disabled.png | Bin 0 -> 1001 bytes .../olive-dark/png/text-bold.128.disabled.png | Bin 0 -> 1851 bytes .../olive-dark/png/text-bold.16.disabled.png | Bin 0 -> 594 bytes .../olive-dark/png/text-bold.32.disabled.png | Bin 0 -> 762 bytes .../olive-dark/png/text-bold.64.disabled.png | Bin 0 -> 1142 bytes .../png/text-italic.128.disabled.png | Bin 0 -> 1223 bytes .../png/text-italic.16.disabled.png | Bin 0 -> 553 bytes .../png/text-italic.32.disabled.png | Bin 0 -> 635 bytes .../png/text-italic.64.disabled.png | Bin 0 -> 804 bytes .../png/text-underline.128.disabled.png | Bin 0 -> 1346 bytes .../png/text-underline.16.disabled.png | Bin 0 -> 529 bytes .../png/text-underline.32.disabled.png | Bin 0 -> 624 bytes .../png/text-underline.64.disabled.png | Bin 0 -> 824 bytes .../png/transition-tool.128.disabled.png | Bin 0 -> 1074 bytes .../png/transition-tool.16.disabled.png | Bin 0 -> 516 bytes .../png/transition-tool.32.disabled.png | Bin 0 -> 568 bytes .../png/transition-tool.64.disabled.png | Bin 0 -> 723 bytes .../olive-dark/png/treeview.128.disabled.png | Bin 0 -> 934 bytes .../olive-dark/png/treeview.16.disabled.png | Bin 0 -> 482 bytes .../olive-dark/png/treeview.32.disabled.png | Bin 0 -> 527 bytes .../olive-dark/png/treeview.64.disabled.png | Bin 0 -> 616 bytes .../olive-dark/png/tri-down.128.disabled.png | Bin 0 -> 1266 bytes .../olive-dark/png/tri-down.16.disabled.png | Bin 0 -> 533 bytes .../olive-dark/png/tri-down.32.disabled.png | Bin 0 -> 631 bytes .../olive-dark/png/tri-down.64.disabled.png | Bin 0 -> 826 bytes .../olive-dark/png/tri-left.128.disabled.png | Bin 0 -> 1208 bytes .../olive-dark/png/tri-left.16.disabled.png | Bin 0 -> 533 bytes .../olive-dark/png/tri-left.32.disabled.png | Bin 0 -> 581 bytes .../olive-dark/png/tri-left.64.disabled.png | Bin 0 -> 798 bytes .../olive-dark/png/tri-right.128.disabled.png | Bin 0 -> 1206 bytes .../olive-dark/png/tri-right.16.disabled.png | Bin 0 -> 528 bytes .../olive-dark/png/tri-right.32.disabled.png | Bin 0 -> 614 bytes .../olive-dark/png/tri-right.64.disabled.png | Bin 0 -> 834 bytes .../olive-dark/png/tri-up.128.disabled.png | Bin 0 -> 1221 bytes .../olive-dark/png/tri-up.16.disabled.png | Bin 0 -> 533 bytes .../olive-dark/png/tri-up.32.disabled.png | Bin 0 -> 586 bytes .../olive-dark/png/tri-up.64.disabled.png | Bin 0 -> 798 bytes .../olive-dark/png/undo.128.disabled.png | Bin 0 -> 1369 bytes .../style/olive-dark/png/undo.16.disabled.png | Bin 0 -> 533 bytes .../style/olive-dark/png/undo.32.disabled.png | Bin 0 -> 649 bytes .../style/olive-dark/png/undo.64.disabled.png | Bin 0 -> 858 bytes .../png/videosource.128.disabled.png | Bin 0 -> 1115 bytes .../png/videosource.16.disabled.png | Bin 0 -> 533 bytes .../png/videosource.32.disabled.png | Bin 0 -> 594 bytes .../png/videosource.64.disabled.png | Bin 0 -> 762 bytes .../olive-dark/png/zoomin.128.disabled.png | Bin 0 -> 2786 bytes .../olive-dark/png/zoomin.16.disabled.png | Bin 0 -> 653 bytes .../olive-dark/png/zoomin.32.disabled.png | Bin 0 -> 951 bytes .../olive-dark/png/zoomin.64.disabled.png | Bin 0 -> 1543 bytes .../olive-dark/png/zoomout.128.disabled.png | Bin 0 -> 2674 bytes .../olive-dark/png/zoomout.16.disabled.png | Bin 0 -> 633 bytes .../olive-dark/png/zoomout.32.disabled.png | Bin 0 -> 916 bytes .../olive-dark/png/zoomout.64.disabled.png | Bin 0 -> 1468 bytes app/ui/style/olive-dark/res.qrc.in | 5 +++ app/ui/style/olive-light/CMakeLists.txt | 32 ++++++++++++++++ .../png/add-button.128.disabled.png | Bin 0 -> 1368 bytes .../png/add-button.16.disabled.png | Bin 0 -> 552 bytes .../png/add-button.32.disabled.png | Bin 0 -> 609 bytes .../png/add-button.64.disabled.png | Bin 0 -> 872 bytes .../png/add-effect.128.disabled.png | Bin 0 -> 1759 bytes .../png/add-effect.16.disabled.png | Bin 0 -> 582 bytes .../png/add-effect.32.disabled.png | Bin 0 -> 676 bytes .../png/add-effect.64.disabled.png | Bin 0 -> 1049 bytes .../png/add-transition.128.disabled.png | Bin 0 -> 1755 bytes .../png/add-transition.16.disabled.png | Bin 0 -> 603 bytes .../png/add-transition.32.disabled.png | Bin 0 -> 744 bytes .../png/add-transition.64.disabled.png | Bin 0 -> 1070 bytes .../png/align-center.128.disabled.png | Bin 0 -> 937 bytes .../png/align-center.16.disabled.png | Bin 0 -> 446 bytes .../png/align-center.32.disabled.png | Bin 0 -> 509 bytes .../png/align-center.64.disabled.png | Bin 0 -> 630 bytes .../png/align-justify-all.128.disabled.png | Bin 0 -> 842 bytes .../png/align-justify-all.16.disabled.png | Bin 0 -> 435 bytes .../png/align-justify-all.32.disabled.png | Bin 0 -> 484 bytes .../png/align-justify-all.64.disabled.png | Bin 0 -> 563 bytes .../png/align-justify-center.128.disabled.png | Bin 0 -> 939 bytes .../png/align-justify-center.16.disabled.png | Bin 0 -> 446 bytes .../png/align-justify-center.32.disabled.png | Bin 0 -> 509 bytes .../png/align-justify-center.64.disabled.png | Bin 0 -> 617 bytes .../png/align-justify-left.128.disabled.png | Bin 0 -> 905 bytes .../png/align-justify-left.16.disabled.png | Bin 0 -> 443 bytes .../png/align-justify-left.32.disabled.png | Bin 0 -> 500 bytes .../png/align-justify-left.64.disabled.png | Bin 0 -> 603 bytes .../png/align-justify-right.128.disabled.png | Bin 0 -> 907 bytes .../png/align-justify-right.16.disabled.png | Bin 0 -> 442 bytes .../png/align-justify-right.32.disabled.png | Bin 0 -> 504 bytes .../png/align-justify-right.64.disabled.png | Bin 0 -> 607 bytes .../png/align-left.128.disabled.png | Bin 0 -> 915 bytes .../png/align-left.16.disabled.png | Bin 0 -> 444 bytes .../png/align-left.32.disabled.png | Bin 0 -> 500 bytes .../png/align-left.64.disabled.png | Bin 0 -> 614 bytes .../png/align-right.128.disabled.png | Bin 0 -> 907 bytes .../png/align-right.16.disabled.png | Bin 0 -> 441 bytes .../png/align-right.32.disabled.png | Bin 0 -> 505 bytes .../png/align-right.64.disabled.png | Bin 0 -> 620 bytes .../olive-light/png/arrow.128.disabled.png | Bin 0 -> 2170 bytes .../olive-light/png/arrow.16.disabled.png | Bin 0 -> 602 bytes .../olive-light/png/arrow.32.disabled.png | Bin 0 -> 804 bytes .../olive-light/png/arrow.64.disabled.png | Bin 0 -> 1243 bytes .../png/audiosource.128.disabled.png | Bin 0 -> 1432 bytes .../png/audiosource.16.disabled.png | Bin 0 -> 535 bytes .../png/audiosource.32.disabled.png | Bin 0 -> 656 bytes .../png/audiosource.64.disabled.png | Bin 0 -> 881 bytes .../olive-light/png/beam.128.disabled.png | Bin 0 -> 1728 bytes .../olive-light/png/beam.16.disabled.png | Bin 0 -> 578 bytes .../olive-light/png/beam.32.disabled.png | Bin 0 -> 737 bytes .../olive-light/png/beam.64.disabled.png | Bin 0 -> 996 bytes .../olive-light/png/box.128.disabled.png | Bin 0 -> 1240 bytes .../style/olive-light/png/box.16.disabled.png | Bin 0 -> 520 bytes .../style/olive-light/png/box.32.disabled.png | Bin 0 -> 591 bytes .../style/olive-light/png/box.64.disabled.png | Bin 0 -> 780 bytes .../olive-light/png/clock.128.disabled.png | Bin 0 -> 3229 bytes .../olive-light/png/clock.16.disabled.png | Bin 0 -> 696 bytes .../olive-light/png/clock.32.disabled.png | Bin 0 -> 1028 bytes .../olive-light/png/clock.64.disabled.png | Bin 0 -> 1734 bytes .../olive-light/png/copy.128.disabled.png | Bin 0 -> 1010 bytes .../olive-light/png/copy.16.disabled.png | Bin 0 -> 543 bytes .../olive-light/png/copy.32.disabled.png | Bin 0 -> 552 bytes .../olive-light/png/copy.64.disabled.png | Bin 0 -> 662 bytes .../olive-light/png/diamond.128.disabled.png | Bin 0 -> 1449 bytes .../olive-light/png/diamond.16.disabled.png | Bin 0 -> 557 bytes .../olive-light/png/diamond.32.disabled.png | Bin 0 -> 670 bytes .../olive-light/png/diamond.64.disabled.png | Bin 0 -> 882 bytes .../olive-light/png/dirup.128.disabled.png | Bin 0 -> 1361 bytes .../olive-light/png/dirup.16.disabled.png | Bin 0 -> 558 bytes .../olive-light/png/dirup.32.disabled.png | Bin 0 -> 653 bytes .../olive-light/png/dirup.64.disabled.png | Bin 0 -> 884 bytes .../olive-light/png/error.128.disabled.png | Bin 0 -> 2482 bytes .../olive-light/png/error.16.disabled.png | Bin 0 -> 764 bytes .../olive-light/png/error.32.disabled.png | Bin 0 -> 1025 bytes .../olive-light/png/error.64.disabled.png | Bin 0 -> 1562 bytes .../olive-light/png/export.128.disabled.png | Bin 0 -> 1595 bytes .../olive-light/png/export.16.disabled.png | Bin 0 -> 593 bytes .../olive-light/png/export.32.disabled.png | Bin 0 -> 722 bytes .../olive-light/png/export.64.disabled.png | Bin 0 -> 925 bytes .../style/olive-light/png/ff.128.disabled.png | Bin 0 -> 1380 bytes .../style/olive-light/png/ff.16.disabled.png | Bin 0 -> 555 bytes .../style/olive-light/png/ff.32.disabled.png | Bin 0 -> 696 bytes .../style/olive-light/png/ff.64.disabled.png | Bin 0 -> 917 bytes .../olive-light/png/filter.128.disabled.png | Bin 0 -> 1218 bytes .../olive-light/png/filter.16.disabled.png | Bin 0 -> 531 bytes .../olive-light/png/filter.32.disabled.png | Bin 0 -> 601 bytes .../olive-light/png/filter.64.disabled.png | Bin 0 -> 778 bytes .../olive-light/png/folder.128.disabled.png | Bin 0 -> 915 bytes .../olive-light/png/folder.16.disabled.png | Bin 0 -> 503 bytes .../olive-light/png/folder.32.disabled.png | Bin 0 -> 534 bytes .../olive-light/png/folder.64.disabled.png | Bin 0 -> 620 bytes .../olive-light/png/hand.128.disabled.png | Bin 0 -> 2876 bytes .../olive-light/png/hand.16.disabled.png | Bin 0 -> 645 bytes .../olive-light/png/hand.32.disabled.png | Bin 0 -> 940 bytes .../olive-light/png/hand.64.disabled.png | Bin 0 -> 1552 bytes .../olive-light/png/iconview.128.disabled.png | Bin 0 -> 946 bytes .../olive-light/png/iconview.16.disabled.png | Bin 0 -> 541 bytes .../olive-light/png/iconview.32.disabled.png | Bin 0 -> 667 bytes .../olive-light/png/iconview.64.disabled.png | Bin 0 -> 612 bytes .../png/imagesource.128.disabled.png | Bin 0 -> 1749 bytes .../png/imagesource.16.disabled.png | Bin 0 -> 579 bytes .../png/imagesource.32.disabled.png | Bin 0 -> 741 bytes .../png/imagesource.64.disabled.png | Bin 0 -> 1030 bytes .../olive-light/png/import.128.disabled.png | Bin 0 -> 1586 bytes .../olive-light/png/import.16.disabled.png | Bin 0 -> 616 bytes .../olive-light/png/import.32.disabled.png | Bin 0 -> 732 bytes .../olive-light/png/import.64.disabled.png | Bin 0 -> 936 bytes .../olive-light/png/listview.128.disabled.png | Bin 0 -> 900 bytes .../olive-light/png/listview.16.disabled.png | Bin 0 -> 493 bytes .../olive-light/png/listview.32.disabled.png | Bin 0 -> 562 bytes .../olive-light/png/listview.64.disabled.png | Bin 0 -> 587 bytes .../olive-light/png/magnet.128.disabled.png | Bin 0 -> 2391 bytes .../olive-light/png/magnet.16.disabled.png | Bin 0 -> 662 bytes .../olive-light/png/magnet.32.disabled.png | Bin 0 -> 853 bytes .../olive-light/png/magnet.64.disabled.png | Bin 0 -> 1326 bytes .../olive-light/png/map.128.disabled.png | Bin 0 -> 1001 bytes .../style/olive-light/png/map.16.disabled.png | Bin 0 -> 524 bytes .../style/olive-light/png/map.32.disabled.png | Bin 0 -> 569 bytes .../style/olive-light/png/map.64.disabled.png | Bin 0 -> 668 bytes .../olive-light/png/minus.128.disabled.png | Bin 0 -> 828 bytes .../olive-light/png/minus.16.disabled.png | Bin 0 -> 462 bytes .../olive-light/png/minus.32.disabled.png | Bin 0 -> 507 bytes .../olive-light/png/minus.64.disabled.png | Bin 0 -> 618 bytes .../olive-light/png/new.128.disabled.png | Bin 0 -> 1174 bytes .../style/olive-light/png/new.16.disabled.png | Bin 0 -> 557 bytes .../style/olive-light/png/new.32.disabled.png | Bin 0 -> 626 bytes .../style/olive-light/png/new.64.disabled.png | Bin 0 -> 785 bytes .../olive-light/png/next.128.disabled.png | Bin 0 -> 1416 bytes .../olive-light/png/next.16.disabled.png | Bin 0 -> 572 bytes .../olive-light/png/next.32.disabled.png | Bin 0 -> 695 bytes .../olive-light/png/next.64.disabled.png | Bin 0 -> 901 bytes .../png/nodes_btt.128.disabled.png | Bin 0 -> 1522 bytes .../olive-light/png/nodes_btt.16.disabled.png | Bin 0 -> 589 bytes .../olive-light/png/nodes_btt.32.disabled.png | Bin 0 -> 729 bytes .../olive-light/png/nodes_btt.64.disabled.png | Bin 0 -> 962 bytes .../png/nodes_ltr.128.disabled.png | Bin 0 -> 1522 bytes .../olive-light/png/nodes_ltr.16.disabled.png | Bin 0 -> 589 bytes .../olive-light/png/nodes_ltr.32.disabled.png | Bin 0 -> 729 bytes .../olive-light/png/nodes_ltr.64.disabled.png | Bin 0 -> 962 bytes .../png/nodes_rtl.128.disabled.png | Bin 0 -> 1523 bytes .../olive-light/png/nodes_rtl.16.disabled.png | Bin 0 -> 578 bytes .../olive-light/png/nodes_rtl.32.disabled.png | Bin 0 -> 732 bytes .../olive-light/png/nodes_rtl.64.disabled.png | Bin 0 -> 961 bytes .../png/nodes_ttb.128.disabled.png | Bin 0 -> 1344 bytes .../olive-light/png/nodes_ttb.16.disabled.png | Bin 0 -> 600 bytes .../olive-light/png/nodes_ttb.32.disabled.png | Bin 0 -> 665 bytes .../olive-light/png/nodes_ttb.64.disabled.png | Bin 0 -> 856 bytes .../olive-light/png/open.128.disabled.png | Bin 0 -> 1328 bytes .../olive-light/png/open.16.disabled.png | Bin 0 -> 606 bytes .../olive-light/png/open.32.disabled.png | Bin 0 -> 716 bytes .../olive-light/png/open.64.disabled.png | Bin 0 -> 866 bytes .../olive-light/png/paste.128.disabled.png | Bin 0 -> 1062 bytes .../olive-light/png/paste.16.disabled.png | Bin 0 -> 563 bytes .../olive-light/png/paste.32.disabled.png | Bin 0 -> 631 bytes .../olive-light/png/paste.64.disabled.png | Bin 0 -> 680 bytes .../olive-light/png/pause.128.disabled.png | Bin 0 -> 844 bytes .../olive-light/png/pause.16.disabled.png | Bin 0 -> 479 bytes .../olive-light/png/pause.32.disabled.png | Bin 0 -> 496 bytes .../olive-light/png/pause.64.disabled.png | Bin 0 -> 578 bytes .../olive-light/png/play.128.disabled.png | Bin 0 -> 1291 bytes .../olive-light/png/play.16.disabled.png | Bin 0 -> 540 bytes .../olive-light/png/play.32.disabled.png | Bin 0 -> 663 bytes .../olive-light/png/play.64.disabled.png | Bin 0 -> 849 bytes .../olive-light/png/plus.128.disabled.png | Bin 0 -> 1266 bytes .../olive-light/png/plus.16.disabled.png | Bin 0 -> 544 bytes .../olive-light/png/plus.32.disabled.png | Bin 0 -> 585 bytes .../olive-light/png/plus.64.disabled.png | Bin 0 -> 819 bytes .../olive-light/png/prev.128.disabled.png | Bin 0 -> 1424 bytes .../olive-light/png/prev.16.disabled.png | Bin 0 -> 550 bytes .../olive-light/png/prev.32.disabled.png | Bin 0 -> 677 bytes .../olive-light/png/prev.64.disabled.png | Bin 0 -> 901 bytes .../olive-light/png/razor.128.disabled.png | Bin 0 -> 1349 bytes .../olive-light/png/razor.16.disabled.png | Bin 0 -> 539 bytes .../olive-light/png/razor.32.disabled.png | Bin 0 -> 632 bytes .../olive-light/png/razor.64.disabled.png | Bin 0 -> 841 bytes .../olive-light/png/record.128.disabled.png | Bin 0 -> 1362 bytes .../olive-light/png/record.16.disabled.png | Bin 0 -> 516 bytes .../olive-light/png/record.32.disabled.png | Bin 0 -> 626 bytes .../olive-light/png/record.64.disabled.png | Bin 0 -> 887 bytes .../olive-light/png/redo.128.disabled.png | Bin 0 -> 1454 bytes .../olive-light/png/redo.16.disabled.png | Bin 0 -> 550 bytes .../olive-light/png/redo.32.disabled.png | Bin 0 -> 690 bytes .../olive-light/png/redo.64.disabled.png | Bin 0 -> 908 bytes .../olive-light/png/rew.128.disabled.png | Bin 0 -> 1446 bytes .../style/olive-light/png/rew.16.disabled.png | Bin 0 -> 562 bytes .../style/olive-light/png/rew.32.disabled.png | Bin 0 -> 688 bytes .../style/olive-light/png/rew.64.disabled.png | Bin 0 -> 931 bytes .../olive-light/png/ripple.128.disabled.png | Bin 0 -> 1663 bytes .../olive-light/png/ripple.16.disabled.png | Bin 0 -> 595 bytes .../olive-light/png/ripple.32.disabled.png | Bin 0 -> 743 bytes .../olive-light/png/ripple.64.disabled.png | Bin 0 -> 1008 bytes .../olive-light/png/rolling.128.disabled.png | Bin 0 -> 1973 bytes .../olive-light/png/rolling.16.disabled.png | Bin 0 -> 616 bytes .../olive-light/png/rolling.32.disabled.png | Bin 0 -> 787 bytes .../olive-light/png/rolling.64.disabled.png | Bin 0 -> 1127 bytes .../olive-light/png/save.128.disabled.png | Bin 0 -> 1250 bytes .../olive-light/png/save.16.disabled.png | Bin 0 -> 590 bytes .../olive-light/png/save.32.disabled.png | Bin 0 -> 686 bytes .../olive-light/png/save.64.disabled.png | Bin 0 -> 816 bytes .../olive-light/png/sequence.128.disabled.png | Bin 0 -> 976 bytes .../olive-light/png/sequence.16.disabled.png | Bin 0 -> 506 bytes .../olive-light/png/sequence.32.disabled.png | Bin 0 -> 526 bytes .../olive-light/png/sequence.64.disabled.png | Bin 0 -> 628 bytes .../olive-light/png/slide.128.disabled.png | Bin 0 -> 1655 bytes .../olive-light/png/slide.16.disabled.png | Bin 0 -> 576 bytes .../olive-light/png/slide.32.disabled.png | Bin 0 -> 697 bytes .../olive-light/png/slide.64.disabled.png | Bin 0 -> 996 bytes .../olive-light/png/slip.128.disabled.png | Bin 0 -> 1690 bytes .../olive-light/png/slip.16.disabled.png | Bin 0 -> 603 bytes .../olive-light/png/slip.32.disabled.png | Bin 0 -> 714 bytes .../olive-light/png/slip.64.disabled.png | Bin 0 -> 1023 bytes .../png/smooth_edges.128.disabled.png | Bin 0 -> 2037 bytes .../png/smooth_edges.16.disabled.png | Bin 0 -> 606 bytes .../png/smooth_edges.32.disabled.png | Bin 0 -> 766 bytes .../png/smooth_edges.64.disabled.png | Bin 0 -> 1151 bytes .../png/text-bold.128.disabled.png | Bin 0 -> 2100 bytes .../olive-light/png/text-bold.16.disabled.png | Bin 0 -> 631 bytes .../olive-light/png/text-bold.32.disabled.png | Bin 0 -> 817 bytes .../olive-light/png/text-bold.64.disabled.png | Bin 0 -> 1263 bytes .../png/text-italic.128.disabled.png | Bin 0 -> 1486 bytes .../png/text-italic.16.disabled.png | Bin 0 -> 578 bytes .../png/text-italic.32.disabled.png | Bin 0 -> 678 bytes .../png/text-italic.64.disabled.png | Bin 0 -> 933 bytes .../png/text-underline.128.disabled.png | Bin 0 -> 1491 bytes .../png/text-underline.16.disabled.png | Bin 0 -> 554 bytes .../png/text-underline.32.disabled.png | Bin 0 -> 664 bytes .../png/text-underline.64.disabled.png | Bin 0 -> 889 bytes .../png/transition-tool.128.disabled.png | Bin 0 -> 1120 bytes .../png/transition-tool.16.disabled.png | Bin 0 -> 525 bytes .../png/transition-tool.32.disabled.png | Bin 0 -> 581 bytes .../png/transition-tool.64.disabled.png | Bin 0 -> 751 bytes .../olive-light/png/treeview.128.disabled.png | Bin 0 -> 989 bytes .../olive-light/png/treeview.16.disabled.png | Bin 0 -> 483 bytes .../olive-light/png/treeview.32.disabled.png | Bin 0 -> 543 bytes .../olive-light/png/treeview.64.disabled.png | Bin 0 -> 648 bytes .../olive-light/png/tri-down.128.disabled.png | Bin 0 -> 1364 bytes .../olive-light/png/tri-down.16.disabled.png | Bin 0 -> 572 bytes .../olive-light/png/tri-down.32.disabled.png | Bin 0 -> 684 bytes .../olive-light/png/tri-down.64.disabled.png | Bin 0 -> 905 bytes .../olive-light/png/tri-left.128.disabled.png | Bin 0 -> 1397 bytes .../olive-light/png/tri-left.16.disabled.png | Bin 0 -> 581 bytes .../olive-light/png/tri-left.32.disabled.png | Bin 0 -> 676 bytes .../olive-light/png/tri-left.64.disabled.png | Bin 0 -> 922 bytes .../png/tri-right.128.disabled.png | Bin 0 -> 1374 bytes .../olive-light/png/tri-right.16.disabled.png | Bin 0 -> 575 bytes .../olive-light/png/tri-right.32.disabled.png | Bin 0 -> 672 bytes .../olive-light/png/tri-right.64.disabled.png | Bin 0 -> 909 bytes .../olive-light/png/tri-up.128.disabled.png | Bin 0 -> 1304 bytes .../olive-light/png/tri-up.16.disabled.png | Bin 0 -> 575 bytes .../olive-light/png/tri-up.32.disabled.png | Bin 0 -> 646 bytes .../olive-light/png/tri-up.64.disabled.png | Bin 0 -> 868 bytes .../olive-light/png/undo.128.disabled.png | Bin 0 -> 1582 bytes .../olive-light/png/undo.16.disabled.png | Bin 0 -> 557 bytes .../olive-light/png/undo.32.disabled.png | Bin 0 -> 694 bytes .../olive-light/png/undo.64.disabled.png | Bin 0 -> 951 bytes .../png/videosource.128.disabled.png | Bin 0 -> 1250 bytes .../png/videosource.16.disabled.png | Bin 0 -> 544 bytes .../png/videosource.32.disabled.png | Bin 0 -> 628 bytes .../png/videosource.64.disabled.png | Bin 0 -> 812 bytes .../olive-light/png/zoomin.128.disabled.png | Bin 0 -> 3330 bytes .../olive-light/png/zoomin.16.disabled.png | Bin 0 -> 693 bytes .../olive-light/png/zoomin.32.disabled.png | Bin 0 -> 1048 bytes .../olive-light/png/zoomin.64.disabled.png | Bin 0 -> 1761 bytes .../olive-light/png/zoomout.128.disabled.png | Bin 0 -> 3154 bytes .../olive-light/png/zoomout.16.disabled.png | Bin 0 -> 677 bytes .../olive-light/png/zoomout.32.disabled.png | Bin 0 -> 1003 bytes .../olive-light/png/zoomout.64.disabled.png | Bin 0 -> 1662 bytes app/ui/style/olive-light/res.qrc.in | 5 +++ 543 files changed, 85 insertions(+), 34 deletions(-) create mode 100644 app/ui/style/olive-dark/CMakeLists.txt create mode 100644 app/ui/style/olive-dark/png/add-button.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/add-button.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/add-button.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/add-button.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/add-effect.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/add-effect.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/add-effect.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/add-effect.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/add-transition.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/add-transition.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/add-transition.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/add-transition.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-center.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-center.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-center.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-center.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-justify-all.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-justify-all.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-justify-all.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-justify-all.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-justify-center.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-justify-center.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-justify-center.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-justify-center.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-justify-left.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-justify-left.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-justify-left.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-justify-left.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-justify-right.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-justify-right.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-justify-right.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-justify-right.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-left.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-left.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-left.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-left.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-right.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-right.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-right.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/align-right.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/arrow.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/arrow.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/arrow.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/arrow.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/audiosource.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/audiosource.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/audiosource.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/audiosource.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/beam.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/beam.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/beam.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/beam.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/box.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/box.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/box.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/box.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/clock.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/clock.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/clock.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/clock.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/copy.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/copy.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/copy.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/copy.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/diamond.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/diamond.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/diamond.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/diamond.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/dirup.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/dirup.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/dirup.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/dirup.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/error.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/error.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/error.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/error.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/export.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/export.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/export.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/export.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/ff.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/ff.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/ff.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/ff.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/filter.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/filter.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/filter.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/filter.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/folder.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/folder.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/folder.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/folder.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/hand.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/hand.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/hand.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/hand.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/iconview.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/iconview.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/iconview.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/iconview.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/imagesource.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/imagesource.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/imagesource.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/imagesource.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/import.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/import.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/import.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/import.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/listview.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/listview.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/listview.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/listview.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/magnet.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/magnet.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/magnet.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/magnet.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/map.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/map.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/map.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/map.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/minus.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/minus.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/minus.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/minus.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/new.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/new.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/new.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/new.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/next.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/next.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/next.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/next.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/nodes_btt.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/nodes_btt.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/nodes_btt.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/nodes_btt.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/nodes_ltr.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/nodes_ltr.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/nodes_ltr.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/nodes_ltr.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/nodes_rtl.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/nodes_rtl.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/nodes_rtl.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/nodes_rtl.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/nodes_ttb.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/nodes_ttb.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/nodes_ttb.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/nodes_ttb.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/open.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/open.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/open.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/open.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/paste.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/paste.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/paste.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/paste.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/pause.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/pause.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/pause.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/pause.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/play.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/play.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/play.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/play.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/plus.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/plus.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/plus.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/plus.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/prev.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/prev.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/prev.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/prev.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/razor.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/razor.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/razor.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/razor.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/record.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/record.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/record.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/record.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/redo.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/redo.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/redo.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/redo.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/rew.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/rew.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/rew.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/rew.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/ripple.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/ripple.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/ripple.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/ripple.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/rolling.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/rolling.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/rolling.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/rolling.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/save.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/save.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/save.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/save.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/sequence.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/sequence.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/sequence.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/sequence.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/slide.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/slide.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/slide.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/slide.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/slip.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/slip.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/slip.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/slip.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/smooth_edges.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/smooth_edges.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/smooth_edges.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/smooth_edges.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/text-bold.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/text-bold.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/text-bold.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/text-bold.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/text-italic.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/text-italic.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/text-italic.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/text-italic.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/text-underline.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/text-underline.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/text-underline.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/text-underline.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/transition-tool.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/transition-tool.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/transition-tool.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/transition-tool.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/treeview.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/treeview.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/treeview.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/treeview.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/tri-down.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/tri-down.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/tri-down.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/tri-down.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/tri-left.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/tri-left.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/tri-left.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/tri-left.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/tri-right.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/tri-right.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/tri-right.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/tri-right.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/tri-up.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/tri-up.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/tri-up.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/tri-up.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/undo.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/undo.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/undo.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/undo.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/videosource.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/videosource.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/videosource.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/videosource.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/zoomin.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/zoomin.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/zoomin.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/zoomin.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/zoomout.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/zoomout.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/zoomout.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/zoomout.64.disabled.png create mode 100644 app/ui/style/olive-dark/res.qrc.in create mode 100644 app/ui/style/olive-light/CMakeLists.txt create mode 100644 app/ui/style/olive-light/png/add-button.128.disabled.png create mode 100644 app/ui/style/olive-light/png/add-button.16.disabled.png create mode 100644 app/ui/style/olive-light/png/add-button.32.disabled.png create mode 100644 app/ui/style/olive-light/png/add-button.64.disabled.png create mode 100644 app/ui/style/olive-light/png/add-effect.128.disabled.png create mode 100644 app/ui/style/olive-light/png/add-effect.16.disabled.png create mode 100644 app/ui/style/olive-light/png/add-effect.32.disabled.png create mode 100644 app/ui/style/olive-light/png/add-effect.64.disabled.png create mode 100644 app/ui/style/olive-light/png/add-transition.128.disabled.png create mode 100644 app/ui/style/olive-light/png/add-transition.16.disabled.png create mode 100644 app/ui/style/olive-light/png/add-transition.32.disabled.png create mode 100644 app/ui/style/olive-light/png/add-transition.64.disabled.png create mode 100644 app/ui/style/olive-light/png/align-center.128.disabled.png create mode 100644 app/ui/style/olive-light/png/align-center.16.disabled.png create mode 100644 app/ui/style/olive-light/png/align-center.32.disabled.png create mode 100644 app/ui/style/olive-light/png/align-center.64.disabled.png create mode 100644 app/ui/style/olive-light/png/align-justify-all.128.disabled.png create mode 100644 app/ui/style/olive-light/png/align-justify-all.16.disabled.png create mode 100644 app/ui/style/olive-light/png/align-justify-all.32.disabled.png create mode 100644 app/ui/style/olive-light/png/align-justify-all.64.disabled.png create mode 100644 app/ui/style/olive-light/png/align-justify-center.128.disabled.png create mode 100644 app/ui/style/olive-light/png/align-justify-center.16.disabled.png create mode 100644 app/ui/style/olive-light/png/align-justify-center.32.disabled.png create mode 100644 app/ui/style/olive-light/png/align-justify-center.64.disabled.png create mode 100644 app/ui/style/olive-light/png/align-justify-left.128.disabled.png create mode 100644 app/ui/style/olive-light/png/align-justify-left.16.disabled.png create mode 100644 app/ui/style/olive-light/png/align-justify-left.32.disabled.png create mode 100644 app/ui/style/olive-light/png/align-justify-left.64.disabled.png create mode 100644 app/ui/style/olive-light/png/align-justify-right.128.disabled.png create mode 100644 app/ui/style/olive-light/png/align-justify-right.16.disabled.png create mode 100644 app/ui/style/olive-light/png/align-justify-right.32.disabled.png create mode 100644 app/ui/style/olive-light/png/align-justify-right.64.disabled.png create mode 100644 app/ui/style/olive-light/png/align-left.128.disabled.png create mode 100644 app/ui/style/olive-light/png/align-left.16.disabled.png create mode 100644 app/ui/style/olive-light/png/align-left.32.disabled.png create mode 100644 app/ui/style/olive-light/png/align-left.64.disabled.png create mode 100644 app/ui/style/olive-light/png/align-right.128.disabled.png create mode 100644 app/ui/style/olive-light/png/align-right.16.disabled.png create mode 100644 app/ui/style/olive-light/png/align-right.32.disabled.png create mode 100644 app/ui/style/olive-light/png/align-right.64.disabled.png create mode 100644 app/ui/style/olive-light/png/arrow.128.disabled.png create mode 100644 app/ui/style/olive-light/png/arrow.16.disabled.png create mode 100644 app/ui/style/olive-light/png/arrow.32.disabled.png create mode 100644 app/ui/style/olive-light/png/arrow.64.disabled.png create mode 100644 app/ui/style/olive-light/png/audiosource.128.disabled.png create mode 100644 app/ui/style/olive-light/png/audiosource.16.disabled.png create mode 100644 app/ui/style/olive-light/png/audiosource.32.disabled.png create mode 100644 app/ui/style/olive-light/png/audiosource.64.disabled.png create mode 100644 app/ui/style/olive-light/png/beam.128.disabled.png create mode 100644 app/ui/style/olive-light/png/beam.16.disabled.png create mode 100644 app/ui/style/olive-light/png/beam.32.disabled.png create mode 100644 app/ui/style/olive-light/png/beam.64.disabled.png create mode 100644 app/ui/style/olive-light/png/box.128.disabled.png create mode 100644 app/ui/style/olive-light/png/box.16.disabled.png create mode 100644 app/ui/style/olive-light/png/box.32.disabled.png create mode 100644 app/ui/style/olive-light/png/box.64.disabled.png create mode 100644 app/ui/style/olive-light/png/clock.128.disabled.png create mode 100644 app/ui/style/olive-light/png/clock.16.disabled.png create mode 100644 app/ui/style/olive-light/png/clock.32.disabled.png create mode 100644 app/ui/style/olive-light/png/clock.64.disabled.png create mode 100644 app/ui/style/olive-light/png/copy.128.disabled.png create mode 100644 app/ui/style/olive-light/png/copy.16.disabled.png create mode 100644 app/ui/style/olive-light/png/copy.32.disabled.png create mode 100644 app/ui/style/olive-light/png/copy.64.disabled.png create mode 100644 app/ui/style/olive-light/png/diamond.128.disabled.png create mode 100644 app/ui/style/olive-light/png/diamond.16.disabled.png create mode 100644 app/ui/style/olive-light/png/diamond.32.disabled.png create mode 100644 app/ui/style/olive-light/png/diamond.64.disabled.png create mode 100644 app/ui/style/olive-light/png/dirup.128.disabled.png create mode 100644 app/ui/style/olive-light/png/dirup.16.disabled.png create mode 100644 app/ui/style/olive-light/png/dirup.32.disabled.png create mode 100644 app/ui/style/olive-light/png/dirup.64.disabled.png create mode 100644 app/ui/style/olive-light/png/error.128.disabled.png create mode 100644 app/ui/style/olive-light/png/error.16.disabled.png create mode 100644 app/ui/style/olive-light/png/error.32.disabled.png create mode 100644 app/ui/style/olive-light/png/error.64.disabled.png create mode 100644 app/ui/style/olive-light/png/export.128.disabled.png create mode 100644 app/ui/style/olive-light/png/export.16.disabled.png create mode 100644 app/ui/style/olive-light/png/export.32.disabled.png create mode 100644 app/ui/style/olive-light/png/export.64.disabled.png create mode 100644 app/ui/style/olive-light/png/ff.128.disabled.png create mode 100644 app/ui/style/olive-light/png/ff.16.disabled.png create mode 100644 app/ui/style/olive-light/png/ff.32.disabled.png create mode 100644 app/ui/style/olive-light/png/ff.64.disabled.png create mode 100644 app/ui/style/olive-light/png/filter.128.disabled.png create mode 100644 app/ui/style/olive-light/png/filter.16.disabled.png create mode 100644 app/ui/style/olive-light/png/filter.32.disabled.png create mode 100644 app/ui/style/olive-light/png/filter.64.disabled.png create mode 100644 app/ui/style/olive-light/png/folder.128.disabled.png create mode 100644 app/ui/style/olive-light/png/folder.16.disabled.png create mode 100644 app/ui/style/olive-light/png/folder.32.disabled.png create mode 100644 app/ui/style/olive-light/png/folder.64.disabled.png create mode 100644 app/ui/style/olive-light/png/hand.128.disabled.png create mode 100644 app/ui/style/olive-light/png/hand.16.disabled.png create mode 100644 app/ui/style/olive-light/png/hand.32.disabled.png create mode 100644 app/ui/style/olive-light/png/hand.64.disabled.png create mode 100644 app/ui/style/olive-light/png/iconview.128.disabled.png create mode 100644 app/ui/style/olive-light/png/iconview.16.disabled.png create mode 100644 app/ui/style/olive-light/png/iconview.32.disabled.png create mode 100644 app/ui/style/olive-light/png/iconview.64.disabled.png create mode 100644 app/ui/style/olive-light/png/imagesource.128.disabled.png create mode 100644 app/ui/style/olive-light/png/imagesource.16.disabled.png create mode 100644 app/ui/style/olive-light/png/imagesource.32.disabled.png create mode 100644 app/ui/style/olive-light/png/imagesource.64.disabled.png create mode 100644 app/ui/style/olive-light/png/import.128.disabled.png create mode 100644 app/ui/style/olive-light/png/import.16.disabled.png create mode 100644 app/ui/style/olive-light/png/import.32.disabled.png create mode 100644 app/ui/style/olive-light/png/import.64.disabled.png create mode 100644 app/ui/style/olive-light/png/listview.128.disabled.png create mode 100644 app/ui/style/olive-light/png/listview.16.disabled.png create mode 100644 app/ui/style/olive-light/png/listview.32.disabled.png create mode 100644 app/ui/style/olive-light/png/listview.64.disabled.png create mode 100644 app/ui/style/olive-light/png/magnet.128.disabled.png create mode 100644 app/ui/style/olive-light/png/magnet.16.disabled.png create mode 100644 app/ui/style/olive-light/png/magnet.32.disabled.png create mode 100644 app/ui/style/olive-light/png/magnet.64.disabled.png create mode 100644 app/ui/style/olive-light/png/map.128.disabled.png create mode 100644 app/ui/style/olive-light/png/map.16.disabled.png create mode 100644 app/ui/style/olive-light/png/map.32.disabled.png create mode 100644 app/ui/style/olive-light/png/map.64.disabled.png create mode 100644 app/ui/style/olive-light/png/minus.128.disabled.png create mode 100644 app/ui/style/olive-light/png/minus.16.disabled.png create mode 100644 app/ui/style/olive-light/png/minus.32.disabled.png create mode 100644 app/ui/style/olive-light/png/minus.64.disabled.png create mode 100644 app/ui/style/olive-light/png/new.128.disabled.png create mode 100644 app/ui/style/olive-light/png/new.16.disabled.png create mode 100644 app/ui/style/olive-light/png/new.32.disabled.png create mode 100644 app/ui/style/olive-light/png/new.64.disabled.png create mode 100644 app/ui/style/olive-light/png/next.128.disabled.png create mode 100644 app/ui/style/olive-light/png/next.16.disabled.png create mode 100644 app/ui/style/olive-light/png/next.32.disabled.png create mode 100644 app/ui/style/olive-light/png/next.64.disabled.png create mode 100644 app/ui/style/olive-light/png/nodes_btt.128.disabled.png create mode 100644 app/ui/style/olive-light/png/nodes_btt.16.disabled.png create mode 100644 app/ui/style/olive-light/png/nodes_btt.32.disabled.png create mode 100644 app/ui/style/olive-light/png/nodes_btt.64.disabled.png create mode 100644 app/ui/style/olive-light/png/nodes_ltr.128.disabled.png create mode 100644 app/ui/style/olive-light/png/nodes_ltr.16.disabled.png create mode 100644 app/ui/style/olive-light/png/nodes_ltr.32.disabled.png create mode 100644 app/ui/style/olive-light/png/nodes_ltr.64.disabled.png create mode 100644 app/ui/style/olive-light/png/nodes_rtl.128.disabled.png create mode 100644 app/ui/style/olive-light/png/nodes_rtl.16.disabled.png create mode 100644 app/ui/style/olive-light/png/nodes_rtl.32.disabled.png create mode 100644 app/ui/style/olive-light/png/nodes_rtl.64.disabled.png create mode 100644 app/ui/style/olive-light/png/nodes_ttb.128.disabled.png create mode 100644 app/ui/style/olive-light/png/nodes_ttb.16.disabled.png create mode 100644 app/ui/style/olive-light/png/nodes_ttb.32.disabled.png create mode 100644 app/ui/style/olive-light/png/nodes_ttb.64.disabled.png create mode 100644 app/ui/style/olive-light/png/open.128.disabled.png create mode 100644 app/ui/style/olive-light/png/open.16.disabled.png create mode 100644 app/ui/style/olive-light/png/open.32.disabled.png create mode 100644 app/ui/style/olive-light/png/open.64.disabled.png create mode 100644 app/ui/style/olive-light/png/paste.128.disabled.png create mode 100644 app/ui/style/olive-light/png/paste.16.disabled.png create mode 100644 app/ui/style/olive-light/png/paste.32.disabled.png create mode 100644 app/ui/style/olive-light/png/paste.64.disabled.png create mode 100644 app/ui/style/olive-light/png/pause.128.disabled.png create mode 100644 app/ui/style/olive-light/png/pause.16.disabled.png create mode 100644 app/ui/style/olive-light/png/pause.32.disabled.png create mode 100644 app/ui/style/olive-light/png/pause.64.disabled.png create mode 100644 app/ui/style/olive-light/png/play.128.disabled.png create mode 100644 app/ui/style/olive-light/png/play.16.disabled.png create mode 100644 app/ui/style/olive-light/png/play.32.disabled.png create mode 100644 app/ui/style/olive-light/png/play.64.disabled.png create mode 100644 app/ui/style/olive-light/png/plus.128.disabled.png create mode 100644 app/ui/style/olive-light/png/plus.16.disabled.png create mode 100644 app/ui/style/olive-light/png/plus.32.disabled.png create mode 100644 app/ui/style/olive-light/png/plus.64.disabled.png create mode 100644 app/ui/style/olive-light/png/prev.128.disabled.png create mode 100644 app/ui/style/olive-light/png/prev.16.disabled.png create mode 100644 app/ui/style/olive-light/png/prev.32.disabled.png create mode 100644 app/ui/style/olive-light/png/prev.64.disabled.png create mode 100644 app/ui/style/olive-light/png/razor.128.disabled.png create mode 100644 app/ui/style/olive-light/png/razor.16.disabled.png create mode 100644 app/ui/style/olive-light/png/razor.32.disabled.png create mode 100644 app/ui/style/olive-light/png/razor.64.disabled.png create mode 100644 app/ui/style/olive-light/png/record.128.disabled.png create mode 100644 app/ui/style/olive-light/png/record.16.disabled.png create mode 100644 app/ui/style/olive-light/png/record.32.disabled.png create mode 100644 app/ui/style/olive-light/png/record.64.disabled.png create mode 100644 app/ui/style/olive-light/png/redo.128.disabled.png create mode 100644 app/ui/style/olive-light/png/redo.16.disabled.png create mode 100644 app/ui/style/olive-light/png/redo.32.disabled.png create mode 100644 app/ui/style/olive-light/png/redo.64.disabled.png create mode 100644 app/ui/style/olive-light/png/rew.128.disabled.png create mode 100644 app/ui/style/olive-light/png/rew.16.disabled.png create mode 100644 app/ui/style/olive-light/png/rew.32.disabled.png create mode 100644 app/ui/style/olive-light/png/rew.64.disabled.png create mode 100644 app/ui/style/olive-light/png/ripple.128.disabled.png create mode 100644 app/ui/style/olive-light/png/ripple.16.disabled.png create mode 100644 app/ui/style/olive-light/png/ripple.32.disabled.png create mode 100644 app/ui/style/olive-light/png/ripple.64.disabled.png create mode 100644 app/ui/style/olive-light/png/rolling.128.disabled.png create mode 100644 app/ui/style/olive-light/png/rolling.16.disabled.png create mode 100644 app/ui/style/olive-light/png/rolling.32.disabled.png create mode 100644 app/ui/style/olive-light/png/rolling.64.disabled.png create mode 100644 app/ui/style/olive-light/png/save.128.disabled.png create mode 100644 app/ui/style/olive-light/png/save.16.disabled.png create mode 100644 app/ui/style/olive-light/png/save.32.disabled.png create mode 100644 app/ui/style/olive-light/png/save.64.disabled.png create mode 100644 app/ui/style/olive-light/png/sequence.128.disabled.png create mode 100644 app/ui/style/olive-light/png/sequence.16.disabled.png create mode 100644 app/ui/style/olive-light/png/sequence.32.disabled.png create mode 100644 app/ui/style/olive-light/png/sequence.64.disabled.png create mode 100644 app/ui/style/olive-light/png/slide.128.disabled.png create mode 100644 app/ui/style/olive-light/png/slide.16.disabled.png create mode 100644 app/ui/style/olive-light/png/slide.32.disabled.png create mode 100644 app/ui/style/olive-light/png/slide.64.disabled.png create mode 100644 app/ui/style/olive-light/png/slip.128.disabled.png create mode 100644 app/ui/style/olive-light/png/slip.16.disabled.png create mode 100644 app/ui/style/olive-light/png/slip.32.disabled.png create mode 100644 app/ui/style/olive-light/png/slip.64.disabled.png create mode 100644 app/ui/style/olive-light/png/smooth_edges.128.disabled.png create mode 100644 app/ui/style/olive-light/png/smooth_edges.16.disabled.png create mode 100644 app/ui/style/olive-light/png/smooth_edges.32.disabled.png create mode 100644 app/ui/style/olive-light/png/smooth_edges.64.disabled.png create mode 100644 app/ui/style/olive-light/png/text-bold.128.disabled.png create mode 100644 app/ui/style/olive-light/png/text-bold.16.disabled.png create mode 100644 app/ui/style/olive-light/png/text-bold.32.disabled.png create mode 100644 app/ui/style/olive-light/png/text-bold.64.disabled.png create mode 100644 app/ui/style/olive-light/png/text-italic.128.disabled.png create mode 100644 app/ui/style/olive-light/png/text-italic.16.disabled.png create mode 100644 app/ui/style/olive-light/png/text-italic.32.disabled.png create mode 100644 app/ui/style/olive-light/png/text-italic.64.disabled.png create mode 100644 app/ui/style/olive-light/png/text-underline.128.disabled.png create mode 100644 app/ui/style/olive-light/png/text-underline.16.disabled.png create mode 100644 app/ui/style/olive-light/png/text-underline.32.disabled.png create mode 100644 app/ui/style/olive-light/png/text-underline.64.disabled.png create mode 100644 app/ui/style/olive-light/png/transition-tool.128.disabled.png create mode 100644 app/ui/style/olive-light/png/transition-tool.16.disabled.png create mode 100644 app/ui/style/olive-light/png/transition-tool.32.disabled.png create mode 100644 app/ui/style/olive-light/png/transition-tool.64.disabled.png create mode 100644 app/ui/style/olive-light/png/treeview.128.disabled.png create mode 100644 app/ui/style/olive-light/png/treeview.16.disabled.png create mode 100644 app/ui/style/olive-light/png/treeview.32.disabled.png create mode 100644 app/ui/style/olive-light/png/treeview.64.disabled.png create mode 100644 app/ui/style/olive-light/png/tri-down.128.disabled.png create mode 100644 app/ui/style/olive-light/png/tri-down.16.disabled.png create mode 100644 app/ui/style/olive-light/png/tri-down.32.disabled.png create mode 100644 app/ui/style/olive-light/png/tri-down.64.disabled.png create mode 100644 app/ui/style/olive-light/png/tri-left.128.disabled.png create mode 100644 app/ui/style/olive-light/png/tri-left.16.disabled.png create mode 100644 app/ui/style/olive-light/png/tri-left.32.disabled.png create mode 100644 app/ui/style/olive-light/png/tri-left.64.disabled.png create mode 100644 app/ui/style/olive-light/png/tri-right.128.disabled.png create mode 100644 app/ui/style/olive-light/png/tri-right.16.disabled.png create mode 100644 app/ui/style/olive-light/png/tri-right.32.disabled.png create mode 100644 app/ui/style/olive-light/png/tri-right.64.disabled.png create mode 100644 app/ui/style/olive-light/png/tri-up.128.disabled.png create mode 100644 app/ui/style/olive-light/png/tri-up.16.disabled.png create mode 100644 app/ui/style/olive-light/png/tri-up.32.disabled.png create mode 100644 app/ui/style/olive-light/png/tri-up.64.disabled.png create mode 100644 app/ui/style/olive-light/png/undo.128.disabled.png create mode 100644 app/ui/style/olive-light/png/undo.16.disabled.png create mode 100644 app/ui/style/olive-light/png/undo.32.disabled.png create mode 100644 app/ui/style/olive-light/png/undo.64.disabled.png create mode 100644 app/ui/style/olive-light/png/videosource.128.disabled.png create mode 100644 app/ui/style/olive-light/png/videosource.16.disabled.png create mode 100644 app/ui/style/olive-light/png/videosource.32.disabled.png create mode 100644 app/ui/style/olive-light/png/videosource.64.disabled.png create mode 100644 app/ui/style/olive-light/png/zoomin.128.disabled.png create mode 100644 app/ui/style/olive-light/png/zoomin.16.disabled.png create mode 100644 app/ui/style/olive-light/png/zoomin.32.disabled.png create mode 100644 app/ui/style/olive-light/png/zoomin.64.disabled.png create mode 100644 app/ui/style/olive-light/png/zoomout.128.disabled.png create mode 100644 app/ui/style/olive-light/png/zoomout.16.disabled.png create mode 100644 app/ui/style/olive-light/png/zoomout.32.disabled.png create mode 100644 app/ui/style/olive-light/png/zoomout.64.disabled.png create mode 100644 app/ui/style/olive-light/res.qrc.in diff --git a/app/ui/icons/icons.cpp b/app/ui/icons/icons.cpp index 20ecdaeb2..635aaf807 100644 --- a/app/ui/icons/icons.cpp +++ b/app/ui/icons/icons.cpp @@ -139,7 +139,9 @@ QIcon icon::Create(const QString& theme, const QString &name) for (int i=0;i. +add_subdirectory(olive-dark) +add_subdirectory(olive-light) + set(OLIVE_RESOURCES ${OLIVE_RESOURCES} - ui/style/olive-light/olive-light.qrc - ui/style/olive-dark/olive-dark.qrc PARENT_SCOPE ) diff --git a/app/ui/style/generate-style.sh b/app/ui/style/generate-style.sh index 7c01e5557..50ddb4db9 100755 --- a/app/ui/style/generate-style.sh +++ b/app/ui/style/generate-style.sh @@ -31,46 +31,23 @@ OUTPUT_SIZES=( 16 32 64 128 ) if [ $# -lt 1 ] then - echo "Usage: $0 icon-pack-name [options]" + echo "Generates sized PNG icons from SVG files" + echo "Usage: $0 icon-pack-name" echo echo "Example: $0 olive-dark" echo - echo "Options:" - echo " -n Only generate QRC file" - echo exit 1 fi PACKNAME=$1 SVGDIR=$1/svg PNGDIR=$1/png -QRCFILE=$1/$1.qrc mkdir -p $PNGDIR -ONLYQRC=0 - -if [ "$2" == "-n" ] -then - ONLYQRC=1 -fi - -truncate -s 0 $QRCFILE - -echo "" >> $QRCFILE -echo " " >> $QRCFILE -echo " style.css" >> $QRCFILE -echo " palette.ini" >> $QRCFILE - OutputPng() { - echo Creating $2... - - echo " png/$(basename $2)" >> $QRCFILE - - if [ $ONLYQRC -eq 0 ] - then - inkscape -z -e $(pwd)/$2 -w $s -h $s $1 - fi + inkscape --export-filename $2.png --export-width $s --export-height $s $1 + convert $2.png -alpha set -background none -channel A -evaluate multiply 0.25 +channel $2.disabled.png } for f in $SVGDIR/*.svg @@ -79,9 +56,6 @@ do for s in "${OUTPUT_SIZES[@]}" do - OutputPng $f $PNGDIR/$FNBASE.$s.png + OutputPng $f $PNGDIR/$FNBASE.$s done done - -echo " " >> $QRCFILE -echo "" >> $QRCFILE diff --git a/app/ui/style/olive-dark/CMakeLists.txt b/app/ui/style/olive-dark/CMakeLists.txt new file mode 100644 index 000000000..7564656df --- /dev/null +++ b/app/ui/style/olive-dark/CMakeLists.txt @@ -0,0 +1,32 @@ +# Olive - Non-Linear Video Editor +# Copyright (C) 2021 Olive Team +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +file(GLOB_RECURSE STYLE_RESOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/png *.png) +set(QRC_BODY "") +list(TRANSFORM STYLE_RESOURCES PREPEND "png/") +list(APPEND STYLE_RESOURCES "palette.ini") +list(APPEND STYLE_RESOURCES "style.css") +foreach(ICON_FILE ${STYLE_RESOURCES}) + string(APPEND QRC_BODY "${ICON_FILE}\n") + configure_file("${ICON_FILE}" "${ICON_FILE}" COPYONLY) +endforeach() +configure_file(res.qrc.in res.qrc @ONLY) + +set(OLIVE_RESOURCES + ${OLIVE_RESOURCES} + ${CMAKE_CURRENT_BINARY_DIR}/res.qrc + PARENT_SCOPE +) diff --git a/app/ui/style/olive-dark/png/add-button.128.disabled.png b/app/ui/style/olive-dark/png/add-button.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..8bcbc7de8afcb644067a704f10725d30f22a99c0 GIT binary patch literal 1212 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49Z+*mt}2YU|`nvba4!+xb=4K-Mm{40M7?wq|ek`*$<${?vQiYw`TB*fi5^ zjIMzqAaqh_(w_pgF9&}3t)I!6kkDb=bK&>bc3HU%%Y4PzUSOXa=iV7^#kj@ zndXa*809TF!SuuST=ujzFM`jwxCg$DzjlpXt!Cm120eq#Q5MgYJQ-(1$`!O^HZkou zaH8tt4F5^O4TT4;vMVM?6nu5$cwxEr-E#E@77t!E3q1Jdd9ldVR`8XQmV;G;2_?id z=b)H`7R6r{@Ahm8-;>bJd+o~;PX_TBmOkYr?WSH;Il2w!3ze+{ZZo-go(^OB!6y7t zOn2o>>oqoue!hC}npt>XmPP~nwBp*>^kdC#Oa{~a-t}7U=6>+-Ugx{RPp;UMrrl#c zw9!{{3JEi;Xw?=e~s# z9T^IfxXMy2L=EJbvR|Hwt2D?x;o7jVH;^G$;IG`igq*YHsbPP)be0rXHx*{zi%@LX z)~OM3VY?d>LsXLL+@+ z(GT0}rZL^Sc0S<1{;$bg1=S5z3y!b-A8)^`VS2-A>FfQP3E~B%kAE4m?y$AF|9kPb z??9mgx$iD~p0a3VoeSfaCjqbS`t<5$vq$w!LE zB>q;mR5e_GbK~m!L*3IF(l`AsDyr(~v8;?`gnx+DasK@wy`aDG}zd16s2LwR|*US?i)adKios$PCk z`s{Z$Qb0w<5Jja$$*Bw(B_#z``ufTFxw-jy#d_tL*_pYiDVd2N<@z9=en?_odVYLn Wa(-Uie2ob}?F^o-elF{r5}E*#%kHcI literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/add-button.16.disabled.png b/app/ui/style/olive-dark/png/add-button.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..415da218d7d956735b33a02c219438d47eba859b GIT binary patch literal 541 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0xnI=d`u6Hutf)5S4Fz{tw7RwJYR|-=n-(NKS!uj*^*Uz+PKj1Alkr$mQ%$Wmpmq>|gM2TZ*Nk)DVgKuI{ zNoJlxP-$^?e%bcZXJ!KBRYCG8i6yC4$wjF^iowXh$Vk_~P}j&Z#K6GH*wo62f@}!RPb(=;EJ|f4FE7{2%*!rLPAo{(%P&fw z{mw=TsK^+isI(|Kl_8^~q`*pFKRG`)H$SgfuRJq5GdDFQGZCa*AH>rSNz6;nkIzib V&x@O{F#)KZ!PC{xWt~$(69DCjvONF* literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/add-button.32.disabled.png b/app/ui/style/olive-dark/png/add-button.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..dc829bf56ecf4f5189e2d28f55b96303959ebd48 GIT binary patch literal 603 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b?74c3IXYpwKB#7sn8f<8P-r@--Ojtv?A8q67Hsd>4$t=YTo-jxuMb#rweT-cKLGv@5i zolOnAb!FPx=MOxUJ>Ve8qjC4!+uSn~FF2P3{g#ul&h-mkcV7JEbH+*Qm^@DTF<+50 z?Rc#n0wVvnGBva2<-R^vxV7^^-kBShj;1qS-o2ma#qo!Xa)))A-yS;D2lSOliEBiO zV`)i7ei4IjVo^zEo2D?NY%?PN}v7CMhd9N7^0}OC^?lOqokz3N?$)YKQ}i&uUM}NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_#Y&MwQ^#K6E<=jq}Yl5y|t%)NQd1|n|# z3x!gAl~gruPBwq>yT7*i3Fjm)&ua$+^4iND9A9>$Ayc*fv20CWZjK(4lheO)l}Q;l zI8I6abvxF@qOqeeP=7tsrUwo|nj&*T-Wg50%;a_Ffb*e)xyEW#>RDa{Xa?fr_* zeZ9BQ%)ispud98^;v;U1M!xIK%Y=+JAE+v-=?)T{aN_VE#z|Ss_P-6+aIBbgh2{c%VCD!u=; z>(>VP*ZQ)DA&!}$ylH-@!?!nSA`@(POKyK4{az~|D#ZHZIwt?_EcJV#4;HSy_ZG+t z_kBF=b7p_JNPy~dx8Jjh!))g@s@0v)pFN{z>s|fXW_1k*&QB2hGIJ-VeZ&E$(C+VQ z35TkM3?A?0D0yhhQS$g9x9o}7wMJj2EdoZ4NQrAiiDPL=Mt%{4Z(>nNW}ZS&X>oRb z+4j?CW&-6^LGmeyC8<`)MX5lF!N|bKNY}tn*T^!&z`)Ab)XLC68^|y)@aK>LCK4nK zx%nxXX_dG&*o7_$0cwy0*$|wcR#Ki=l*&+EUaps!mtCBkSdglhUz9%kosASwkugM3 zX;E@2LqmdKI;Vst02|>ZKmY&$ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/add-effect.128.disabled.png b/app/ui/style/olive-dark/png/add-effect.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..eb577eb14f84772f4655bdecc5afed4f292ce245 GIT binary patch literal 1552 zcmZ`(do+}39DcuX%|s)&5^_m0i6OHXX~?)$?v|v3F=m);&G*G;hT6s)rVG)ylqPrU z&W0^xOBYIUk|e2+A}u9F(S?cZ=j;f3 zhda#=L%~WZ%3?R$rp6Hi*(fJZCjfpI;TP$0*sRZR_wxkc@McUW1VDp*Csq!Qi14c-^&?Cpgo$%c?Bt#tA%R; zC;AkP0`Z|D&1RJfwNb5-rzH}(Gx$;RVp1pjD2^ylD#29)3>qEQa5Ck^;U_~G9)XwJ z$*hUZ&uN|O_L!t=@C|Nt-`;@pQGk`q9&o!4Wm(^|ZgZPlTt1deICmVt@4v=Wt8at)t-S<&U&0^Lf z(*s@E3NJK@XfyqFH#8+%pr>r+WHTXzu!DCk4;c?L2I;&7o! z+bivnP(??*(3pNp>6=%XPsle~nm(-6Ut>~Z)#IE2uaRx@^-_&GX`})LD(_#f-x~hN z%TW@QH;x-7M~|082W6WMK5RM*o+|IRTStz5zFQES5~xz7-u&dnr2wMfiYbydXLheW zeO#My)_2sfDwOal;`L<6vRAFXAb8BW?58Hekf{zi`hH2@-d?kh8Lo;21Lo9rdVOk@ zRHLWMpRQ(rtHz6|yJ|){RsF?R3v9@epyGo)viCO*euBU`yA)VhCoPm9#Ge(zEIrfZ zg&S?3b*z^3DQn;2UdEIK7o&a0L)JwDx%7_e5|HHE(j&!|Ajs5E!R>Nf(^$iQqFb z+t`pGfHtG7eXK06P~4v}`D7&+JmSZn76E#P9bvA2ZGn2*Z%A&Y{={tdY3wa^k2(porfNQT3l9Vi z`9i>19MQGB6AQXZlgm_b)YfpM0Jips%>ehy_tid7xlE?(Kl?5@Wa_3{bMOz>;l}sF zXYr%M^?G%*AE!5QA+ay&2ax&@8 z*-{Gi(xb4M1@^aY`uLY3V;5ibf1QK{{DTIIQ&0S7pJTt1I_k0yb&5x$;aK2Fk44!W zeZTm)gE04xd)?)$a;V F{tK5Chn)Zb literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/add-effect.16.disabled.png b/app/ui/style/olive-dark/png/add-effect.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..33b2273d6aedb1f7c315703cec987b7f27f91394 GIT binary patch literal 565 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0xnI=d`u6HsW0r;B5V#`)F@8}pbPc~~xN zzi8^wc|?poN!4n_kN@{QX0{1+Ha+7KcxiC7Z~|-WjI_01&s5|HSZ)%mY1sNzVqs^F zlHk$xlfSL3&s&qH=PiDJntzMO#9FNz)>gB_-#SgUiq-M3-msg~T=HgA#L^F)vK=6Olj6iTjKoo1OGd|z*Rj<)mpw3Es~qgV))h6=;05&L)9^i z?Nc=wcYVmb33RVWiEBiOV`)i7ei4IjVo^zEo2D?NY%?PN}v7CMhd9N7^0}OC^?lOqokz3N?$)YKQ}i& vuUM}y literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/add-effect.32.disabled.png b/app/ui/style/olive-dark/png/add-effect.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..080bcc16d25f841439c02dcb5c3acd2ae0f99185 GIT binary patch literal 647 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b?74c3IXYpwKr@7sn8f<8LP$@*Oe|V0o_e zNQm_#BM+O5~_t*m(8i$+vIUy-QF_(Ye#5%cmSG=~%kn zggeV@DHoF?Z^JA<15@VhPQPC=GP_w_-{4;o?IW7mF2x%&>9J_lI@Zv{4ThNqjI^6K z7O?*>I3sQQZ@9wP$khDx^c49=!3KXfSE#RP3@hS{+mOcY@VlAklgO6$ z&(eiX%uf4%mc4XF+QaVZ1of}Ck7w&FKM}LdUT6o?zcV)4Sv^Zu0z*Kg#5JPCv9u&3 zzlgy%v8W_7Pa&wZI6J>=`{^??f%2*#`IN+xRIB8oR3OD*WME{ZYhb8rWEo;$U}bD- zWoV!cWEdFubI1TA2T4P2eoAIqC2kFNp-V!58YDqB1m~xflqVLYGL)B>>t*I;7bhnc zr0V4trO$q6BL!4s3{g~Cl$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aQmzl;>4zld brRT?ICggTe~DWM4fTqEF( literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/add-effect.64.disabled.png b/app/ui/style/olive-dark/png/add-effect.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..c5fb163676df740c984b336b3ca81f370c318a14 GIT binary patch literal 966 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_#YcP)%k0ctY!ba4#Hxc7GE!Ti|x+2$=fpLA;*dl$pwJCpC) zI_yioVC!)F6{E-r>193Ifn{qr<0b{|*?ibI&3D1PDSM7y{&u);XBC@3yFS}CdBg2L zVji1D+*!7EE8}N_BU`g}70tQUp_{~#SoBgsCc@_0tPNo&&$&yinkHsv{q~}v{pD*B z)qbK4w>CU*WLA3C=sJnHA(?AIMBjcno*!waLVo_5&gazjR##U!Ms32Jin+`uIwE)d z;@x)U>b9DgkD^Zw8|L{uNHa4(Vr#aBV}gCk>$yUazJ4}ySvZXBI(}Z2a0q5)*qZ3q zq0mxeFK09LRJDf~prVPU%Ksdo8-W@ahZhj3G_nVt<-_kE47pL9|pVv)w>&VTT{yquQ=#*R^;LIzp0aB9B%zvXs33>{Cn!v)#2;o z)`!nC}Q!>*kach{NwEh85 zgCxj?;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TyA&N?il2aKnN=gc>^!1bT zb93|aiuKAfvomv3Q!*1l%Jo4!{gA}G^!)hDsKqZ`ta3XpHRM{< z%2JdV-B7NRre$2yG;BXztZ6d4xg_@I>|cBK?03%lKHu{`&vV}M{qrRs^l;H$rnd|L zpzY@B?1><>SWDEA&e~SK3juW|nL-AjI$djyrh#xHx~nGzfKz6O?;HTL$Ow85fB+A` z#}EKWLI8B5@*560B7$1zeivr|Zl#(K5wF{R;GQ{xRD0?wuC@e5p zzPUw$XzH16&SdYHp^1Vn&MW)%NgLfGN%|fJ-~W6G&U~?@q2$4efrW%&L6X6R^$Oj- zzCz{z-r#w`q~hg`3RtHjlbSg+{UA5n{Bb(_8`V=?gG?sRm}(~nO_liP4wn>h$w}*7 zg#@Bae^A|$U3!7MJd1oHK6zXbfHETBj@L52ev(1D+e4=;`YhdNYFz7yyrKn(&$U=c=ViF(=gy7^Jw zdL2%dV<}yscijtn1X%pkTuVx|U%bYy(Am=$99wK@Lc^{5uWk%#TX?y4-$SC>Z|^?G z_l`W>f$Q#J9&IWZZ{OI^ye597>Vu&&qAljhul|9YY)X*Je2zzbqAN*1E2y{JvcS7z zSRf7m=w>sTtT6Q~x>7}_W|in}Nq_J41gKV>!2We=!I=MUhR!N=pUd0l)P3OG+-z&l zMH85_*-xVJ?4|iocA7E2NLdNkxTkm6ye)z;`oXec@?7nXp z-<-kxs#9%mvUydUctkSO8#Z5SRc5Ldm$&Y$u1qO=+rGOJtc>XtwJ1N;+wCamQUf_l z>*7vH^m#>7Ap+11Uu^433?|?)lm>IPl~1=^83^1%94VXmddJHGV?-dh+}l1T{n(D9 z3F9Og4`23O-uM#^`cu12HlZM6 zj!+5U_ebN;TFWK&Sy(9gVHYR%JP@A$@uV3cD|M6PgwN@R^5MaJBczda6T z<{!qmAgyS~^Rn-V+1#`0{6y*}&B~ zIJV)svDgb`#D+Vn60bk(1ns=|ZI`fuwm^%UJ9GT0n*jeqC)R6hYnKZkI9}U}nP@Y} z2|(TiD0zX2OWYK^PWPtCi|Ck)M>oG>C=o;G5SQbZeRV(rQCj1;fZF`fHeujV=>Z_M zk}yGYfQ%JT_yo9nMD$@HJF#jNbXcs?ff!_>QgPQUJcu-wl1`nd; zl(ccu7A0+-ya%MMlYAg;M_T>~pSxdWdGk{aZW^GpTA5BYd)ee~iNg6dIS$iZt>R@WMGK>%`A<5#4lA52NuJBs!OY03hOtL@PYOinzlY zk0;sKkqAUfWbhI@qGMq=J zMKP>7T;^4UqaI?i`Nt&S(iz|wpC3iS;piMTn-j^ij%J0k*o-h1ZPAWfWH@hHB$E@& WqH`jtMdleu9JuZEaIV@NlK3|;TDQ*t literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/add-transition.16.disabled.png b/app/ui/style/olive-dark/png/add-transition.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..0881c6476b4c2145906557fcb15b6cc1f74aa97b GIT binary patch literal 573 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0xn-nB4F1t_$})5S4FG zpU!IW*fT*y@XeS1|0hiea})TKI9VXT(?RIE+qv(4>rQPk-n`qGd(*inezt_PYw9aD zm8qWCC~wU#`){|At?x{W3Zs`Cn?AicCh>k--tD~WNdoa7m6n>9FJs+n*3PA4p!My& zZnCpkQ`D~f7yhe%nC}Q!>*kach{N zwEh85gCxj?;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TyA&N?il2aKnN=gc> z^!1bTb93|aiuKAfvomv3Q!*1l%Jo4!{gA}G^!)hDk4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b?7?YhjcM0|TR)r;B5V$MLsQZ2b=#2(-=T z_GI68rA$xA(Zgd6&!7Jj|2sVKT6=}B!$Y#`Nl@RyOrEuK&u=xK`~HvJzR!_ujcV-f z>NX1`PVQ!0bjrKabI1FrMrIX;o?pzr?lt;(oW49a*KpG78OzzW9(9qkR9WJ1vEon1 zmUXO|EC)0WCDbluG++Df!Gjmsk`>z51<%K@hFJ6TSDSx(`n4%KEr#t0>&ysS#vD%u zZmG{gYa${yh?O$38!S1nXWMt)nK}R3wHls0NqxV$q2_2%U0<`P!*LOpnBwPe?@sFc z9=k*ARoq>5w|#$C&QQB;IK97M7iYkP&b7A#*aN1m`Pa8b`a$>i#}i8#*F?_gTcfLB zv8k+K*2JyMJ~Okb|9-H)$e5$Qx0K;B^Tz)>&zW7RWBj<@|E;sJn-nk*MM_*FN*qf| zGV+TUd=raGGV>IIN{h4e%eJ3BGZQGU3X)GrEJ?LWE=mPb3`Pb0s6i5BLvVgtNqJ&XDnogBxn5>oc5!lI zL8@MUQTpt6HXvsjLll)3C8siEl#~=$>FX!w=jP_;73-B}W@qN6rer39lG|=Q$@zJ4^ED;_wKI6S`njxgN@xNALWlq4 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/add-transition.64.disabled.png b/app/ui/style/olive-dark/png/add-transition.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..3fd1533ad53f97a2b19551dea791567897720ce5 GIT binary patch literal 985 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_#YcP)%k0c!H_ba4#Hxc7FZcm6F0k=Ff% z0$#V0q!y)2cM8198WbM;<-h)JU8h${94nMngXFzrI$b&*mNf=59!^fPDT_Xtp4xwG z&iTjH&!X7=`F0A0_FWc}wp`{c{IIce)-*na<24GW{KR;=+&X$DemfO$B=w?p0@IP~ z^xjX5*WCL~v1>$%HZWBlRQ>2Ug;n!pvBuKryKPK0JF7xIO`7-BO6SFDbq34j(ht5p z|Dt@)!ltdmuWSn2hIXm9CkizmuW>&!L4m{fz7kI|zq=s6pZJoj%vkk+?L9L#Y?!xJ zGTr^)wih10k_G9E3wI`OIKxmN$aNs+_vw1U`xU;4>j2AzrN6R;7i>6?dv!18gn)z>W+v&I z-s;b`%AM6(zvB8GW6s+*v_e;fy!?M9zy0%;A3-lySOAlmNQrAiiDPL=Mt%{4Z(>nN zW}ZS&X>oRb+4j?CW&-6^LGmeyC8<`)MX5lF!N|bKNY}tn*T^!&z`)Ab)XLCM8^|y) zcv&wVgQ6ifKP5A*61RpKO6wm0HAsSN2+mI{DNig)WhgH%*UQYyE>2D?NY%?PN}v7C zMhd9N7^0}OC^?lOqokz3N?$)YKQ}i&uUM}NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49YwzN6!Q07|(mUIEGZ*dV9w(zu7>b?P0U3 z5OeaTjo<$NpR+C}C8cAEYDvZtzI2zxn}4#@%{T0P^;vz^i5qhy85mZCZvJ-c(#@+? zyCYWX8NNvMpZ)fpjU7iqX6}aByFQ&!lb(HjKT|~1?@e*B`HY)ue{%$h|0p>1a`soV zAL6kL-sQWx|DVr&X~w)^^{!Kk?!2jCc)sUPc=~hZ9V@bRPMv-CV*jT^yN2bvmVo6p z?>Yvi%S(G*ci!B|Fst47l~(u6KV1r6RW0Uyxu3A@;{Fp!8E-#t)oEu0`jo+;cGi#i zKepcHopQ$9ViSwP&em;3-QEHXZ)_Zk_WuvI)Qh-U+4Q9D|2syH^TI0MewXt*)XY<` zsj^{sTiNvC#YcuM&p8h*mao07tRvU(&Bn3fO9jKN-YamKcIFB5)Mq@>Zjy;_TJ@Rb z}gMT*+#FE8a4X4w5@?)k@P>9)MyVF$}E zb{Xlv%!gDj*gHr8O?$#9@t1j3JkMTdix(ixS6;K?)FK#IZ0z{p6~z);u7GQ_~Z%GlJ( z&`2A|Ffh0=o%bM$hTQy=%(P0}8djd#S_{-539=zLKdq!Zu_%?Hyu4g5GcUV1Ik6yB zFTW^#_B$IXpdw?4qSB(|RECU_k^(Dz{p9@I-2A*^z4FZL%-qzJ%tVlKeGpGSBrz{N ZKRz=#KQC^+#sr{t22WQ%mvv4FO#tAASR()c literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/align-center.16.disabled.png b/app/ui/style/olive-dark/png/align-center.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..ffe9040e081a337efe4e925d6ae7a463457ea95e GIT binary patch literal 446 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0xnQ8{|P9Vn#h>EaloaXvXgfk8r2;$ODm zhes3so~h{VoWMDS*-e7^tm=Hp^^Ou>3J-g5urr93^YH$ZtpWK#q{KC%#Idv_Bfp5j zH?gQBGfyF?v^YDzZ2RdmGlBA|Ao-NUl2ohYqEsNoU}Ruqq-$WPYh)Q>U|?lzYGr7o z4P+P?+?dXL5Jf|7eoAIqC2kEXPi?IQYLEok5S*V@Ql40p%1~Zju9umYU7Va)kgAto zls@~NjTBIkF+@>mQF1CnMoCG5mA-y*er|4lUa?+zW_D(7YD#7zNVz_Uryr7-m!2P= XnVg>&H(z4{P&k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b?7oa`b#VP$<*W#WBR=_}eLtTnz?1Eb313 z5BOjGmrt#Kz+7~pS+`@V!wbiWXAC#YKCH)`ugviKj8l=;)KIe-3@7p|Rg6rU8U31@ zc1`t?tor1QhDO>zhJnG2>AVL~H00)|WTsW(*0A!_)>@zjNstY}`DrEPiAAXl<>lpi znR(g8$%zH2dih1^v)|cB0TmfT6qObwr!r)eloVL$>nG>u=H}-W>y>9_XXd7+WF~@? i>w|duA&GhE`SF>_`FU~kH6{SHGkCiCxvXNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_!tRF0l+2MQhcba4#Hxc7F3Az!lrk88aK zv$XmN&Z_^53!3IMtaaA1YGnzXsD0;_$KU)efrs^M$L-lp>=%AjG+V&%@weoo>S0Sh zR2XmY-H~ka>ut}{2#Ig)7k%U;1W#|0nsN3Ce^&D|?fVO)B795Bw`M6Q&OVvGWK)U0 zvl9pBCvA2975w}%7aO$HO=|bI-{Cd2T=??$bKVz4O*?)&RW4}PQ}5WF$~n%4}0=*iU&P>>SX7dkrw~+HoSk2`{q&icKzUV=d`eNS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49dL0hyDvPFff*Rx;TbZ+{)YxGTfSz>sqF?cPAPxu&m{ z*i{`dw=KE8D!aT|vEfqoCDp1={Lv=m{q?K?Rev*j=3PIyDqh<0E#rK?o%>9(HtEk| zI90Ht{r~x;JZBk7`sQ7ldh;Ax!I|Ur<<`;%G^^ag({|_opI$$k_ko=4B<;;}c@ui) zT?DIv&@313ZgKH{nYK~A=~n-PnhWa>uDZGJL}JGK&yjtHfqn!A+War#N->?G*O$u+ z*skXO#rTE!1^Wg51@ag88tNRr^sIZqZo<4k-oaksZ(;_w;>kh@u(l_Y|2eg2Z+!LZ z3-hA%Qb+rSI)=XtAkDWJFYtHFyD0j%A&miK)DnB1TtyX2K4y@%hMG(99R;dkvGajO zuhD~8iU&P>>SX7dkrw~+HoSk2`{q&icKzUV=d`eEaloaXvXgfk8r2;$ODm zhes3so~h{VoWMDyIneyVSzZRdb{^h?Cx4{_Rg09kMwB>~mSp4?G597Hm1O2A1eF$N z=a+3ieP$+5UKJ#tl30>zm0Xkxq!^40jEr;*40VkxLktY8j7_Z!jkJLb1A`mWc@Ls! z$jwj5OsmALVdbfc%%uP+nOav*{2l4bn67$mY<1>@<^Wx@fOaN+U N@O1TaS?83{1OT=@fMEat literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/align-justify-all.32.disabled.png b/app/ui/style/olive-dark/png/align-justify-all.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..58a632b15b44d7bb833748f94d3c7e6dfb80954c GIT binary patch literal 481 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b?5~eCWR*P$y6?q&C__bhnJS9#%0meoxM$!jOM-XCB&?{K;O?7Fk_ z);pC52*{oR(I43JlF}4pt?t~<0GcgQ;u=xnSXz>iU&P>>SX7dkrw~+HoSk2`{q&ic zKzUV=d`eNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_!tgAe@|1PV>{ba4#Hxc7G2Zr%n19#;AJ zO0vQ!OyA^NIgK2xx)fG8wP-Nzez0zn#wWSfwUZybFUh^ryhx2#UOn%W*WD`Z4eV#7 zdh2#)tQ7tAIoYIpy4z8!ZA_CR|ER95|8z=v3)4-L?>^bAle!{n0#_~mEycvJLtd$d zLH+>yo$CS&2mT5?Wd6Zm_h4Te1H-#^4xsP{#_y&q77R0V0!&xf=3fRnP^82)qQtSZ zBqP6w!8fs}Br{JTsI)jczij*IGc$qmsv!B4#FA92FVdQ&MBb@0LOB%7ytkO literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/align-justify-center.128.disabled.png b/app/ui/style/olive-dark/png/align-justify-center.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..4a4aebb0813184d63f3defc98ecf7b01d90c733e GIT binary patch literal 854 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49a|`POn?dz`%Ia)5S5Q;?~<+8}phCL|Pwm zd#kV=OG$qF+ukqS%*e>)l#rE4P0V zC4XSeyp3Qw);2jXuT-z$S>oiXQ%P$3l|B9n%J~1vHn{!5KE-&;x4&C++8Kd9WpJon zWiRm1LuY5rFUD7q-3#O$>>KJB{xbYxyv=xlKj3_X$lr#u3@_L(@UN&d{=&C#(pzAd z0>KLZuk1=PovPFQ?Hz2h1-~$Zlz?<6SOfLGlI&h2zd;gg&ei<3dx{~OWZA&_zGgnM ze{?;OU1KJ{#U>U7OQ&edM?x$LuZ30K|NegJD0#~C{PH}YXC3y|F)W&~Aa@b}hbo{`L`qyEN*qf|GV+TUd=raGGV>IIN{h4e z%eJ3BGZQGU3X)GrEJ?LWE=mPb3`Pb(yEr+qAXP8FD1G)j8!4b7V~C>C zqU2PDjFOT9D}DXs{M_99ykfob% literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/align-justify-center.16.disabled.png b/app/ui/style/olive-dark/png/align-justify-center.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..ea5c7477f39656211c42b0245c20a429c93b3a44 GIT binary patch literal 446 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0xn4LEaloaXvXgfk8r2;$ODm zhes3so~h{VoWMDyIneyTT?WPsy`N_)cn>YO!^FryA8bwN6BT5`gOEU6{ z7(= z#@axJfkE8^wo()gx%nxXX_dG&@bBGs5~x8EWJ7R%T1k0gQ7S`udAVL@UUqSEVnM22 zeo^}DcQ#T$MaB?CrA5i93>hUQ1y=g{$@#gt`FX{9<(b);xv43ci6G_rAfA3mVqSWF Yd}eZfUfg_*2|(=(p00i_>zopr0MSN;C;$Ke literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/align-justify-center.32.disabled.png b/app/ui/style/olive-dark/png/align-justify-center.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..ebcbd7b941e5e0500f245d1422f81b42f349ca6f GIT binary patch literal 506 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b?5~eCWR*P$<*W#WBR=_}fX2Tnz?1Eb313 z5BOjGmrt#Kz+7~pS+}Fr;f15-%;W^~cG(|Nj27W$lZ;osDLTO9P&&0v+HvfFn9{y#*rN7nx_DmBlt=@gWGd{uc7X7cuxI7L{b?DFl@kXXlq~KYeBq42`vc3^^@~+bMy0x^~y7|Gjmf@G7~|{ i^+7!Ski@+7{P@h|{JgmN8WVup89ZJ6T-G@yGyworah*T_ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/align-justify-center.64.disabled.png b/app/ui/style/olive-dark/png/align-justify-center.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..02e2450b9a0ed20542cab382ab8a83845a8f621c GIT binary patch literal 597 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_$DPMu!28Ypzc)5S3)lqV}Cz9)I&UDNXt>nN#2J$9mzk+btcE+vTyNOtkX{B)h8hc?K&8CNE_=%kt&%swf9h3%~N{RL7HzNO_`vlJ9(pG;p8v}?Pf zV#^MGrDu#F_}xsUMc}*R5t{=*_~2e!i-6D*e?Ptz{Oo-h4pW6^?Y-}OuWiOJ8t{bG@^*l!YwxawK>vu8xJHyXmX>7X7cuxI z7L{b?DFl@kXXlq~KYeBq3{A9w z3~}U&Kt;w7MWsc_sSFtQ44$rjF6*2UngA}e%U1vZ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/align-justify-left.128.disabled.png b/app/ui/style/olive-dark/png/align-justify-left.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..0a378c0873ff45cf112123609f21673f468db54f GIT binary patch literal 831 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49fg_&&;!BU|?M5>EaktaqI0Z!~8=A0&Ney z#g_0$CZ4|a|9|nWH11?J6|pl-S03i<6t$gya_@PLsWtzmY}@p?6X=c=ZI{F|Cv84c zH0fgX5p&xodb?xVZ_6`zEY>OdIPcH=+)aG_@vIZveones9ml-8<~2tV|Bs>*Z@bTI zdchyckZE=2@c+k?mSr&%eVcb_%B{J44`%e&7nWN!O#a@p?8-a4zx)5(E@3EtKhbC9 z-Ioky?&5CYg3d zkTwUKhx#r%gihzpuWR_eM(qVVOrwJ>P$|&zMe+f>U}HYCFAV2!>^lt7#h@VfpIh)b zcX!>oBV6HOe2hE3GH-hSe(l#Q{3rJ9&zEb+wpaN4Z(k+DxxWq1R)4?7pRunhAH=Nx zmCfJGQ1hGdZ20@N@)v5p-une&u9n}h)n4!mSoij0i7URiPI(NB@{ZS>$^r{=jkhR) z5|K!WYeb1-X-P(Y5rc1HQAuW=LQrXOc7ECR(`RM^?)FK#IZ0z{p6~ zz);u7GQ_~Z%GlJ(&{P}9FffocF!o2$kei>9nO2EgLr!k@XP^d2kPX54X(i=}MX3zs z<>h*rdD+Fui3O>8`99YM_vor;B5V#`)v~1qKO8iGSIK zA0AEkd#0kda{}j-=0NiYMTgUmWuM^EC}(C+{?EhvbwVo0bdeI*h!V%rl8pQ!2H(V@ zlFU4Xpwi;({Icz*&&&kMtAgZH5=&C8l8aJ-6oZk0k&&)}p{|i-h=GBXv8k1zi8hd7 zV6fZW;x~$h-29Zxv`X9>PDwSm12ss3YzWRzD=AMbN@XZ7FW1Y=%Pvk%EJ)SMFG`>N z&PEET$QYuiv?w{1A)}k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b?76>h!wRK%qoW7sn8f<8LQz1eHW6geZhRC@q3Cs&-Jf5Iwz$IhDDr%_S z`bsvw^@BpghXdC8xOTDseQ#dE|Lgu|CiY$I`~UxDyBek-YjupZ3TT-~iEBiOV`)i7 zei4IjVo^zEozBtbR==ckpFCl;kLl$V$5W#(lUCnpx9 z>g5-u&wghk1yp1VQB+!#oXU_ont`Fkrha~2u a=f`Iz=jX-E*O&m*&fw|l=d#Wzp$P!Cftri} literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/align-justify-left.64.disabled.png b/app/ui/style/olive-dark/png/align-justify-left.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..fa0ae68258fd67955394515a28ad2772f80b1a86 GIT binary patch literal 583 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_$DPMu!28Yr~Q)5S3)0B6zv#Xnf)9EjyoT7F1isgXcf*ZtLD9tO@EcPk&fD;ZR&Qxs+TH{#>c*t&{3 zNeeMslk#6>7sPaXo-cf@rhm3*qYvA)yif93$!E27J=ngj+qFE(=z-|2lk7huW^Gqw zX!xn1#6N-k1oN|84u%A~juXsJ7(X>sN;5HB;a_y>;3YNwl;3}~az8n2yMLPZ%G1V2 zx9cafcja$C$$YbJe-}{Q9!ANZ0jBew>^KYbfk=sKM2TZ*Nk)DVgKuI{NoJlxP-$^? ze%bcZXJ!KBRYCG8i6yC4$wjF^iowXh$Vk_~P}j&Z#K6GH*wo6tI3Fxc&G@f$@$ zZhlH;S|x4`r=%L(ff^)1HU#IVm6RtIr81P4m+NKbWfvzW7NqLs7p2dBXCnnvWDHSM zT9lm1kWo@nV5P60oS&PUpI59`o|&DQo0^iD2vV*O;^~JZ=B4MyXC~+8#m(240MyRl M>FVdQ&MBb@0K`qlcK`qY literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/align-justify-right.128.disabled.png b/app/ui/style/olive-dark/png/align-justify-right.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..341e265dc199b918a4eedcabd51ed1bfffdf55e5 GIT binary patch literal 836 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49fg_&&;!BU|`(r>EaktaqI1^jd{%u0xb`Z z_NsDu?OuHLx4mDKRZLJsQSv2)r4bkA`kGDN@ITyY+E#0&jqi-ofKFST_L{voTm1E# z9QCgq*0ygGC*Pg*o15{B`s=r==KX2!H8VNCis9Mh+KA=z%nzi@w``qS^9F;}c`=X$#B zGo#NdN#~t!YZ%PG_AI=*bo*d6R0Y?C#9F&>KJB{x%dbd||#~+_p$QfCtR~(!Nl&MFnoz=Ksp~ zK4**Tz5l{|XnJ_e&b?KtV!QS&s}H!#-?8kK{FSfFi#&g`hyHEIxb@G`)m~xNw)%jJ zK&iL#7x*u*FL)~-@`ZU(=KqgT5Wy+G880sR+kC3d!6fwmf_?G=x<3;$I3M=Qv@0 z8-nxGO3D+9QW?t2%k?tzvWt@w3sUv+i_&MmvylQSGKMHBElN&h$S5f(u+rC0&d<%w w&nwm|&&#jVYCXo`?h!V%rl8pQ!2H(V@ zlFU4Xpwi;({Icz*&&&kMtAgZH5=&C8l8aJ-6oZk0k&&)}p{|i-h=GBXv8k1zsWy;d zU?6K??2n=$H$NpatrE9}oZRluKn;>08-nxGO3D+9QW?t2%k?tzvWt@w3sUv+i_&Mm zvylQSGKMHBElN&h$S5f(u+rC0&d<%w&nwm|&&k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b?7^_sl$7pir`>i(`n#@wbyU@-`Uou$=dh zY~Vfg&v_!R!~s^34kcHeNH-?eec!(RKYQ>x$AO)j0_XUqPG=TlShbt4mFv7iL-m4% z@0ML!^nCLKIh6@=F6Yx7*If9r_;W(b)8o74dN%y|(aSC_8m1tdvDjZ6Xq`xjYeb1- zX-P(Y5rc1HQAuW=LQrXOc7ECR(`RM^?)FK#IZ0z{p6~z);u7GQ_~Z z%GlJ(&{P}9FffocF!o2$kei>9nO2EgLr!k@XP^d2kPX54X(i=}MX3zs<>h*rdD+Fu zi3O>8`9NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_$D_nw(&3l!Sp>EalYaqsOkL%u@>0xZ`R zU3cv{p#R{%|3lU~M=P$y0hVHiMAF%%J7>NU(Y)zfxP0P+`-PQv#4FeCstctt`Q}Ur6n2pMGU@)MJ1Ve3PGjC z+4*JLPoJ3ylvf4GrzDo7S|t~y0x1R~10y3{14CUS%Mb$tD`QhDLsM-a!@xk+z}O!} zLvDUbW?Cg~4LP~ppMe@AK{f>ErERAdZM zR9cjr%8*e~QedU8pPZkYo1a&#SDu-jnVXuDnFvy@58~;EB<7{($7d$z=f%y}m;lty N;OXk;vd$@?2>=f-#lHXm literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/align-left.128.disabled.png b/app/ui/style/olive-dark/png/align-left.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..f1982966307ca774afcc43894f5803a7b7195245 GIT binary patch literal 841 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49WrqM<$EaktaqI0J!~8=A0&Neu zxr5qzHl)7&|KBopbE_e<5O-qdm4`x0MQ!WVzS}8>Z2GIodeiP44+BHW)ttSC+sihd zJ69Iu|IydK`bNt3XaCw6o=yH*7JB~A{9ZGY^YN?(^WU7d`dY*6^X;v2MD>B+&U*LP zY`(Yu1=Eb%hi(7ZuPfdy-4J_aGtbko=gbz*9`E02C4V5&_IN;E>HL4X|IOqNINL4- za_kyB!Gd-Tv#a_R-gyb?zI!DO$*Uxu3A<;QkY78L!`O&S_@^`jx@K z?iaJ*$3|CM_atfeuqK9-uZ*j|f4`Wuia%oSeto%yEp`b{|Lv<_c=W5`(ci_rhx*Q{8#%mxmF1ps?3fsx>eefZ)?b z`3{%G^#_{%F@E7+P|xs}`Gvg0e}-S|Z`gs0bDP+?bn; zKY%8Ql(k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+Y^aAficpirWxi(`n#@wZbp@-`RZd>ok;J!4t$1Bm>I)!0YBws7r_QvMZ2?}XT z4fZ^&cf5b_&2P?H_Ra6hnc08wEy|zzqnY6m|Fs7!9-#`db}=5eftHDsxJHyXmX>7X z7cuxI7L{b?DFl@kXXlq~KYeBq z49&EG3~}U&Kt;w7MWsc_sSFtQ44$rjF6*2UngAVmo5cVC literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/align-left.64.disabled.png b/app/ui/style/olive-dark/png/align-left.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..ebf8e7faba081f3f8af053859f85f418a4996a34 GIT binary patch literal 586 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_zO4311b0TkNl>EalYaqsO6Yrew@0xrkr zADZibfV1fT;vXz?4#aXPEk7i%)JPz#>;CGnX&-ow9x@WTGgooyai!&sWi=nS8gX~iBu8ABA6 z7A2=LWR#Q?Sn2C0=jZ0;=N0RfXJ%*Srlw>jf|Tonc={oUdFlD_naTNiaq~4M0JSrC My85}Sb4q9e01S%F5dZ)H literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/align-right.128.disabled.png b/app/ui/style/olive-dark/png/align-right.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..72c7a9477c1774c06922050a05c061b1c5c4bf86 GIT binary patch literal 844 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49bG;hZn~&Ffi`+ba4!+xb^nV#=PbLp4P;} zLY<9%Tm;w})rqrWQR9S)NB~S1dLE?KfN-bX#eyp6v}D28NW-wY7;^Z*tbo zT@yBa$K}KC%x-PnWoy{5a@#q*SEv5pNT~g)A$1_+_Vlf;JE(pcV}bAQd& zbNgSg8JM>3{!t&hEUlQKEG%5|ROxf}f-|SR)cKVv+^R(m=~@5#QyYWL&iyd=g$Im zPb`3e0R*2s{~uuKKclnl{6B`$wTd_75By{J#=gP6q2|Chh8yw=))|WYW;SC7i!QO} zIqU3EB*O;Q`EyBqLX&%%%G=HM4j+PV$|t6)V(?8YD#^@K2r4bk&M(`3`pitAyeddOC9x#c zD!C{XNHG{07#Zmr80s2Xh8P%F8Jk)enrj0Y1_oX0mC{f&c%%uP+nOav*{2l4bn67$mY<1>@<^Wx@fOaN+U@O1TaS?83{1OR;3Ln8nH literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/align-right.16.disabled.png b/app/ui/style/olive-dark/png/align-right.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..ee8fad7745676b74b4a4f64a4f6aec2f0e0143b0 GIT binary patch literal 441 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0vBFgP;#1W-uB)5S4F<9u?00)vF4#J_CA z5057NJyX%!Ie~Kuvs;MXtm+rf+9nF{F?`J6;f-7D9Rk!NQsNp>;#gXekzd5%n^;tm znWqp`TAZC%=^u21$?&!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2 zNC6cYLll)3C8siEl#~=$>FX!w=jP_;73-B}W@qN6rer39lG|=Q$@zJ4 T^ED;_wKI6S`njxgN@xNA9j1XO literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/align-right.32.disabled.png b/app/ui/style/olive-dark/png/align-right.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..c448f4e449187f91591b3d727f224fdef1736520 GIT binary patch literal 502 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+Y^aAficpiru(i(`n#@wZbBayB^du&5sr zO<+&|?^-Dv;UM=*fWIb2;fce9Gv;sJrE}EuGR)DIJ~}g`%rb#-!LG*vD?W&@?BJGq z<)@`<^-uhW)vUTbHWGsQ%xP=_mi9$HhAsPM9mm?s*gS9%!LRiEBiO zV`)i7ei4IjVo^zEog5-u&wghk1yp1VQB+!#oXU_ont`Fkr eha~2u=f`Iz=jX-E*O&m*&fw|l=d#Wzp$P!VBAloI literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/align-right.64.disabled.png b/app/ui/style/olive-dark/png/align-right.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..bd9b9eeeb4235217ab140a1f40fb392651e4fcad GIT binary patch literal 593 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_zO-48F00}37Rba4#Hxc7F(M&82;A};*L zTdn;Mu-vSl;&XuIU66pKs9T`N$AgU?mFs_PO1U3c^V)**pX~JGwG*$eIz3%f{+7s{ zzh@8Zd$DTg<&BH;P97?;`EvKk(n!1Bn+IuCuN*N7vmai=Cv} z*DEqKtghes>G)So{*V*bpSLH;ZMZZ^zN_+pS9INvqc#akb?rqyHB6oMC*T}&*ttk& zhK7gY!oL`Su<>Cw2ZO<%Bqw_ZAT+4qWt=DN7hoFAi%5xUM2TZ*Nk)DVgKuI{ zNoJlxP-$^?e%bcZXJ!KBRYCG8i6yC4$wjF^iowXh$Vk_~P}j&Z#K6GH*wo6mdKI;Vst0D&*hVgLXD literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/arrow.128.disabled.png b/app/ui/style/olive-dark/png/arrow.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..13ad1ccc41bc041f508865a4c983b7e0c46e358a GIT binary patch literal 1774 zcmZ`(YdqBH9)JFZMlR#hjLl`3u!>v;jmxw$3NvV0MmE-#VH!q^88c(ZvHB}Qve-_j zh;}0?<5pPLf7$44LZu|@n)_v&l^mB2J3jkrUz``e-}m|6KF{;&N%uZRRaMea0syFb z&|DcZgttdgUbe&S%PBID4|Acr08pK!{5e=b#tAGMgAPEvi7b~4z`9I=X8?#H0x-t} zfSeD&7yN=opRZ(wT!Kukggymi-d;aDjuPA{&s-Q5xQtMzM+)(u6bo8df{SG%Y}{K3lzh)kLO zciZN`dxKY(@iYn$-z*H=XqgUTvCvoCc8yEN?i{SDVAMMQiZM|HQ`cHPesr9x(>z$9 z4non1zT;PiYP4^>9tZnIHWtkW#b#pfL`bEnUAeg~qq==*C$qt`xyD)ROI!i~?K=kR z3brUZ(CwC5<-Wy)1!)4HRho(y8drvMoYBUEQA-&XPcSbnK)JqeZS9(x?{|Pme=h03 z^x;J4Tl>0?m@!^39sWWbxaxVB*93 z9-n%zYE%yfNikUq@R}r?IwYz2`IbQ4NMZeYzqe!BpkdzIx*O5HdrDE76`d7&oH!Gz zY=i9M7(?8P@jH~QGTmr1G+8gZ>~X{f%^4KA7lzo2CMj1?KqYV`r7)oZ5crdn6H3b@ z`tw6Cln8w>PHMi6y|b{Z--inAIDe!wW+ zQ`CMx-Y%7vdjvDlgu^4MCmTha=tyz^hJaSLSCGuSC^?d9=hP_r*d5Tn2)yzvo!*IL z;$mX?4lZVf?~->cB=XhAc*$k(`EJ;7veT`)&QYVLVm!=CKi89~1E*BIzxc2O$gjYM z&`1bPjUx|^or+(RQ~znN|4w@j`8KNYJomy`iXx%2H`yrB==-++RX4Zl%2Pr~tAiqr z;)>!#5)oW)CTTgS$1zR2(xOdabJO05o(bx`S*b@=khXN4!D9>Kcjyq6WFV;jv5X6y+5brD0|b&W?D||=qT6oAr^U!Xzb>$B=ZEu zJ?HPV<_@UK5yc2E{_JYLZMS^??0-;8cB9#Yb|0$3j1?+djTaGL=XtL*DBp5pq~sC1 zLuy^5pr60|J}L6qeBJ;v-KMwn(YXuc7SkUdJQdGnR<4o0H=4&Gc^OtNo60q$mwCv@ zHI)m@KTiCR2>&7wI2(UTBK>!fvTT23DnFx7_v;@c#A%-3={hPx@`e8kFq;3(9M?%-t9n~4Z4jp0RClFT`IX+s#i7_ANjK~Nx8HwlvRPx9>eyR zYqGx=D{}J}xx|P#JOQ8w3q;{j1V)T7f+wzj)^$zhf4S|S4i>S=ECE{vz=mjJV?ngG zuyH(2B$91OWNU~0vICKrFwMyNM}f;b9Ugl2{})sn=WJyK?d=QHP zM@0x(!F;wQPY`zFkFRuOA=|%0F#;AFa6}?L*~*H=<8paXLd)3jh;T0Zba?P~+-jRy d9S@EQ;{}DYcu}W{_GQcJz{BmBtK=~A{9jEj_+tP7 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/arrow.16.disabled.png b/app/ui/style/olive-dark/png/arrow.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..96e6170ae1aec57eee637498895a70905d18da19 GIT binary patch literal 560 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0vBbU(Z}4k$F=)5S4F<9zLe-CTzp1YFPS zG_g%>xE1+xh10+P(Mjr$n0=I0LKWh=b0+3&x|f#l{LEfsZibA-EuLp%zSDwXgEIf(L!B)#w|6*yFM8+RYg8Mu?591$w3NffYp<`#%vjOp5O2P^N%iX4 z?J+-?e!n!1=KB4CEod$Cfg^JdWjzqBs$j2<;7#CFoscE^zg?Y4?8wrCeD)^WwT{H8 zyN<-0*o1c=IR*74~?@zOC0X0a1YzWRzD=AMb zN@XZ7FW1Y=%Pvk%EJ)SMFG`>N&PEET$QYuiv?w{1A)}k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+aiet2;l0|TR-r;B5V$ML089sLhE2(<3k zbP)`2F;tXja`WXe`S}08@P~v)t=vM3rzuEC@QdC!I_>VZ;#cp~;_p|_z3FsNsCc37 zu9^>8+Vu_zYprAoT~}P)(;&nk%697<`;E8XzW6o2VKAOJZT?i}e9OcI(_I+^3f^y; zl$V&kbp6ylT#r@>zH$|0m{M_JUYE22yF%`-syX3~F{MtqPr?}jo(1mSHdTk~(W`=J z9)_^usm75EKN9EgdFZ8{YGU=CrjxQ)zB{_nVB&d`UGZ$!U%In7yq&Bcx9xm-)vLt^ zOau%c_3n&z-qhN$aE(jv9_gs>>@Gb2-#yj5ugA;gFok1=;jNh0)7pyHsxrR$@8mFb zrbOnd4@c72?mxYm=y*-2^Q)l_@7X2Z*Y2_lPirqKVER^cV&Q=+27m9rw)@;}wlndZ zMXeIo75&Jb(CW8YHR-^>6)ACzC~+(;$;dBa@J%c#$;?v-DlN{=FWY|l%uJxXDo8#h zu_VKa*w7#LU?n_3x~YXcbu23_lw(oi(y=BH$)RpQq0`_rsj zKn;>08-nxGO3D+9QW?t2%k?tzvWt@w3sUv+i_&MmvylQSGKMHBElN&h$S5f(u+rC0 z&d<%w&nwm|&&NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_zO-48F018SP->EalYaqsQS_x_h1BpT*V z&OIbz{!GPa4qLrqj@rNf^=+M;0?LML$M`*2STc8i{py_PSZ)69R`zel`~JSSU)xsS z+kN}C_Mg`a&rDz9+%J`06CB9OaOu(AuZbtpOXEZi*gl^6^krZ(Z{);FjIXx$iJq_2 z-de=?uTS;f>BB~hmliKRxXfnlIR~b%PWMj4lrk{Lwq4R;KCs8>jPZn2o7UZpORmn^ zGbtz6R>EV^X@_U4jV8EEUTCvUh~ZgJzAtjerP=poXu86| z_uZjdU4|2m2sQ84ZePTsk{Dy=bUFL!VF0T_5_cQ*e z%1u1fXJwl3N>)Rhee*tXoePc@fd_l4vuYIf7Hidngzsd0 zRdP`(kYX@0Ff!6LFw`}&3^6dUGB&j`G}i_)3=F!~E2W`m$jwj5OsmAL;rFLmw}2WX zK{f>ErERAdZMR9cjr%8*e~QedU8pPZkY xo1a&#SDu-jnVXuDnFvy@58~;EB<7{($7d$z=f%y}m;lty;OXk;vd$@?2>`#PtVjR= literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/audiosource.128.disabled.png b/app/ui/style/olive-dark/png/audiosource.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..ed5abe27cf218651d3a67e9b4f326724b063d76c GIT binary patch literal 1226 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49Y_HPJMd9z`$(j>EaktaqI2f_rXGr5(hrM zZ*FrH`x}tu;HdIpOq$(X9c$i8S4tozh`jSr*(tKcb)C$KMVEUuC=@Ow&?s^ zoeBt8B9(NvG0@pNL?hVc<%MOc(>WPee3+xYfA5VYinCZ6#8w*po^F2b2A}#23x>H% zy*8eo?R%5^Zu~*3g$KSoue@qryCOsLID^)%Be!~O#hy8Tx5}M+?ZQj{;HUo%oIPd9 zdO=9~49~{I!j4=ueg}Dei!b#@L*6lnh*g^H`|HlPAb8J%hZfNtQV#i>56=C#P0+Bx zF2VNCoO7HFhnT!0w}_}V_-#D4IOkTEfI_#ieG-H2=6R{>m6$Iq*GaE#l@e?ai%8Xb z9k!V9f|B%|v-|FPFno~<&5PV3!`cuQv2m5}Oy-QnsUM8o@)&-JSzKn=VEuV9!v)K* zx7m~27_@XYCCuF;d0+zTxjjrgu@BCuJ2*5N*E4*a^HYt%>TK1I-tG*>Ek|rp(~_*_ z7&BjBI$eKf{`?CPj1Js;dQydcf0ua5P&aS>7k7pWLZYwzW-~>^?K;LNaMxv;se?&; z(pmI(;qUt!uH{*eudo?q_$IH!(hGnpV2pm$88@ z{n}kKR)N&nX>oon6X%JEr~1zhnN%Ai=b)F_Qmb^Xe#VIp@72SvSZ?vVA;930I=?(7 zT0NJIK|%iJlij7a+87kXuRNOR;d`uLXOi`_iw81crjjsg5lEc}4LTn5>r_Fui-rT{! zu*7xl>J~nNW}ZS&X>oRb+4j?C zW&-6^LGmeyC8<`)MX5lF!N|bKNY}tn*T^!&z`)Ab)XLC88^|y)sCgdLkD?(rKP5A* z61N84U9XIR8YDqB1m~xflqVLYGL)B>>t*I;7bhncr0V4trO$q6BL!4s3{g~Cl$^?t zQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aQmzl;>4zldrRT?ICggTe~ HDWM4f`RLo7 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/audiosource.16.disabled.png b/app/ui/style/olive-dark/png/audiosource.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..9238748e567fa574ad559fb42e91b6c9598572de GIT binary patch literal 517 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0vBx_9c+6QEFur;B5V#`&!iHu5<*@U-oZ z<6-M`J)>gw{=dc%rLxDJzE>VhDlVK+l6mQW_V4W<1ckJ-ybkNxItWcHmWtoc7!?%z zoUK7Bt82qS##@t)`btfgPvQSyzrlv_UDxOAjmFKQn@*o-*;h4TX5-tdOCqeo-b}9* zXOHd{HI`*9`~b9Hq{KC%#Idv_Bfp5jH?gQBGfyF?v^YDzZ2RdmGlBA|Ao-NUl2ohY zqEsNoU}Ruqq-$WPYh)Q>U|?lzYGr7l4P+P?)I1OBN70a*pOTqYiCY8ju2;rD4U!-m zg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3kpe0*hA1j6N={|SC@Cqh($`PU&&|!x vE7mK|%+AbBP036IDc1+_^g|N!((~gplk@Z9=4(sbP0l+XkK?R2Nz literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/audiosource.32.disabled.png b/app/ui/style/olive-dark/png/audiosource.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..b0c7c284ffa01ae2a6db515b94b929a6cd18034c GIT binary patch literal 609 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/beam.16.disabled.png b/app/ui/style/olive-dark/png/beam.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..37b73863a2216ea4f0f42f6b0dc97e413a57ad8c GIT binary patch literal 560 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0vBx_9c+6QIz1PZ!4!jq__S?)7706kvIf zKeegCX+p!6V}0N2<&#gwHwg4aBwTxB@vccgXHHgny3y|0ybANbeoSo^kA0KGKlfBZ z3ez^ZuLsV^9g>uEyZ13sG_qV?$~i?xcFM+_CuuIdk6H88V~)onNW}ZS&X>oRb+4j?CW&-6^LGmeyC8<`)MX5lF!N|bK zNY}tn*T^!&z`)Ab)XLC88^|y)sCgdLkD?(rKP5A*61N84U9XIR8YDqB1m~xflqVLY zGL)B>>t*I;7bhncr0V4trO$q6BL!4s3{g~Cl$^?tQBqQ1rLUiypPQSXSFBf_nVp%N nnv$6aQmzl;>4zldrRT?ICggTe~DWM4f literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/beam.32.disabled.png b/app/ui/style/olive-dark/png/beam.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..20b0a43f90b9ef88c1f49da52b616704c0da6e38 GIT binary patch literal 685 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 r%k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+a0^6a4^pwJFa7sn8f<8P-L@*P&-ag7g{ zyw}{rf8y_cTi2b8)sim+grr?qJ=+(ps&}|{{rIK}!fpB43>@KkJq#6c&8PQllD1_& zu*co~Swv@e+2ZYHGyHt*J((vSKX&SowjRUuCywt{mF+k**;1y(bxvv1a;xYipVH)g zj;(o}u`i#qGiS@yrJtP^T?m_gDqHAwWk}`anwPy*nIGJLD*t6Tb#lJMH0EkWE%lAH z`YOD)B(I$ExYM?ENS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_!3%vXkAWME+Q_jGX#$+-7+=0?6I0}O zp1f)h+xqHEe?*Dmt(ks;FJ)({CiQpS+O$hR_u|}T=G@23oDO}QQY_wC$*dvB8t{3xDl@O=YM^T+2_iGSKo{P-UrKY>BWfyqOA zT9^)pJ4nx#q|BqczcYTTKeW+hR%K&;!*{p41+stB7!;$LertOe>T_^SNQ+D06xh$I z_wY^26p_zN?&?dH%n;WpJJfr;tmy+&*6u?o=9+&u0z+G*#5JPCv9u&3zlgy%v8W_7 zPa&wZI6J>=`{^??f%2*#`IN+xRIB8oR3OD*WME{ZYhb8rWEo;$U}bD-Wn`cYWEdD6 zY?tOn(U6;;l9^VCTf>H1i?;(cNP=t#&QB{TPb^AhC@(M9%goCzPEIUH)ypqRpZ(58 z3aH2!qNubeIh7%!q@=(~Uq3lNH#a}8Sg$-YJ2N*mB{LDETpz^K4@t~R&yUYc&d-aR SuQ36rox#)9&t;ucLK6Uo(i}Sg literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/clock.128.disabled.png b/app/ui/style/olive-dark/png/clock.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..29e16d76aefeef7639ebe19b04cd3ec7c9b5f6e6 GIT binary patch literal 2619 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 H;qHF`rmvz% literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/clock.16.disabled.png b/app/ui/style/olive-dark/png/clock.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..123c75def7a7871bd4bb3da7fec05c81843cff01 GIT binary patch literal 639 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0vBF<%*e5h(P|)5S4F<9zPL-F{Aq0xS>m z>!&cgTxjd-YU$|Q`u@L=RBpzSOKz5d=MSEa(h%>w{PxYeH)(1)6W!gkGIK@crOoPQ zA6Gjz+pDVNzp==K+Tz&Er@Xbw3rofGSt{QIh35+T&J*;%X>59BSKs%h&ULqPO=ip# z?2X=fs%4Vg=`1NM>zcTs>lovrKaE6nxDo+?9VyAQt#Tl$Hj;1m~Y5OR2bZ?y#e&ONQrAiiDPL=Mt%{4Z(>nN zW}ZS&X>oRb+4j?CW&-6^LGmeyC8<`)MX5lF!N|bKNY}tn*T^!&z`)Ab)XK;}8^|y) zIM^=DjiMnpKP5A*61Rp8w-#>)YLEok5S*V@Ql40p%1~Zju9umYU7Va)kgAtols@~N zjTBIkF+@>mQF1CnMoCG5mA-y*er|4lUa?+zW_D(7YD#7zNVz_Uryr7-m!2P=nVg>& TH(z4{P&k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+Y`zB2qG0|Vn9PZ!4!kK;?Ho-exPz;moV zdxP+?eLA*BE~I%Z_tmRx*!SQ0iPQ4S7nVJciTd84ey}Wn|MzjdgMH~27|X6-Qhzx) zj9b0Ss!XGc#n;J$<;{wllQxGMF*q;<1szh}Au2iZ)_0~8Q&jb~e zlj;PSAK2{Qcj)`S=%cl-?;MSh;`2JkIO9Xjf%1EfZ zl@~WIiU&P>>SX7dkrw~+HoSk2`{q&icKzUV=d`eg5-u&wghk1yp1VQB+!#oXU_ont`Fkrha~2u=f`Iz=jX-E*O&m*&fw|l=d#Wzp$PziNonr@ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/clock.64.disabled.png b/app/ui/style/olive-dark/png/clock.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..0bda58cad59cdcc0532a52c64026618f52b9917c GIT binary patch literal 1466 zcmZ`(c{tR082`>Ray6*LBFvLg!k9HEv+BuJGYVm*Vu&#_7{~mkIUK3oVZ}pov+g4# z*~&Gnn^2BnMnchrC}Jf?MZ0!9``7-le|+Be{k)&g=Xw8oW6wLBLCUGi0RWH$yp6M@ zpW22DLQ;WO14&X5zLxfu08}N)f2T-EIEspQwg=#vCsWqN zN4N}2w2+ER(@W<3%o8oubu(Z}iQ0LyG45DygA1EzUN~>_b!0WN`bd~#@4Z4%X=5VK ztorP)*#d?zRsn+VCzrjB53X*n7CRT&c03i6d>!HVy!z4Bg6zRmcnp!hThkQlb|Rsi z%>ApBnF~J07Z`kOE&jV|wW?h@SmlQF$!r-EGW&F?$Y@fmoF{+`W<`Os5uNE_&nLy} zs=VGTr@1T2=x9*lorTjJ=|-m?whM?ttDdHN^aU%L#J8>QZ&AEDg|=;BQHjwzeWXxy z>hgeJ>W$nYQDVyPf%i{*>iaI%vKWs0Y>1r{>_ml8l{fv<2wN~y??Mvkp!Qn3yv{)n zAG%h1W}Ls8P6pT<*N!GcGUc>i7H`(5z>{*XylWh+-7>osoA9uU+3D zE3KQk`>`_-3Dfe|@5O-CIj8vghd$Rz9u{q`E|yuhyDzNpJbm2^4AdveG$%!fe0E4c z<2wI}H=*=+d79vJAd*$FMKbf$R7lPpy5D5lj)*mx$^FtaK=&j|?O8Z(4%Ym>zD03> z$8=ETG`f7ljYA5ilI|$IFcsx?i1rkgAtM(vDsO$bXi}sKJI`4W>SodLCI04|!D21G z{&Z7DU{0Z&FuXRtFI}*YudeaF5dMZf#izCo`9Joj>o=PS18DYj`La(dX|h%sR=__# zOBB%8e_z;EOOs&|d&Y*|vY0Ps$T{Jb>KQ{{%oSC2z&y50<%In=%alN|({z5bU{%YZ zxEF^dj69lMb*vqBzffw|pLtcOpakB#JovmGuEt8n*pHcvUPtLTq^W#*s(bW|J2v!y zQ-dgC<^0trknEoHBoyf%&p&kfn5%@qL1M|9GCnNWv=Zdt|gD_2eE-Yh0SF!QO-P002Ex`FU*qY zhqiSZg-gd#*>p(*#u#H`L(Gqc#^yu}28T7p8DsP%0|wI(qapvFKoCS@_=Np`pmMyp zUJ_8-zTg7+a6>3;ItU2~K{J>E94duHM?-AioIfqpB_`~@CLWtg2Yy^G3uk0Rg@S@0 sCI=nD2w()!X$;D?-DsN`5h+Yx$df^Zn3oHVBuV0cVC!J>z{)G~AH|1%rvLx| literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/copy.128.disabled.png b/app/ui/style/olive-dark/png/copy.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..bc05c417fc8e0a787161d1e216e6464f907d8086 GIT binary patch literal 928 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49cPo>(bqUn)p3k978H@y`AfucgR45ZT{j_ z+(-CMh*~(k-~UFisFh>ex{#HH;-dBow*=gNdF01zQBkG2=A0ZoLT6e8Odl8J>6l!* zbxQ2oh2*~n67GGwwmWeW!^4}~wk=5C!<;|2+WybP-1ydI6F#05+s1o*=V#e9xr&eL zRWm-bM_dd(dh;1~z`1|&K+52H_&@1wshR!_Oc$6;xE#1I*!ceCzoTuPQ1SEczgPVX ztP5B(L>j~v1TsW5xG`ohN`VC2=Cdw~xW4~uoK2_p>pz@~U6I%AFW$H`Z5wC$>p%7P zk0kyny7pCHa_wh#c8#pq|J6;tRSlbfB9Y74HOl|1-!u=;o9fYay}=8`R19k<6qt2# zz5IvxBlBj5{1sflu!W%)?W!COk4{XFcH)cP&jEY=sGM0n<|s98Z)<&t!4@PhmEsmu;#yH{05?Te_^OS zc>KW4?|&~c-bsjE$hoIf?}%N+m(`mOMrOa3{GanqwYlmQF1CnMoCG5mA-y*er|4lUa?+zW_D(7 nYD#7zNVz_Uryr7-m!2P=nVg>&H(z4{P&Zy!FP0}ZHFJ!u_A)TFAAR{Z$@Z}okKlB-ckN~jPDYwFOmo=g-D!-LdU5qnKa*w7#LU?n_3weY6BSt2I(IJ_M>RX%}>cptHiBA zZ0!nWpaw~h4Z-Bu8ABA67A2=LWR#Q? zSn2C0=jZ0;=N0RfXJ%*Srlw>jf|Tonc={oUdFlD_naTNiaq~4M0JSrCy85}Sb4q9e E0LBKX=l}o! literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/copy.32.disabled.png b/app/ui/style/olive-dark/png/copy.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..ca935f4fe2944d0583cd643aee61402d9c530c69 GIT binary patch literal 540 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+akurA#lDAeug;uzv_{Oy$8ybT6Ctonl9 zOA`3L>CbFFlstn;<5M$>_(XyAolnlcJQ~R3w$o;b@j{XF+=APGIxSi&E5lf0c=2KV zs%O{O|DP_b>M>$ocI%3Mccw&P^s5D>uL}I^ShsAS9NsVgi2ny;!DjwfUHfOAZM?U|?lzYGq`o4P+P? zq<;|DkD?(rKP5A*61N7iwJVr`8YDqB1m~xflqVLYGL)B>>t*I;7bhncr0V4trO$q6 zBL!4s3{g~Cl$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aQmzl;>4zldrRT?ICggTe~DWM4fLl3dT literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/copy.64.disabled.png b/app/ui/style/olive-dark/png/copy.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..e137117d96663372e53018cb14bd4962bdb5ed61 GIT binary patch literal 637 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_!39oD701BKprx;Tbp+%irSnn&PNq3E!T0Ycw!0aVS8ElZR4{B=W~!Iykjs_PR<~z= zpY{TSorZZUSNh!k{d)(a{1SyZCifrR1NvK}#5JPCv9u&3zlgy%v8W_7Pa&wZI6J>= z`{^??f%2*#`IN+xRIB8oR3OD*WME{ZYhb8rWEo;$U}bD-Wn`!gWEdEve-PM@q9Hdw zB{QuOw+6AbE0}>ABtbR==ckpFCl;kLl$V$5W#(lUCnpx9>g5-u&wghk1yp1VQB+!# zoXU_ont`Fkrha~2u=f`Iz=jX-E*O&m*&fw|l K=d#Wzp$PyTo7U_A literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/diamond.128.disabled.png b/app/ui/style/olive-dark/png/diamond.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..ecea13a8d5266a241222717eef214c88c69bc47a GIT binary patch literal 1275 zcmZ`&dsLEl82)|m0YNoox(OLcpJ|pUh-Qfmk)-4(-m;bD3Ir75Iz%aT^Ml&y;!-!O zS(%q+o0gTA%4(&Q8Evg{TiI=O9NOhrHaVGNM!Ju)zxK!ec;DxJ-sgGF``5cOEoJ3Q z$}9>1V5TTBAp=9yQ`2CqtClqLF@W>p#qj{NRZMqF2^eR}5;MdA6a{0xZ2(MQEA%-4 z1#AF@B>-@%0q`@_oKIhd3Ami3l?ebG-5tom7}=1Rl@9=8yQiRvCr$;nB$-5FA?Yc^ z0D&Lg|33O10QgO!g!s(O4@MsSkm4WjOB^Ug2$eOti~~%=rMKM~A#5vALqTF1s-vRR z#pY+m6CK4r^;-Xq`*Km?vl?jMx=qbT_8rg@4h8t*`=7U7CLlbg#r#rGGn1b!+j{-m zGLoi8M+6ZA?{yQqT-M`bZ}~JP@%O=^A%fl&mc*p6=^HJ4Z{~uor4}0BSR%#EMO$2l zVFcWF638&vC0;lTN0A zwT=#ICBC&c4`C7|yKf2j6x*CS3+m0E$BTjJ=-QGT90GoEHNx|N!$~Gj1DTF0Y9_v^ zcRtbtr|nJ^q!H@p)S>k_TY`I&H3vjGL&+2X!wiuTaHuFz2grOhV5+I z7an}ew#_)^HJVx+gS?5EG1_o3`m5n1FYy=DC&i89Js@`WsWtWu+o`B`+no&o#UG7N z1umQLofdmRd9w0!ZBJL}A7e5@*_x5n?RP?J%UOrOwjJA7kROj4ik8dI1r<)-xj`Lz zNV_s_(be;Eh@P>s8YQ@Ld1L+r6}ijX>a;kQU)98xQqQ+KJfV) zzYW6^Bd?Fb(ZrA@>OFcxgFvF*v1_U2Vg&av98FrVlX{PFBuF4BuAUWZdG~2i3(O-f zY^S>D%|8kT)J+RxEZuGA8(|(Pw2JCt92W})iq94;woExER>Ruat!c@9H>v(YSj%Yt zTHND zDBpldhu8SM7qicuyPc5~cKUYBi?}oMJN6DL7wy9y(bptgYl<&0DfLDmmKsee9W$dK zU#&0fy#DikOb_zta;Ztdl^GQn01lhO31dfuabhyrY;NRYE{79}4Q%$uGz#*cfL1S8 zVW!A`O$A1o0w_%; z1DC~;>9tzDEvpkHIDb?laH>zZM-G;i5N-PdU!jyy)0*Un>nW*o6 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/diamond.16.disabled.png b/app/ui/style/olive-dark/png/diamond.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..527108611cca86f365a4a1aa62da5142e0360b87 GIT binary patch literal 505 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0vBby%0~4iw7pba4#PINv+bP^dwHhvmD* zf~SI?{0AM&e5|KMm=Z!{E|9bbcvvq=Yj_+D^*Drb~@ee0$thh}oS>W0`>hwYDibN?@ccAB~RqKK*XKs!ZB zTq8;xOG`5Hix_+pi%K%{6oN{Nv-8WgpFT4aD6a~VPf09EwMs5Z1yT$~21Z7@28Oyu zmLUcPR>r1QMuyrzhJiu)2Z8-48glbfGSez?YY~}U&Kt;w7MWsc_sSFtQ44$rjF6*2Ung9&-oHPIc literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/diamond.32.disabled.png b/app/ui/style/olive-dark/png/diamond.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..ce07a25f5dc508b0551067a7016678293d951f92 GIT binary patch literal 597 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/error.16.disabled.png b/app/ui/style/olive-dark/png/error.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..80ef35add37bcc061180f7fd85b7978a4643b865 GIT binary patch literal 764 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>|Or3{GO-fZ1{7&P6*rUTH|>?)FK#IZ0z{p6~z);u7GQ_~Z%GlJ($XFZ5FfjO#&o~W5 zLvDUbW?Cg~4UI-SwSXEVK{f>ErERAdZM zR9cjr%8*e~QedU8pPZkYo1a&#SDu-jnVXuDnFvy@58~;EB<7{($7d$z=f%y}m;lty N;OXk;vd$@?2>=f$<{kh5 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/error.32.disabled.png b/app/ui/style/olive-dark/png/error.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..e303b605d5c64fa075a487bf420bdc75de97ca9a GIT binary patch literal 1025 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10;zoc^h%1mj#K3TZf#Eoq zJjuWSL_qE;28JUrHbn3g1H(}UhW%h!paP)aX$FS#Fz#WPVu%8uY5&0@KxIIUK=l{F zT%h{XE)7O>#8KW$NviQ0MY}r6PR-P`7Ar_~nPJS8IY#`7YtlcHCwW&kQ zN4H5g!!`G6)bw3f_Wf5rsnVj;^0@HdgeP?=JB^z!)Gyk6@$Qyw+j2MWdi*9ytok>* z@6PfUNt%0r+3&%gIdve9hWyF_*8(6f%{VG)}B`X6$ETUCFU(a+BV@Aa-UQj^BEz^4rSz z4@`;g{p&Sh2hTjl4-KMD*EVtoyYHDZFX%mgScbzY=KfcLnWZfX^ZxC6;!v0Nb)QpR zTD*}~V6Rt8;F(uBi=u4XFV2XxtztV6K6&eeNk=dJopgR_iN1n(;CiN<^DzdOcP)v# z@6(_vp1WCNbNSXcUpMhgi%J$)TWB|H@7I@SDkkmU7d@-|Yx3Ibr?)-J?TqJ4(!Frs z#%%>KU`0w?BT5`gOEU6{7(A#@axJfx(A-#%U-Ta`RI%(<*UmXf)cX1=Ju3vLQG>t)x7$ zD3zhSyj(9cFS|H7u^?41zbJk7I~ysWB4dc6(xT*4hK!Pu0xNy}Vt z#~Bz-BB2vtHc;>k1H(};8z=%qr@$gW5~2X21;{=PQv(z^hQtPPfwDkzfT#h?26EvD zXwH6^;)`IzfqJ*W1c7EAfms9;2O@}35bY3?fzG=MHXJAj6aktB6ag}TCc{aH6htpX z94G}uK#!kgU|0pS0w@Bs0_a(YN(dLC5?L2e_7Vfbd9X5|I3(PFB-|D_0~odrtbe0` zR7pvYUoZm$tB9UFe`_QxtAti@2DnlA*DZk`%9o7(XKyqdG4aC$E5jJ~xkq zxSWEd5ethZyNs?hyRfXPiEz;OYM>h#7?Zr+T^Kr8Wj%l#&H|6fVg?4j!ywFfJby(B zP>{XE)7O>#8KW$NviQ0MY}pJ9O!GZm977@w-<|$4`m%$-vF%)%k0)kjat7RXTkF2$ z>aq)BuOhdGuDH5_qvF1~)`S25ZKP8AQ_?p_?|=DQ*Z6n!=I}E0mOuM%ZLiO{~DtkDiZN8uLrmm$f z``$G9y(=`GXSMLC^V~HWKTfR?k=zm)5#zw~E@bb)_s%$pjk{T@AEn@yym`@%a~*m-WP_FlXqto|jcWXFbZF7>pVzcJLlqm;gQsmS!^BAhwTiUgJ#T;KZd@N{B zv%O%sz@|c~dEZ9Iz~ism0$e8@3cKL1w5_MsX$xPDWILP9vx4c%-l=}E&(z)=ZM44b z|NH)x%S$*il>S+|@3&vd{D02>PYyfJKY!jRua9u1(VSW#Nt$2NQeCuEq7dnN)hMggM^mmB57qRVA}+(>6aS zDOdL{+*y`+r&j3pirjmjGM9ej*?n*R`gN>l!dDeNYtcR)EK;o(zeYT$(J`(nLGQch z#IIE>&E_n@w`bIMe|pyXEFdsr(v(Q~dn>(SlR|Q;-+NACirx8tq2Hvhg)@E}-uS6A zL)60S-pvb-7kXKKS^m2CBoF`Br?1nl9KQGG+g+LaSI_jX&CTAxY~6h3+cp2Y`>)xr zjsLa2+vn<$C{QsdQsNp>;#gXekzd5%n^;tmnWqp`TAZC9gP2NC6cYLll)3C8siEl#~=$>FX!w=jP_; v73-B}W@qN6rer39lG|=Q$@zJ4^ED;_wKI6S`njxgN@xNAmIyM$ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/export.128.disabled.png b/app/ui/style/olive-dark/png/export.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..66b37de64bd5f55e8ba7697fef2b04aa04d54d6d GIT binary patch literal 1417 zcmZ`(Ygm$J7=Awl715rfy;EsX4KVmYF8ezTs0lbYicsuN4xf8KlbB!@8`J>&-3ps4GRr4H6fb- z08E2}SP>{9h9Y3mm+#rgL;;)P&-Mr4rfivxheKydLQn)7fINHDR|vp6ltQKf$fg4D zDjooDIRL9fHMhfkPyw?)B#;Hbm(uk#bb>`ed$RzrDK-=&o6;tsq_HHJ9bo(dvH|O@ z{noBV*BLDYv-~4-hkvVObBN)j6VJA7F~Ln@hEuzDuKb;-dmoaIl=et(AA?p}IIY#h zdDfYo`TWPln&g?bH21kthuM+PYaKX8lF3o~0AEq4^|(bBn8_^io{EF}Ze*6J+E&kq zs_NF+H*T-ujwfa;Ds4l>eVgpe%htd7wlm#4(ATnJUi969x=d4lfX!=^|oFxDM_mFKmoIwLmPV zi&nH`>fjD?Cn41;zq=9d2d5GZXoiXDRfrl3Zh!23IJ2Of7 z-JSSv;EH<+YIDH_fG&AVmcwDC3|_QR7d928uNPE;_61@xooZQ6&hKu(e+)l7$>2pA z89}eK4xb*VcU5lC7y6sd5#ufMyX)}}FzN|T!yt1v!q>r5aB&ut5BT9%eCSo4@@Eem`WVbs!y} zaF{F|Ttp_|3VRe5gUk&S4}D<^z7@;5udw);Nul`Y3mfohP;Cjrt^r~|u^(_3Gi8F) zB2ccV*i}5iIikK^nhRSWbkyH-HS@(uDk~KT^x9Dn-S`|PygO0d6X^rZYXq@<#}!D^ zbi3>GM;xY z^X!t9kIpLKTH-FXr>VPOdxDzq^SMuv|obyTpib_xxTaAIvkp)30%M zRF4w8;$&o$hz0-jcabVz|Egmq@?u4UeAreF-HwxouI4Bw44HaQ6}bK|~p|<5~^8)7*k> zY2nNC2w=_u4GGd1u^u0W1OwPBOMi8R&Jx40tbZL+WXwkKlR9dIP%`o>QI*y%MLKK! zEDc21kg$#JGcxEwtiSmzIYf?j^G|+>`fQ-1GW3nWnPd_>;pP_Cy0|!05mF%wwbzRGi_@mmFn$I z_ojKcpbeEu?_*g1Cy*{o5c{{ZVu@ntmdk>SEFVX`ELCr$!6IXSNU3_(@`Pn6^; z6sMe@@gbuo_kT>;;)EoSDv^l1-P{s{>FL6ZEY}>qfS;a}$mbdCZidM%l9!Pp|TESs&;EpKv-r>!Z*w(!}RUG3YC>|xvHaQt+s@M;0U z2XAj~WVf>0GI@h3J4=CFy7KQy)2uUkKeyRyHoO;+Y_9%ux5@qTH{&4xWcyhwe=@c^ zD*bUe>Zu2GuSkh&M2TZ*Nk)DVgKuI{NoJlxP-$^?e%bcZXJ!KBRYCG8i6yC4$wjF^ ziowXh$Vk_~P}j&Z#K6GH*wo6%L>tI3Ffct~FM*;VH$NpatrE8em#OVbfEpx0HU#IV zm6RtIr81P4m+NKbWfvzW7NqLs7p2dBXCnnvWDHSMT9lm1kWo@nV5P60oS&PUpI59` so|&DQo0^iD2vV*O;^~JZ=B4MyXC~+8#m(240MyRl>FVdQ&MBb@09j?Z4*&oF literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/export.32.disabled.png b/app/ui/style/olive-dark/png/export.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..8bbdd15b211b6e4d5a78ee2fb2216243879cd3fe GIT binary patch literal 687 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+Y_Coc^&j#19j#WBR=_}VFk`OO9bt@g@G zcD$U_v!cXn^*8ws|BvU$-d-5Y-nL39I^kt0hl2ACFpC19N_!w2>Raa#pPxy}$^;E9yDMwB>~mSp4?G597Hm1O2A z1eF$N=a+3ieP$+5UKJ#tl30>zm0Xkxq!^40jEr;*40VkxLktY8j7_bKOtgUv0|V0& z_7W%>a`RI%(<*UmaGBb^1gJq0WJ7R%T1k0gQ7S`udAVL@UUqSEVnM22eo^}DcQ#T$ zMaB?CrA5i93>hUQ1y=g{$@#gt`FX{9<(b);xv43ci6G_rAfA3mVqSWFd}eZfUfg_* Q2|(=(p00i_>zopr07{qjR{#J2 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/export.64.disabled.png b/app/ui/style/olive-dark/png/export.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..84a5a691ba08e4a6c1bc0072575c9266231d629d GIT binary patch literal 880 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_zu?Bu0^#xdUaba4#Hxc7F3um2$j5!d$# zhsDG_JVJQ>asK~*X=~x*V+_`rCc6|3RUb3SEt#@!y=KV7%|U8&=iQ55Cfo4e?}NM) zv)c>i6NbDSc^eJcUfbV4w7Ps+-|sJb&%SJQ++(xJVb6ium(7J|`eq-H-L>@p?j5#^ z9Ns)!^=aW|wsr^AxWz1QaE9}yHSYZ=+$Yt;wDqI#GpRM4SC0D6$Tr~I@KN}f z6c1C=&+b6e&3BuaPCda_6IP5^oUGy&s$#*}@bw>zr0J3VQU-Psn~Cw8OJ!{)&(6O5<3NAA`|X-{XETH6u%2U* z-0*Yj@?Wjmm+JmsJhMkiDluZQIg5ek4u`^Lp{!@3&i0+`FfPAlmpdVs)#B1Tjz<^& zY!yFY=qohCsbXG8+nQ`k|Be|`@*mwz_k8{OfV@bAT9291hogOUa&ZaAVp0?1P0unV zHm29SnHcd%*8kyctNF>iJluP3^k?ZbF0cfHqT-|_28`P#`3*?pPPPp$tY_8A!aA|m zQF1CnMoCG5mA-y*er|4lUa?+zW_D(7YD#7zNVz_Uryr7-m!2P=nVg>&H(z4{P&NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49b$8652To49sqxE{-7;x8BZ)_78Rxal0+?6f zQy9CCCT)z+5ksQ>*caCC|I%m0eI{t}g2SBdTjuz07v=r$*0BC^!mo3SWy@l<1Ai** zWB$;`=FJ=?v+1#(vbg?}a#oWFxlPY{e9MJG8z#Iza6Pg*qy0_s125Z$5>LHL}YxT?3x*J=;9*Qs~?WHnY^8~<#w{`an_ zy))tsUQIPU+*U7Hz@Aj+X!z;7&&O-)e@1PP_4v8?@$QwIAEq;FPWW_Ol;LvCm-Wr} zg(iPKF3!*wzUKJLb1#2P=3todc=P<}nj8n_hcH~Jcpu&}{ZPxFldKFntn>LMeLT#; zVK1xlxLrt~%F5#yzdD1KrEH66z`>UaTN+OJvOi>XSh}p)f=SCn_J|OJ=uEyOt`$d0 z1i~Fymo?vDQuzE*p|xSn@@5kzqj`KmoDDw9o2M{sn!|UAtKrSE<}XaU?*42IIHIh&hkGNb@ls#94=?Z|6gVuR@SIiee2Wi znzQ+D^luiPx*g9SuejjsGHcOk_1*L1946boT>GBSer*HywmbfbA8UVTvi?arUE1>W z`_tt@4}P9Ae;8e_VBg#D;(wW`oqcPA*zI>t5&r_}au_8`Yk+>Vs;gq0S^8%SlhGTX z)|8tcgE>!Zd%Rq5Lg8_LMTOUW^3e|8WbM~AaFzU-!K8KZV>0IopX2??3!G%__cU~s z{<*-Ub^YUEt`!N#o>zjC2hQb&V`T3=FJ{O|6VfwSf!+gUS0%)}Uy}%}>cptHiD0(W4##paw~h z4Z-Bu8ABA67A2=LWR#Q?Sn2C0=jZ0; w=N0RfXJ%*Srlw>jf|Tonc={oUdFlD_naTNiaq~4M0JSrCy85}Sb4q9e08P&dsQ>@~ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/ff.16.disabled.png b/app/ui/style/olive-dark/png/ff.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..4a23073b59aaa95463844277bc898bc38451eb7a GIT binary patch literal 532 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0wsu#=Yt8Q1LT;uxZFe(8mcT!$P4S{~M) zcix$hnJ(wRwDR-6e#M9z8L6s59*W7uaYfM?6JPF2{cgb)<{tQRy0WY%|GIDIgr7Sw z@qM}Vob~yHjk4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+ajDWRPM6#C`q;uzv_{OuH9@52ECuIGIo zvrBYyPh8+sxOBze|Mf>wnO!%mz0fMc>>72Y3ds*Ur-8YlNnYlscL zbV4ot_b5xawZ=PHi|J`)@8oCKU-xv!^ZpwKlh+F8SFTGqy1e53`-)Ww?z;AVKN|SC&8~cUex&-(h652F zp01hqfOYq}l+!-5jvUep7kj(qnX;hzBPO$DPpsQ8glbfGSez?Yk2giM*yfn5@bVgep*R+Vo@qXd3m{B zW?pu2a$-TMUVc&f>~}U&Kt;w7MWsc_sSFtQ44$rjF6*2UngE5F^yB~l literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/ff.64.disabled.png b/app/ui/style/olive-dark/png/ff.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..239cf547b24f413207bc504fc222753b34cb954c GIT binary patch literal 839 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_zuJteer7#JA0dAc};WZZi@OaNyoGhRD)W>hLwKL}v5cpHf z)Uft)Qmen)ownmYl(^&%l--yYwKG}3Zqc^sKN4Qc{EMnyD(@z^KkgCtE#vIdbE2*{ zZEiXtZt{FCw`^bT#Zbp5++CB@SI@aQYjx8R@p_x=f|T9w!Y7^(7j=!AbE{}mQ}cSE z1~uE;LLyo}vKS*0&hxFAxaNcUdqIX93(~a@Sx)&B#~ATQCCO?><$i}dB?X@inI6pN z%d-nx@a?65KEqbOc9TZW@_a5X`Itq%M7MR>-NwVzfw1V0UB zv|QEjjknA+6{jC;dAs~aMWf;K zOSAtUJ*ZTb%h#>Z{h4_`e0RM%+!%Tdx=bx-(%dEEwL+w`B>GMSeC`4hr@ z<=V$gCeyN-Jq~AO=`{^??f%2*#`IN+xRIB8oR3OD*WME{ZYhb8rWEo;$U}bD-Wn`)iWEdDs z-fyx7MMG|WN@iLmZVitf^#}kpNP=t#&QB{TPb^AhC@(M9%goCzPEIUH)ypqRpZ(58 z3aH2!qNubeIh7%!q@=(~Uq3lNH#a}8Sg$-YJ2N*mB{LDETpz^K4@t~R&yUYc&d-aR SuQ36rox#)9&t;ucLK6TV_Cgr| literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/filter.128.disabled.png b/app/ui/style/olive-dark/png/filter.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..e84db8c8701517f7300d8c3a66774329c81b896f GIT binary patch literal 1128 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49Zd$1gowAHC^{~aSW-r_4e-BJYh!xmIql! z=1-Dlw0A!8+n#%40bhskjRFn@YqPe84DB3ej~QFvjotiuU9wL0>V3Xuo3`9!nCPJ* z)ajx$@pBK)-U%$+dyaYAq=x655&V85L3t&Yg6&~by&HE$Hy;hEdlpwQX|BHUZ2p)B zR;m7FVhr6g&;Iw`puxT)X}jsk)kO{7W#N-k!k;n^yH{0ihE_JLf3r^Q z`4Ril^4=rX-McUS zIXGFfe{ZoEOaD20Mg!(1;m`g|K64&C`NPz}DJ*hEpJ|4Mv9_^Hfjr6OTjZ{m>7 zviP|}8M@FgcgcrXXx`KAb^8NaIX6qk`ayGvQ1M0vcz-nG4hc zX0PXX;IY6WUi3hxL+L)F2Ij_3HKh#6OkaPpF|@I;efDMO;qZAT%_t!tan_tUK+Rxw zKF0!&1dID34xI-|_8B%XHGZrqZg6Az{F9G?mxb?hEQ6cSjx+LmeErOe4)}icE!X=z zmx1Bt^?T(njPLV4xL@wrUda5xdih;(aUT%WwtSrJaLDW3U%u<|2iSi;tK4yq!LIYRe|=T7*sefQ_B^H~kP)N|ii|5vBM_uJ|gkoer6 zQ?^T2efZ16sFL_o{-Bum&!e;7f0@3Re=E^|%m1!|B4*$|wcR#Ki= zl*&+EUaps!mtCBkSdglhUz9%kosASwkugM3X;E@2LqmdKI;Vst0ARhU<^TWy literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/filter.16.disabled.png b/app/ui/style/olive-dark/png/filter.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..9400af64f6504b904d550501add6e1c2e1d62dc4 GIT binary patch literal 520 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0ws^pw!f0Sc9Sx;TbtoZs5Nm#f)9fGzzg z%kBhG0iD|a=|YAsDp3&`%CnW)@4cKG_H$Kg`VILVoeg#;l}o0aV`y`CnW4a#S;_h_ zI%-1vTGgYR*T1zbNZP1eajH$RP%i5Q!;d#Ngc}$ej^_S!Qur@;Ejw{pf8XU0?X&Nu z$$eryC@td|_D(1a=me1x*N76w(vpn)A_m{YqLR!!g`m>n?EJFrr_am;%BzCpQxZ#3 zt&)pUffR$0fsv7}fuXLEWr%@+m9eRnk*PM2VPG(MzsVXD4Y~O#nQ4`{H9UIM1BwGl zkPX54X(i=}MX3zs<>h*rdD+Fui3O>8`9k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+ajDWRPM6x!(N;uzv_{O#qvT!#!q93B?C z7KC36J@~y|rC#k|5-a=0%cU6;kEofNGs=F^TX^`VlQYwOxlHl7hKAF6=P(|N-M8`m zS}oHaulj|oSz5)Bg@xxCuIc#v^t-~?bHuouf%)MRxd|Q>Ke-vWw5PqSrSNz6;nkIzib&x@O{F#)KZ!PC{xWt~$( F698ljyTNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_zuJteer7#J8mJzX3_GVZ;-c|MEDP~iB- z`yTQO*jwk_ioXB9QiSEd2$xpGh3-?wCg(&=K6}QZ)Ar1qMW=uL<)}XKj>*o>U+&fP z#t(glaa!W~HaYdKiMnBbuCq`QHg^QaB;2ZqLp>5NlY!sc-X2+XK7bMQ!b&dR{(I6<6o21{TZ zM}k00rQrexf#;&TlelK2e(!sP8T*X%RFFUw>ZGaw}EBO zeBJ=t%&p8akDt$f%b0$4+8w?NiC*e=SDH0g%5GVn#W+1<@3Oh~*0FvG|HBvm%jU}Z z71KCoFx*H`-M9bi$Di@VtS8Tuv!?~hfucgB#5JPCv9u&3zlgy%v8W_7Pa&wZI6J>= z`{^??f%2*#`IN+xRIB8oR3OD*WME{ZYhb8rWEo;$U}bD-Wn`)iWEdDs-fyx7MMG|W zN@iLmZVitf^#}kpNP=t#&QB{TPb^AhC@(M9%goCzPEIUH)ypqRpZ(583aH2!qNube zIh7%!q@=(~Uq3lNH#a}8Sg$-YJ2N*mB{LDETpz^K4@t~R&yUYc&d-aRuQ36rox#)9 K&t;ucLK6V4*8~Ir literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/folder.128.disabled.png b/app/ui/style/olive-dark/png/folder.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..75fc3e9243d02c6ef9b1151caa8bc6b4bf394a32 GIT binary patch literal 841 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49Zd$1gowwFfi`$ba4!+xb^mquh-!K2G@tP z6~w&K|K4;G6o2q9T=A|`?(&ITW_&Uho*6B6=N4Pu-=MVf{T8t^3Y{vRlYnT6W#+NE z3)^p|&P}~#9s6>Y-trog@Lwk;GkrOKGd=P_RV?3G@!A)&8Go6rckP?6GJTJ^_^%uF zZT1g#Cmr_}t9&W`Wn(^Tg!taHP|h~yDb@d1dtdnX_-eaPz`qq!)gLg0Olsf>aAh)c zVC8(lP{Cx!FlRvk8ekmsmcxD3gEGc`rO>c4*kmZ_3{l zU;Px;$evkiUvX_Gi^sH^=d2wz&8%)XxLc-}%i#0-20^w3>=$?(_!mev$T=7@*fyjw zR56@o_`)!Y@dcv^^9AM%+9=4ia7gv9-81?9OGc}zY{B`LndiJ*>pEu{yM^6@^aZC2 ziyEHII^3-KqA26n!OeYt-R`GMKPxN0+WTkiocD!4et^Oph@L%Tx8<_4x%4I^5g4r^ zC9V-Aj-@3T`9%!AiA5!uc?v-L1P+nfH zmzkGcoSayYs+V7sKKq@G6i|^dL{Vu`awEaloaXvX=frx>T!Jp@e z51K#yGu)H*r+ZaHYh$CM*t&*B#~1&7LsWG#)IJ$y{Hf=EUYqo%2`Jpy-pIbN;h~kV zqB|cy>x2bjM-+e0`^c@x%)!hMv`0YtjBUtkpba7=t`Q}Ur6n2pMGU@)MJ1Ve3PGjC z+4*JLPoJ3ylvf4GrzDo7S|t~y0x1R~10y3{14CUS%Mb$tD`QhDBQtFv!@yusxSk=3 zhTQy=%(P0}8ZL89>ji3%1lbUrpH@mmtT}V`<;yxP?0f2 zQE5?fDnmv|Nr9EVesX?pZhl^|UU_DAW^QUqW+F(rK8U9ul9-pCAD@|=pBFb@V**e+ NgQu&X%Q~loCIAb^mev3O literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/folder.32.disabled.png b/app/ui/style/olive-dark/png/folder.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..54e609af6acaa6b15a48b330ec50d61b338e261e GIT binary patch literal 522 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+ZEL9pr?P^i+=#WBR=_}dAFTnz>SEb49n z7qr%Q{P@2=;s=|xqFHCJ!V1HSTg;!zTECIyII7WbAt^J@`uLh_Qx-5CusO2uXq%pY zfa^9>=NH8+g(lx(1J(C0kvx34COJs&u7Y3lNlV4bx=sec4hNR-#{W~lE>AdE+h;xP z(zing`3_taJiX}!S0vC8A|mQF1CnMoCG5mA-y* zer|4lUa?+zW_D(7YD#7zNVz_Uryr7-m!2P=nVg>&H(z4{P&NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_#EE(lg#0}37Wba4#HxcBzPUcM#+k+z5H zS<+-v6gO3I-}_&>9zDeGG12?>ps6a&EjCB$@n%y^2|+Om;z8!0B5+4~dkxMwB>~mSp4?G597Hm1O2A z1eF$N=a+3ieP$+5UKJ#tl30>zm0Xkxq!^40jEr;*40VkxLktY8j7_bK%(Q_F1A|53 zdWI+(a`RI%(<*UmxXd-J7pOrJWJ7R%T1k0gQ7S`udAVL@UUqSEVnM22eo^}DcQ#T$ zMaB?CrA5i93>hUQ1y=g{$@#gt`FX{9<(b);xv43ci6G_rAfA3mVqSWFd}eZfUfg_* Q2|(=(p00i_>zopr08&lF{Qv*} literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/hand.128.disabled.png b/app/ui/style/olive-dark/png/hand.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..3db8831f7d37ef790cc565b6aee131de19fcf70d GIT binary patch literal 2442 zcmZ`*X*|^H9)HF%C`*fIRLoH{wqeF395i;aq_Jx;n)zcWGntW{If{@YP1#jriPTY( zOJplMcPwQPl8$La*`q@`amVN07x%unFMiMW_uW3vyXW(yxH#L&>`>YP0Fbe_vmywQ zxjm9%!jp2m94`d10COjE0G{34`M00AkRwTU1SbHZ)P=cg0Bi^)<_rK~dH{SO0$`j2 zfFiA+?zD-}5V_!BYX!ig-w$JjOp0dbO$Xr6_3eS(oLYv2q6EX<$y(wQ><~D7piJQ; zUZ{Mxw=#E&7@NQQ+4Y@`{HyrcoiPbFEzlNu8IA$QysfRR8OOX*d(@;ILDa0d=DEtn z{%ik(t(6B9S_=~`#5R1)ia_mi|=+* z|H-v99LSwauCh%yW0vAfhIOe@ll$#({2R6DM}RlKqQ6AN`jYpHWJL7e+SHh%W~^Lj ziqx%!_eb42+N}^eQ1`Y?$F5oBVle8D1;&D4TsCa?6c``*R9(PE@SY8f$8E}DRGcH zeZ03LtPNxN?wQ!rW7S@NtBuvYkZDlN(3l7ct}s?sNje*Jf_o+xE6Y6G+akw~qv~8T z)i{3uj=XWt>3)9N9oy@9KH!Sr$%J?cUPVP#UgBxs8wr9uO2g++3d6O`k7nX$#8aPdg=*G^=bAxr5^wJ}6~!l-i=sw0eJ63w zQ9X+z>pah;vWo~XHy`hs`v_AL7r#+e*FuDiP)%J*m3lk`s++46m?UTSot7kCMOe+J z#@|lGVlomMbUH>nB;F>>i?{q@(NsDUQCZmV$zoMm6s%ic)^1jQ*`-pDDxuclW!04| zd2gvc=1<5B4FDo8+x6MQP6@zjxV`4Sg%M%mUYdmf7uK&IRo={rcMKF_mX*Tgn+Fw1 zJF$;|HhQ5|yJoO^Wzb`cPI`*TbH|4U-N05G(n~Zg++c$=8?lg~^CTQ>Fw-`38y_~> zL~H+oa0hXX9T9G@z-~D6vvf|D4B#R3bPj-0eWH&6a13}=brIzBF)5=!?=Fm22_qVd zmO`Sh7;s1Ke;53Lm-5yp`4ZWh5M|7mTW=v?rr= zd~n&OnWplfgx#}JPN}%eFF^rI@9Dg#D!mcVg|j7}<#{~RV;u_`Y$wcNTLF2rlia>; zniQ-wd(&?RQ+v5%&2az&cNnfczc@gX!}}Wz+_O7S?1%^+H_-0%_TCK;yoevp(rPEY zcJ_#4QQ^npKF~Gx#^+U)K2EgW0|-lPmpk|@15u=XR!a-hLi3|0XEuj2G&MI-y1*;5 zVf_*MdO44~pBejTGVsgtA{l?zSSnQBYmB8{3Pu8AJkOavniR9l67lBc%E>ZgpQU=w z>Pb^xBc1#9w)!w`kieB$s$h2PjaX|f&hXba589TpL|>sTNJ(qS>P~zzDkHyz{ZcH+ z9K^mWvUxXycE%N1-`MZ{RlrowrdI$zN&H(lyF`Yltx)j|wSEFR`(yTbvC+v=eSZZo zcN%lIdY{NH(*mu(+#`abUbJVzK%e~lrmSv}3hu56dxlnMm_G%PMW!bJlm6hu%ih8X zmi#XYP-2q=@`y^NB yo}8qks%^7H9g6nP zN0%5*T19@*$gKXXa64Ury|5QB*ZTq#xx{#uqvFQnD6-h$HfrC;G}H!g}8%?9|wta*Ncwm}Op| zDEqd88_$cMo@;3n-$I>;_l(%1B$jY=$Ned8>#ZmBwMl;7O*G~z%?q9ooA~mp(}>ct zc%@Ph7r&HtuJcVg{d8mEL}nR8#QN`=e!!o1Xfo`qLZ9`862ecujc7wSyjSma$C|ii zy*gzvIVSO%*uCEtZN3tW_B0{bxfK3kLf1qODvBWqw63PFciQ(=XPS3aE?&5^bu@h_ zTWlEW4oLlJ-GSw^O8bBFT;VE2KY2bQ=R95-DK-+o-SO0PwVLw!JTY1(eD_6H_35b1 zvjvgo4zjxrO+>+aJ1xtNVIC=lkylJDs#v7c-w3-nL+ZSSd;}(IoMxFlVS(h6N0uWN zfvMRI#MS2_$In0sp6GebUaRZ_QLBhRwjHP4AX4SG?^@~YJy`)p^}YLy2FJBR@Y!aT z@U;D^x9qe#l6=w(FSANUF1#!I-AG`yuJrK5A3x#Z(7eowNWGD}b7H?=9(VjQwnO=p zr?U3r759L$a%j;=6XjA^rMkuGd$EvyRcrY@#HtK9)mSV2LQqea%gq2eL^~I@9p=ye zSr*(qXvKNvT;!@vy6v6mZk>brGd#94>58YKCRjrvoziiX0iVXi5{G<)`S!mK7|8zF ztlw^bTh%)C$eFg3y_Olk#?D51KbCEK9sQno^vkB)Vy(+#XfE1N_%D!WSbH(d!x(|o zP~hYj%AkZG31ReL>XjO9Pp;5c+xE$R49J)i3JC#V^{`kSJ&X?4$W2erSpS$Y_PCaC z(bE${swMtU;S!Zh@sIrfg|OJWM#2JO`vzC4KO@{P6awMl;b=-oFrDN_gV5B_fcym$ zC1FVa-=VNj5(EMn44Sd7E{S^S5;cU54yOcDEEaloalZAUuQyYo$kC7Y zjg5uOo?bYuRuz3?)BFFPQLK(hTLl7DWY4BO%T(-1Y)daRe_nrXZ$WdI;l-)19=qmB zN^$Ie<6g4&;V~iqg^HQnMZJx!Ua5%-3T5?^PDCkmbj-GLv9-Oc`yo7ejym59g$=ut zl6pDCv?L>KzADU!YTh*Wvad~XYKm(4vRnHXg=m~T^UwNI?8~rS*L`c%72Cp-zgtx| z2!Ccd)V|Q#-MUQA{GQ$F3+CTndh1>dwD=}-Y6I_)GfSQHf+J^2wa$|N@yBsPzRHtk zpw~o7Tq8;xOG`5Hix_+pi%K%{6oN{Nv-8WgpFT4aD6a~VPf09EwMs5Z1yT$~21Z7@ z28OyumLUcPR>r1QM&{Z;hJgW#f@&*@hTQy=%(P0}8cJ*DS^_mlf@}!RPb(=;EJ|f4 zFE7{2%*!rLPAo{(%P&fw{mw=TsK^+isI(|Kl_8^~q`*pFKRG`)H$SgfuRJq5GdDFQ lGZCa*AH>rSNz6;nkIzib&x@O{F#)KZ!PC{xWt~$(699pD&(#0` literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/hand.32.disabled.png b/app/ui/style/olive-dark/png/hand.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..1ad63f2b50fea851388cfc54046bd46cc8e45e5b GIT binary patch literal 855 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+a1T+GXXfr0Uur;B5V$ML&YWBr94MH(Ka zFKa!j^X0Hcf=kmym;e9gD>^E7hAm2XBYrK&>p1uHZ4ahRi~AMllcrXD@65cp#= z7%g4W+xyiaI{J%M>gKCgC-Gi!&AspV`P!*FF?WADH~IF=*tY%5vu~H}tfCTw)FRGJ zUUb**_-jr#*QD|*kD{9TCQju0^pz#^*0HZF#ecpxE$n=_H?C;5%ar*?B=^t#bNRLB zuX2{m!`i-I{$9~s|I1Qs*XP4oUH3#y?_Ze`RDMx5&@a?EZ-wf~w>Pd;#0af6`qF#x zvhdTaPfCf}oNO5{q{QQI%=f=ov}oQsUUxJ3?O&TjoQoDMezju7r>iR;s0pe0#dPq! zwegzpP|L~V;pFvA(=S^WSUUEdei_K8yL^)EZf&kti{f_7TisgluDNr0+?s+ZM%5O( z!+jRMy%BM@@zkUb%m=q$(5;+#Y1((AWO2Q_Q&`-6&$Gy?D^9h`%{(k!sxqBzUCeGn z!O)a#S6$|0wtg|6zH~`j>{r(9uE(bv%=p{Wx}ErERAdZMR9cjr%8*e~QedU8pPZkYo1a&#SDu-j pnVXuDnFvy@58~;EB<7{($7d$z=f%y}m;lty;OXk;vd$@?2>^d2RviEU literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/hand.64.disabled.png b/app/ui/style/olive-dark/png/hand.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..d45fbbd802f0e6449cdd86f0b8a50b06cfe4d5e4 GIT binary patch literal 1350 zcmZ`&dpOg382`?&A|u`0I_6p@w;6J+GiI2XSdxmi*_a({v;A1QpcAE%HkXiVC9O^= zqNq9Q5fXYlQsO*DZn>O9x^Rrn&(mN1ah~^iFQ51G`8@Am@7VxIuQHCp^*YAU?GTWWv4nWmKbp=BO#u%m#l>)#~a{y9O0r(eQrAz=2j|E_g4uDHO z09*J)j{@CbLMfc=?FqoG3nn-it>yb15CVX1T1`YNPs)OqD2PNMqQ((hfrc`67CX`Sm2o<<XvQt1%)(#a*y5E@xexhTC(TXKp-ZM9~Grx^Zw}GHE3&Srr z!nB56ml;KRL`%9Ss!*MFpX^XRS{2=HsjVqB?v>5ezw5fH$&%VQoUyQ55x1T~1W9O0 z++_l-w^}xzoc|b;s&mD&xgITZ#?~gKr17sS>AA)jN;&T>KFnA;jO-d)>?X$cS^MWM zA>HtSc~&KS{zSJts*$_@v*S8-`eZfRzTv{x>4Zy-45@j5dRJO@aqPw0ZyN$Pohv`m zmOuEc4}md`%MQM*{qeQ;r2B$-`oS#4txtm+Kx*keMGd8F!9&xCtkQKQ(O0vks^C+H zBQL5%dx&!yJ^4HI zkF^_*27p|(koQPaDRsc?_SZQ)1$B*3xci))VDyrbeO2#c0&*kNa5Jx$a9Yu>dqD7) zzP1EeC&A86Y$BX?qf5+q*vzhtaWY}g>js17^!2oR&$Cnxwj%Py%4I3vXWpo{5I!fP zZI~yQrf_3~ZyMi__X>1Ur*5tf$Dl@%;)WbcYH@^-2|~`&S>fJX zBgc%I{^1+UieG3z%;r*F?%}uftw&@%GO+1PXSJYWn%)j6qQFdMA3ws^9BtS+esb1i z(F8FHIfoQ(IG5G95MwIXisEax~bioeH-M-jrsB(Zr=m;aZ}2G{cw(c zT0lYos{(^r~M=C}jaN(%dPwt&|IDduSDIwshH8561npf;u=E_we`w zy_KGh;r{upl^MFWj29WYYA7SG45weI!xyM6MJOQ9E1Q3Udp~efNc?l2OI|^XlY?Ws*pa>VH zAOdaxhsEKnu(nn>=O8TB#m>P6=V$>BSgbO}EbS*lERV&BO#FXC{E1>`*r2<5VJ|Nd z5-|i3KqL}bbGXq$CW9Yg%@eQ-XWaB)k=+kbynq=2q9BOxVq?SP#m4fuLTeExniCtr j;xJa_Hmk@ch{0v^XdEVwd$@GF7`6iv(ciPugZ{^V$6-6B literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/iconview.128.disabled.png b/app/ui/style/olive-dark/png/iconview.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..b5ef90cebbd6e1f55c42dab6e6a7c1cc21b27ba2 GIT binary patch literal 885 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49YT=MfV>wFfcyxba4!+xb=3np*ORm2;2Vd z1p)!u!C9~W|2Lnu(KyU=p~j5OB6n^FJD0hi@cG@h=VZYIHGM%r!HL1CD|nBk<`vED z*6G`jI)8i4XPZ5L-hG_6Tb;S5`%Y?U%hUUnryg(k|L}DAJzK$qm?w7Ac||6rOmE-G z^0(Z7Z%X-Dkx8rXoIAJsy&hA~X*K-^;;RcIr3H7NHeayT$>_;4y&LuAk`GpGbSa9R z%dq=2gZNq1bE}0DfMOE+_kNxes(#?zH|_tHYztU3cpSJdNHmBoFl5kmNM?v?IL5Gr zp_eg(QHuEjlL!Ij`u?-4>bwgSlFcIdAM^8<-n;ub zA?exE|Mt6GU4Y<;$%m?%paZW9*B_65_;tti$8r7Dw(q`Hls@`eQBRo%Kt9|fr!V)h zYR}G=>yNL_gc)wJCmLw8U%UT}xDDGszFut$OadY$t`Q}Ur6n2pMGU@)MJ1Ve3PGjC z+4*JLPoJ3ylvf4GrzDo7S|t~y0x1R~10y3{14CUS%Mb$tD`QhDBMWUH!@%HEMraO- zhTQy=%(P0}8k$YtUI1#41lbUrpH@mmtT}V`<;yxP?0f2 zQE5?fDnmv|Nr9EVesX?pZhl^|UU_DAW^QUqW+F(rK8U9ul9-pCAD@|=pBFb@V**e+ NgQu&X%Q~loCII1DO=SQ8 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/iconview.16.disabled.png b/app/ui/style/olive-dark/png/iconview.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..0d48e2d39845b70e578cffe41561716f4ea4ced8 GIT binary patch literal 520 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0wsUM}Y402C_sba4#PIKTITA>Sbbp4Nx@ z8m>L)l@Sv@}@CU)uQgi6lnY{7lHNyXd09Epgu0n$c$F3kUD5bnM9+AHDW z^|JXT+a$RrWlY@*bb?5UYeb1-X-P(Y5rc1HQAuW=LQrXOc7ECR(`RM^?)FK#IZ0z{p6~z);u7GQ_~Z%GlJ($Xpx9Ffd?IP;Eugkei>9nO2EgLuu_?OP~fx zkPX54X(i=}MX3zs<>h*rdD+Fui3O>8`9k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+Y{S#?$nu^D`@l_x=BYF_MS5IhxfZWQAWP9Z=ks${Z**$JPA#yvxeTAqIDoWj)YJ1kFpvuai@Ftm_wjz}=C&hEM) zd8M^Uv_dy0VDs$OQ%7<)RmtA7x?W-s_|Qstj4<(S5q zh3^C&Cr1eXmNR;M=ECK7Vs5SP*b*j8%?}L~S82}5*F9oCeR++cMWbVIf<6Bx-*kiX zBCg)tAChMN6qNd$yxX34ALIUa=0U8tBfNor7AbL!C~+(;$;dBa@J%c#$;?v-DlN{= zFWY|l%uJxXDo8#hu_VKa*w7#LU?n_3x}YXcbu1}qAyttc9D z^HVa@DsgKlt(|KL)F276Aviy+q&%@Gm7%=6TrV>(yEr+qAXP8FD1G)j8!4b7V~C>C zqU2PDjFOT9D}DXs{M_99ykfob%NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_!ZEQ{_x1`2KWba4#Hxc7FtAzzb&fa`y! z)MoJs!WI7)S1=snT%c%}x21T-j1|UF6F$@(^{JS={ps`*_k!Pit_xW2_tt$`*0l(+ z{bw$vmOl8ynwPGZ-D-2!W_s;|hAXe0JTu8&3yUG82uS0Q&z|Sa}(b5JmCDw=U0l6 zG+ilvWqC7OF8D-*f0NmY6+kbDl(nC}Q!>*kacgKc zeR~0@K@wy`aDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$Qb0w<5Jja$$*Bw(B_#z` z`ufTFxw-jy#d_tL*_pYiDVd2N<@z9=en?_odVYLna(-Uie2ob}?F^o-elF{r5}E*_ CT*f~D literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/imagesource.128.disabled.png b/app/ui/style/olive-dark/png/imagesource.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..fbbeb058091489d5630ce02768a1678ec77353ca GIT binary patch literal 1532 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 T=4(sbP0l+XkK)r9*N literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/imagesource.64.disabled.png b/app/ui/style/olive-dark/png/imagesource.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..abd0703427a68ecd68aa257e665a914fb4aefd12 GIT binary patch literal 944 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/import.16.disabled.png b/app/ui/style/olive-dark/png/import.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..bdfab34d1eca41b4d632ce7de023cdeed6f65871 GIT binary patch literal 586 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0ws^(%c}3KZJu>EaloalZB9Mn5M=b#vThLE+!li=oGoL_2!9nj&qZ`jO)*xna3OYRMPFkI`T=i>@_QaH+V@y@-fLy|`_8N}+qKi|q@VX5XX`k)h4Ecd zbkPZRKf?;c>(f8paer4@;d^dQ@`f)7Zv>=`mBp=GgpQO}p1u;g@%}DVe;47>HJ@xZ zuG;!d|H$R@3nux@`y-X&Csu!K?+>PSAp=Q){69@VPl%MbMwB>~mSp4?G597Hm1O2A z1eF$N=a+3ieP$+5UKJ#tl30>zm0Xkxq!^40jEr;*40VkxLktY8j7_bKEVY3Q1A`Fx zxEm-Ma`RI%(<*UmP<48i0@NT0vLQG>t)x7$D3zhSyj(9cFS|H7u^?41zbJk7I~ysW zB4dc6(xT*4hK!Pu0xNy}k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+alSNgt`fq_xM)5S5w81HV2pB7>N zrAsxn_Q#{ZdzWilJ?|b|n3B2mCQIrwla7RhzrueQ531N`oSCsq`s=QLA2u0s&L~Wd z+xlW1r>39ojBZ<#W?uQd9kTgqjT+heHW#GoW@$To+mpgM@2PP*tT0*rR3lq*#*xX`7E^bf&oYOcwr)d|6^KQB7%u$z~A z$xXSwoBuA`YMt_nCRWn9zlt90o3_Qsxo6o#AA95045^b}nl)22;;tTk`PsI60so!k z#E7k2vqH|VWx7y!L3tCy9S^SF`_DRlF`j-9xx>nBRRl2jL`qyEN*qf|GV+TUd=raG zGV>IIN{h4e%eJ3BGZQGU3X)GrEJ?LWE=mPb3`PbmQF1CnMoCG5mA-y*er|4lUa?+zW_D(7YD#7zNVz_Uryr7-m!2P=nVg>& TH(z4{P&NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_!Z{Yu}LGB7Y+^K@|x$+-7+#(6&`LxJ}F zOok7e=h>y!Eo%XbdXZ{N>fCfV>` z&g&^mX9eCaixc56LIZ*Kl`j^RXZ!K8Qwg>45t>pGc?q-CD6 zhrM=NIm2X~+|^X2$4$oV#@nB4pT8$4;n0f0&o2#=J}qxt&3pS(w0|6=`{^?? zf%2*#`IN+xRIB8oR3OD*WME{ZYhb8rWEo;$U}bD-Wn`%hWEdEP$j9A4(U6;;l9^VC zTZ5|8Gf=XV1lbUrpH@mmtT}V`<;yxP?0f2QE5?fDnmv| zNr9EVesX?pZhl^|UU_DAW^QUqW+F(rK8U9ul9-pCAD@|=pBFb@V**e+gQu&X%Q~lo FCID+1QMmvB literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/listview.128.disabled.png b/app/ui/style/olive-dark/png/listview.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..8a913d56353ee9b8abe7a2a39d9e2ac9fe54f715 GIT binary patch literal 827 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49arXYxbRIU|?M3>EaktaqI2uy?#uN3~c)k zy9f&{og@@}|9`H|MrLhIlNl$XA|iBl{MbCR;LMccj%n)C1%&pw0KvJb4=-@1&boc3 zXe#I0AMRy0pIQ1JKF!ZG#q*uf^0WVEhRU_y4P-o}@_pyBTI&rbo#!UpXRb3p^;q3J z@{0IshE%Iv?f<(gXPPnh{P=Nl!tJsK>06t$H{Vl`te|!Jiia#&Cqin#S z>yXS4)o_eq3qvns2BQ@71tt@=1*{o74%`l{|`AywN&EK^0_ z+H|f+!=25;&3wj<&mX!wfZ&8>v7UWfO#g1Va@%)RcfRg;U3mTRy5q6^(gzsW3>p}D z5*U~zkeGzrxkGM!UZJg@b=lFc6~+w^!|d-Ht~=QBx=>J1aODq%$JZlv`)!#q9HdwB{QuOw}zU6#hO43k{}y`^V3So6N^$A%FE03 zGV`*FlM@S4_413-XTP(N0xB|wC@L*VPG!g_DJihh*H6yR&CSm%)+^7<&dg0s$xH+( i*9YG$;7jb(nX~_qOUj&Kn@Wpag8W(EG@~%FJkabEGo&&QwS<8 z&dx8}e)`Nzpu8$bJ|(dv)hf9t6-Y4{85kMq8W`#tS%w%GSQ(pI85?K=83qQty3$io zH00)|WTsW()=*QhSQDs05@bVgep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt;w7 zMWsc_sSFtQ N44$rjF6*2UngFG@meBwJ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/listview.32.disabled.png b/app/ui/style/olive-dark/png/listview.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..a201ee99b0baabd6c788069535f0b625da8be91d GIT binary patch literal 539 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+ZGy=LEepiq~mi(`n#@wbz$`5F`iSlJgH zyL6tj=ezwxR&|32DW4;U6im50#rD;;)p8%W9mudRd6B1ztXu8^MivVb9|4w^Kb&9Q zk^R&3o?}nP*T4i~mSp4?G597Hm1O2A z1eF$N=a+3ieP$+5UKJ#tl30>zm0Xkxq!^40jEr;*40VkxLktY8j7_bK4YYv_0|Q=N z>8U6ha`RI%(<*Ums3};i3Dh77vLQG>t)x7$D3zhSyj(9cFS|H7u^?41zbJk7I~ysW zB4dc6(xT*4hK!Pu0xNy}NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_#^uGj244-{J9>EalYaqsPQLp}!siK8FG z)wsnUu)M1mVHZ$On8=a1%FXK0R(wA@~`OeGSBAO$_L_B z)b6!Wu<}1~uD>^O@08Wwjx%VSeWkjxi?Qtc{w=BH|2_fT1Oc3kW|!}6)@4u&J|Mx& zcGx`P>hH(myAwj*i)}tFG^u9B^E1WIETL)@6d69xsr36di&=ELPIxBI8gZb6NQrAi ziDPL=Mt%{4Z(>nNW}ZS&X>oRb+4j?CW&-6^LGmeyC8<`)MX5lF!N|bKNY}tn*T^!& zz`)Ab)XLaE8^|y);MJ9$ilQMmKP5A*61Rq$g2kFZ4U!-mg7ec#$`gxH8OqDc^)mCa zi<1)zQuXqS(r3T3kpe0*hA1j6N={|SC@Cqh($`PU&&|!xE7mK|%+AbBP036IDc1+_ f^g|N!((~gplk@Z9=4(sbP0l+XkK>3X-b literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/magnet.128.disabled.png b/app/ui/style/olive-dark/png/magnet.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..dd969c64fe9132bdea331d138c4a18e53012ba6a GIT binary patch literal 2108 zcmb_dYd92W8-8cT%;XRw=R$)HSchSZc91B8A=W81wv9Puh8T^R21P>-ZNhxcLbMKv z9U(F?$e|n(LbO?j-6ByskSOXK*Z%r`eAo5;_-`8`!f8O_34|k{SGCO4e z0NaVq4qg)EZ`C#_$;mu$%T5APf%b0p0Mw?*Zjj*;jix$#xd9NhPvVOQ;ESZip9g@8 z0bn5j0IOU8)WQmyJZ&TcD8<#u0f5RBJ#&eY4s#}j1E7_(RgkpV4|GWr$sxKCkaG|% zptrmDd@2b5L>1A&-Y4Su+rrm=N<`(vX&I?)iFW8>1Txa&!fA2rz3=DMRXiNKvb11( zAn66`X6bNt0<@0Ut=1cS>DuuqB>oEXHS+AlJ zpo0K;0S74yjki2Y91r%tkSaIu{7qT03(qQ1OXvZm_lu6k+qOI~ODgD&JV4R+BHJFe zZ>H!iyf@GVd4CZYM{a6{U910Yf}cAfH`#WkRzt``N%Q+Z#+|J2PFv5M^YE4NA#Izz z+c}}HLXiSqWaF;&4v2q0J*u6@vLR%-=p!fQ^tr&iI~f&NR7+iWjhyD1JvPMZpw1*b zjuU{=9{%O(JH zhFFfV7XQn#asCWTyGPF#`ltT~Ly>5Z`a_mkgXw|D+nIDUvtyKxQM( zI?MkFK@(j1W;+Hp-M;VAh`4!jJb5l&y*%g7#^gxEu>e2oCYPR%9!t# znBO(w#rU?TTd#5qJ_vnelg+w7Bv)`N04DQmiH1}$j&JO)lyqn?sKPh{Uuo2rikClI z?Y6&OdrqxBEBs7&4oBm;c?On11|WI0Re0yW8FR;}f{#HAr21!nM5A=A6}# z7Q4IOC3UZAu6s+!yvM7{n>D*%HksOr#p0OgO(baQ)pm~vuao>_${fN8jy;#dV6lN4 znayE_qP@7`!K`zQkNWc@^SxVh8ks}4qO$1{0OlBTb7PE|u{qucgR#QmtgvQ3NC*Z~ z<%iPwk3a~E#ylPQ-viH)6@`+3#?}UJ)@crp%%%e#k7vRR4GyQ0!{{a~c3}RJ%}$94 z`;UpsrqTg}!wIu8HKnpbLRg{UCOl>^GlWiKlDF)pTgudj92&^-XHr?Ar;79ik~km| L+#RY92gLmwy6^F7a_Ir?>W)T1@x#O|8wErLCIDert(& zli8Bk0I@zFRztR(3wNshZqWX4kHt#w+oz19_DmOFT(%Dh5n~UxJGj`-S?vD&9d-p~ z)z3tMo)al?jVN&}Ey>6)V(?8YD#^@K2r4bk&M(`3`pitAyeddOC9x#cD!C{XNHG{0 z7#Zmr80s2Xh8P%F8Jk)e8)yR=1_r#k(o<11hUQ1y=g{$@#gt`FX{9<(b); oxv43ci6G_rAfA3mVqSWFd}eZfUfg_*2|(=(p00i_>zopr0GdeBV*mgE literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/magnet.32.disabled.png b/app/ui/style/olive-dark/png/magnet.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..39d358e59d6be2927ae63bd003114091cdec9b14 GIT binary patch literal 789 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+ZGy=LEe1_s6!PZ!4!kK=Ez9L&4yAaLyC z{aH6;gaU*tmUwD76};m9@b7%!q7}JUL;_VEx?S!}dzvu$#z9YQ2Pda92RD_c{rh~j zXX~G3t;-HelziE`)M(9}UE4}zA2Bl+8Wt?LdSI_9WrP+seCBip^EKknpQ_F1uH|3&@D>3Z9L_Z}>MEVSvvyY_nKiome=SuMNM{(hWz zy{fgVAZ(86>wDc_xR39?#97|Am;LaK^$bamHms?;wPh8TlGR2Q{p3x71``y`Z_bZX zQp=klIi*2Drr~DZ$LQWOU7HLqIJtB0JiT_Jt>Kkp;?EzhdiEXUK-Q4uQ=VW z?7k~#<+{Zdx3U(`a9%&dQM%^VD!X-8WsWc3`o3RertXpl*}4f4ZN4A9#F^)7{}VmI z#d`F9X)v?Ms%47&J2hWi`BN!6Van#UQCy1mZM^5s_MKwwBe!Ws?KgggYvJKF)$tj{ zNABl8w12?QSa!F0r1Q z#s=CzhJgXEuJlwC4Y~O#nQ4`{HPjR=)&y#h1lbUrpH@m zmtT}V`<;yxP?0f2QE5?fDnmv|Nr9EVesX?pZhl^|UU_DAW^QUqW+F(rK8U9ul9-pC ZAD@|=pBFb@V**e+gQu&X%Q~loCIFe>INbmM literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/magnet.64.disabled.png b/app/ui/style/olive-dark/png/magnet.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..4c6a2c7d7346a4df15ba64db0ad2445d7bf0a06a GIT binary patch literal 1200 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_#^7gYB}GB7a9d%8G=WZZi@^LCJwqkzNt zh7JvnLe1VOlOj4(Ke7J&-+v->@wDki5=T0U0wb;YSzbhzwX=H8)Y?A3tg39+`7d9- zoMGBiVtAQv0*htXi487YDxL=pKW@~Mjk+`Acs-kf<|&aAR>wKEo9r;*FJ_w%YIef? znCLo7^Rt$W9`k%RT~s!mBJHQ{?87j@b(_Zd2Q>=&Els`~GkbLAPVz6{e^8hpWz68w zbbSqLneBxq)A-82d}vVNUUG6m>eP@29a6^=cPq0vOnNg(I{5pFU~^sfGn=MpZZx=d z@yYIwO3WTz-*tXZ`97yuFm<|jlc`qn#*ELV8O3Z29+UXj+|bIJ!**UlWRcU+^u1@r zFVE&s;4F*W8WQ`>$9mW2g-b>6ZA@7?tLF3Z0-1!{)2n#-md)I)KP_J~V%03mP4_*2 zv`wjbSHIDIb+v(9bxg#n(vP8{+zw(lw^iw%X`C2&ms!HF-LA!alZ0I3s?ahi8AE={ zM_yYeg*Y>)_{5+RuOit-->*7v&hGn`%pv#t#Yqi+XNJhFetSMg zn$2Tgc+~&unUfn%^(k#w7`Nkj&b)Vw7S7iXcJVs|Jz4wHzj9-j0CRuw)ibB>2iaPf zom!>xwMJUq;Yh%e14fw-`pm*j)RyJ+p1Lr9;g$F)jZW8BpZ5GbT`Ba^;j}g$)pt*B zl)h`OoZ@}0{cMuF0;2+_He>zH=X#-KQ+_utxjAvwj{JzyuXCmz5onkb)xaL*ryQys zn|m|iwB@%j)kQDwoBv|?^&!_P|E_DCWo(Xz;hxJ4`(WfA*`Fr;BC|i9ioflk-8A5JZ zyq?Ll^}N^Wr$44_^qM2dXtVeTgP{YD0CUgZDGKuQ^Gc+o&&xGRD6n-fCN+Smf5Hv- zt~{<1G?|$5h4ED||2p>zE}JgypCrrtw4uK0(23VF{h7}bAG@BCpEdh|=iybE(}1~0 zq{KC%#Idv_Bfp5jH?gQBGfyF?v^YDzZ2RdmGlBA|Ao-NUl2ohYqEsNoU}Ruqq-$WP zYh)Q>U|?lzYGrJw4P+P?td0^;MA49&pOTqYiCe=h_7!u18YDqB1m~xflqVLYGL)B> z>t*I;7bhncr0V4trO$q6BL!4s3{g~Cl$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6a jQmzl;>4zldrRT?ICggTe~DWM4fOvdJ? literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/map.128.disabled.png b/app/ui/style/olive-dark/png/map.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..680ba18b0d7e67c1066f8dd8679dc266175dc7c3 GIT binary patch literal 909 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49W^(vWrs~7#RO}x;TbZ+TF$grzZk`M!2-__=>p z2Z*r1Q z#zxvehJnGXOlpinR(g8$%zH2 zdih1^v)|cB0TmfT6qObwr!r)eloVL$>nG>u=H}-W>y>9_XXd7+WF~@?>w|duA&GhE Z`SF>_`FU~kH70;8@pScbS?83{1OR$|R*nDw literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/map.16.disabled.png b/app/ui/style/olive-dark/png/map.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..a6ed4c43201b2a77201ae3fab36c0ed2806d202d GIT binary patch literal 507 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0wsUr^l_2^7lmba4#PIKQ-SH&=s!h_nCF zfcOVbf(kzV-+$7zKxdunLOwCUom-n`GFhrL?hjg+UUO2tmvNd)j-iyp*&;a|k)8aJ z4)$KruQJM?vNW`P`tcptHiD07W<01Kn;>08-nxGO3D+9QW?t2 z%k?tzvWt@w3sUv+i_&MmvylQSGKMHBElN&h$S5f(u+rC0&d<%w&nwm|&&k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+a3pt>&-C^XH}#WBR=_}eMge9Z;|F88eh zCQfQ=Dt_`W^_-yQyNOQ1OO|eE64*FlZ)2N5Z~d+3A8#1V5xOvq&G3p=oE%@zQw5U; zP29WxC%w9F{P(`o>odEHnar3)vb(uNr>}n**XF_?TAK3hl<`-N!kV3#Z1r3hN)B|F zFWEDjKm2|p&u8iTn$0HNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_#^7gYB}0)<|Ax;Tbp+y78;P|~}Qv2UkO^o4oi*BC_ups0|sefI>@ zH#Z-ZvUwL7CA*6&q+Hj2F39xqx$E?Jfu4z_f-myw`q%srSk=I_qJe8o)B>3ay2}Jk zu&2Dw<<>i1$i`Cpo>`bf!uwX)sqg7moqtF(^-5OMAO881Pse3J!Jkv*B3m7llqNWs zwitTYT<^|_4xDoIBg0ll6%WO8MwLKcio>zjC2hQb&V`T3=FJ{O|6U#wSf!+gVj+2iYOX#^HVa@ zDsgML#lB)LP=h4MhT#0PlJdl&REF~Ma=pyF?Be9af>gcyqV(DCY@~pSj3J6ji;`0r zGD=Dctn~Gh^K*0a^NRJ#GqW>uQ&Tb%LCW<(JpGWwy!8C|%;fyMxcM3rfZ7>6UHx3v IIVCg!0Hx2;P5=M^ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/minus.128.disabled.png b/app/ui/style/olive-dark/png/minus.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..32a3a1d198e792f30920947122da89f4a0629a2e GIT binary patch literal 744 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49W^(vWrs~7#PDnT^vIyZoR#6*NZ7oF9?np~V{(+!cQF(`IAtpZ|I1dDiT;U{C7Vx zD|@;4X3@*eZCCfp$4A{-mC9&#)yk??EPM7gEr;1Jp4`k?Q^{y{S;eZ{O!%yn_=5Hq zS0Z(1i5v8vn={qAH@JbfM0~F0>WP+|w=2}>%FUtPE>3?w?WBkQ~n~K$nxIC_H z=F&U)Q{+RxgCJ0)dH%yNu7c%-+#c$47YC;o`z=4l>T%2U`MD!s9_ddLnQ+c_Wy17( z(V_}VoBJ-lw65R+Y;0u-|Iba4#PIG>y#!PhXc@u9tP zvjMZT*v@#Ke98Zt4GauA3^X2I`8TU`f~XD;4^O_tKjVU=iNDW%C|ls%5XHdYQp(Bp zaKUttjUpwk5haeLB^mie48Dm)C7F2&L8Zmn`DNQrpP31iR|UzZB$lLFB^RXvDF!10 zBO_e{LtP`w5Ca1%V^b?*BW)nVz+l!Uu01Fka`RI%(<*Umc>R78P(6br$cEtjw370~ zqEv?R@^Zb*yzJuS#DY}4{G#;P?`))iii{zON{f@~ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/minus.32.disabled.png b/app/ui/style/olive-dark/png/minus.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..95fd6b5b977e5a87d48fb67ef0e6e51c6423c392 GIT binary patch literal 499 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=_vCc8KVD3s*s;uzv_{Otupt_B01)`#}4 z{s{*?Km1!RG`FRS>7a$nk%I?Cj@NjfoG^WffYXoG8;d&|`@SV#KX**&xN*Xg^1irK zCJzR#n|rIn-Zf}l%V%UdDjV?T*E6m3E5AFh?rs;jH)nCW;DwmV=n|l9A|gcyqV(DCY@~pSj3J6ji;`0rGD=Dctn~Gh^K*0a^NRJ#GqW>uQ&Tb%LCW<(JpGWw by!8C|%;fyMxcM3rK$dvA`njxgN@xNAPdB1? literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/minus.64.disabled.png b/app/ui/style/olive-dark/png/minus.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..54b2e22509b877c9eee981519bbb5411fc9661fa GIT binary patch literal 584 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/next.128.disabled.png b/app/ui/style/olive-dark/png/next.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..f6ee96b87544342aa783c75a7d71449934346b5c GIT binary patch literal 1253 zcmZ`&X;4#F7`=gD7D#~6fkKTw5tJ=U0ks4zFDxZ!086ogMI{>&7)T5WkwtufK|~ah zjt>z~mX0i~%2Htz5Va3GO#}weVmr=&0wpvoE+av)>0|n*{^-p8?z!hX=gj@{eW&+E zhS8|bQ~&@ioF5X6BeGg#B7VzuG{HC!kMJUR0JN4`uL!Mh4vG2E5ddUu!F?wIc!#%; z835EA0A>>a;8pfCQi?Z8s_=+V z(lmhqHoKVC-sb~g8517Di#hiDTvbZcTHdndiD6k zjlCzX);=n{lV2A9@aCw-#L?ZZrg|X8dlSLc`r~4M;@FxqmI0$CiDU3V8{^MC<>tWG z87^HQB{r+0eAA11hOH>!I^1GQ&@bjR=Bl3Oc=U$>!N>rKM)HU|s6WNM5l?!#I}~aVV(yOjK+12G?A*KK}o9!of2qG7QmtVTEPX1-FNh8id{K;?Y7klETBF=cNB3RdF%jgG_(4a zovvQn()a#uK^tW;@+nc(!W!2+wpzdcTNoWlwjO(H{yg^*as4L?cTeCjWYhX|a_P@g z&np=(KD^q$fxy`QD75jc&QSsTPG07>S;ej|w z#;%-&R;<~((X_<*o7v<~e>0=FKlqB-)b!El7uUs{4lL-IOXq)SE5KK7ohmd|#Z#-2 z6a}8*;sK}CAHJ3+sx(5S6lgRWmMkqLT`W{cS#sr(%kw*( zag*=ACbd#51xYHEg3D%$<*BLiv~-q6mLf})N@T)SJA0L}V}xl(Oq81Z2`JR%>EaloaenQDja-KUcwGHo zWuF!qX_K_F8%>d{Ecau!>)iv1-DkSu42R zt5x?imN7(fDQ!qt9r?+!GC1X3kmuT|Yosd~dQ?NJ>p2)^Z2re*!OIx_O=`{^??f%2*#`IN+xRIB8oR3OD*WME{ZYhb8rWEo;$U}bD-Wo)bsWEdFO z9A)G{(U6;;l9^VCTZ8Y6om+q!BtbR==ckpFCl;kLl$V$5W#(lUCnpx9>g5-u&wghk z1yp1VQB+!#oXU_ont`Fkrha~2u=f`Iz=jX-E S*O&m*&fw|l=d#Wzp$P!@U9c?x literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/next.32.disabled.png b/app/ui/style/olive-dark/png/next.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..8fc680ca4c7ce0ff8e247728a98a9838a50a4db9 GIT binary patch literal 661 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b={7C^h*L0|O(Ar;B5V$MLsQE_yLJinQ(D z9L1Fzrlch5Q4$!k?|*m6bZ)^VY}~C|6c*0SGb_Dj{Q6eO%X-7j#?SBPpPMPk_Kj=W z4rg06waF`UuXXTEIQ2bi-8+e@FN`KnBgNPr&N3@FbU90_i066b{loJ?ZckdHf zz4F-9YyajQ%-3vW;AP#@${?mcsV* zME@|P9$9T)Ds2$om(HVVyuj(9-HziHr+!aye_UP>pIs~}e^tzI{%)I9)qk7o7_M^L z9zGU+bU84HL`qyEN*qf|GV+TUd=raGGV>IIN{h4e%eJ3BGZQGU3X)GrEJ?LWE=mPb z3`Pboc5!lIL8@MUQTpt6Hc~)E#t=oNMaiiQ86_nJR{HwM`MJ6IdBu9= rnc11SsVSL>Am#cXo_NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_!}eh44(U|?X}j} z3IY*oYlFXKY&ff4{O-(|(yWyi64_@Mn&nF}EOE|0ImgI|d-;dhQ}%97_uDp1{Pbn* z)HW;Il~y_q&&_S7yu5K|4TH(`D6NvEx+`aITQXO~oAtx}%Tj!n(|tu9G>--`-l)oo zIkm1xROHqPgJoxC%BSo zz5Iij3xA$4y1?F0aQaB;%fF0!j169GdMy8-F?;fpnF{<3$;W=P6`ZTs&md`ZPu}5J zPdTfHPVG$Nd!i4f-in%S@XYV$%l#2MMK{Lf-|T< zO)M(O%u@&|EzZs_+kX1YOrX3fNIoU8B-JXpC>2OC7#SED=^7a78d-)I7+4vbS{a*Y z0~rPeKa=d+P&DM`r(~v8;?~e%-);reAPKS|I6tkVJh3R1p}f3YFEcN@I61K(RWH9N zefB#WDWD=_h@#S>%}Kxr1 zYJw-p695P)+$27VI;XkgP%m3%0E$CV-X4HI(2{N# zKtl%@5dyFd0W44)>G&uPZD2R2u1*3tRTacUGYdjb#8`f9n>F%ogM3SD_ z6z-RJ*WSgQNx$_(qxfuHrPL7`G*}V4z&PvMN?JLK@!L;1kR1V&V~h(st6y-p{xsH_ zaflLey*bz-ANtCg)li0!jM|nAKW=C2=?}hf^8T@FgLXXOX5aX|Y0c0|%4_WvM{3u>%=~;;^d5^Z+O-i`@S5=!3AQ{OK%V<&Gb1s=D>5nVbiyY0dSc zAzPSrX|~CLT49Ft`QiRv^y$u5b28OzjXDoe0#Bq=%Zey`jY^JeJKx(^hxS99eThgd zWr>wi6o5%*GNb5>DCP5M2>yK&R*U#W+8RcY;DhBHOa#zXeooH-?_sE zWQ$rWQc6Lq)ly|ea+O%5kWvw4?%~lm5=x5xhon)8rI4pqD_As|7%417id0msOfD;w kN@OA@o#xDF0#Q*ek|Pr%McK!f)}V4o;jB&iE>Woe8yoQwWdHyG literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/nodes_btt.16.disabled.png b/app/ui/style/olive-dark/png/nodes_btt.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..daef806d1033c7bdba8908a3d7a16078dd3af12b GIT binary patch literal 557 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0v>`XPMC11L1d)5S4F<9zD`L%u@>Jg)IU z{#%?S8x|TEZ7le&Y*5%96q>}?*`=8ydC&Zm63?EyeoB*7 z$LtDQk%P)wE(Z6z=M)p2{(jZ>+^xzWH+La>T znp5~C|&pda&9}LNxH8PwtnI8k) zDN^DZQQ}xyl96A;;G0-fl9{IvR9c*!U$*`9nVCR&Rgip2Vo9o1a#1RfVlXl=GSW3L z)HSjUF)*+)HnlP~(FQUM41Olrx1ngr%}>cptHiCL!@k`Ls6i5BLvVgtNqJ&XDnogB zxn5>oc5!lIL8@MUQTpt6Hc~)E#t=oNMaiiQ86_nJR{HwM`MJ6IdBu9=nc11SsVSL> jAm#cXo_k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=|EL->#f0|O(wr;B5V$MLgM4E+xq2(<1O zZ{=!Lv$rcvSt_mdvZ=La%4-JRm2)ioHh(djf4|ml?tETj=LA)4 zvGhp)rOr|c%?o72)&yCfP|!$MFz1*d8qTvJDUUt7dfVT5a0wcVzREeP^$97+E|E&hOfq?#iCj5_LH{hwa41txf83jr$f) zdBAMBck@EITmD9q=4{){u<=B&OW1}z5*PSB3LW@i>NGD$#cH)*Sc1Nw_Wx6UVf$<^ z*K7`-eEEOv+*7xYFKO#vX)ICOS$M!LZ;gbKo0sNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_!}eh44(U|?We=;`7Zl5y|tjf37yjv~iD zzCZ22WV~q21e=nVm$v@@uUEqP@`|F%n*@mr7tL2CH;jz0-#cS-b5W(Ze*X8`wDOxj zcYe6MqTYFUjOLhtV1F4>Ux zw{C7+1CutRkOJdBxdU@|ZctKJEDzb~~z}(I2-_$SqB=~sWl;pk--Q{%?bDX#zwmg<`nXmUq{C$nn%Z6<|j4?B< zw#pna7JYiPW=eF}JeSa&9W#GDHJiGcklz|GO0K){Si74a(DgvFHAgF|2CgxusSu>HzS(4 zY2T!!o7R}m{yvYh%;u39F#beJTq8;xOG`5Hix_+pi%K%{6oN{Nv-8WgpFT4aD6a~V zPf09EwMs5Z1yT$~21Z7@28OyumLUcPR>r1Q#wOZ8hJnG)B>OfL4Y~O#nQ4`{HFVgw zTLCplf@}!RPb(=;EJ|f4FE7{2%*!rLPAo{(%P&fw{mw=TsK^+isI(|Kl_8^~q`*pF zKRG`)H$SgfuRJq5GdDFQGZCa*AH>rSNz6;nkIzib&x@O{F#)KZ!PC{xWt~$(698%J BH*)|0 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/nodes_ltr.128.disabled.png b/app/ui/style/olive-dark/png/nodes_ltr.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..61ee600185d9adc6f83cd9efe9663187c1973077 GIT binary patch literal 1325 zcma)6c}&x17=Bv{1+)T1<|wOFIh3mxOtC?vgklk@t`>%}Kxr1 zYJw-p695P)+$27VI;XkgP%m3%0E$CV-X4HI(2{N# zKtl%@5dyFd0W44)>G&uPZD2R2u1*3tRTacUGYdjb#8`f9n>F%ogM3SD_ z6z-RJ*WSgQNx$_(qxfuHrPL7`G*}V4z&PvMN?JLK@!L;1kR1V&V~h(st6y-p{xsH_ zaflLey*bz-ANtCg)li0!jM|nAKW=C2=?}hf^8T@FgLXXOX5aX|Y0c0|%4_WvM{3u>%=~;;^d5^Z+O-i`@S5=!3AQ{OK%V<&Gb1s=D>5nVbiyY0dSc zAzPSrX|~CLT49Ft`QiRv^y$u5b28OzjXDoe0#Bq=%Zey`jY^JeJKx(^hxS99eThgd zWr>wi6o5%*GNb5>DCP5M2>yK&R*U#W+8RcY;DhBHOa#zXeooH-?_sE zWQ$rWQc6Lq)ly|ea+O%5kWvw4?%~lm5=x5xhon)8rI4pqD_As|7%417id0msOfD;w kN@OA@o#xDF0#Q*ek|Pr%McK!f)}V4o;jB&iE>Woe8yoQwWdHyG literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/nodes_ltr.16.disabled.png b/app/ui/style/olive-dark/png/nodes_ltr.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..a39678c668f8fef6515d1ab397ca055ca0a070a0 GIT binary patch literal 557 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0v>?icxV4=6Op)5S4F<9zD`L%u@>Jg)IU z{#%?S8x|TEZ7le&Y*5%96q>}?*`=8ydC&Zm63?EyeoB*7 z$LtDQk%P)wE(Z6z=M)p2{(jZ>+^xzWH+La>T znp5~C|&pda&9}LNxH8PwtnI8k) zDN^DZQQ}xyl96A;;G0-fl9{IvR9c*!U$*`9nVCR&Rgip2Vo9o1a#1RfVlXl=GSW3L z)HSjUF)*+)HU%PWAj7~QUep8>KnM-F`6-!cmAEzNdGz!FHAsSN2+mI{DNig)WhgH% z*UQYyE>2D?NY%?PN}v7CMhd9N7^0}OC^?lOqokz3N?$)YKQ}i&uUM}k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b={>FY@Ug0|O(wr;B5V$MLgM4E+xq2(<1O zZ{=!Lv$rcvSt_mdvZ=La%4-JRm2)ioHh(djf4|ml?tETj=LA)4 zvGhp)rOr|c%?o72)&yCfP|!$MFz1*d8qTvJDUUt7dfVT5a0wcVzREeP^$97+E|E&hOfq?#iCj5_LH{hwa41txf83jr$f) zdBAMBck@EITmD9q=4{){u<=B&OW1}z5*PSB3LW@i>NGD$#cH)*Sc1Nw_Wx6UVf$<^ z*K7`-eEEOv+*7xYFKO#vX)ICOS$M!LZ;gbKo0sCZM=LXvob^$xN%ntwGPDrw^z>5@bVg zep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt;w7MWsc_sSFtQ44$rjF6*2Ung9nB>RSK+ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/nodes_ltr.64.disabled.png b/app/ui/style/olive-dark/png/nodes_ltr.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..74358f1d90f0aab5a42f75c0ff8aab45c72e3b6e GIT binary patch literal 818 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_!}`$az8V_;xh=;`7Zl5y|tjf37yjv~iD zzCZ22WV~q21e=nVm$v@@uUEqP@`|F%n*@mr7tL2CH;jz0-#cS-b5W(Ze*X8`wDOxj zcYe6MqTYFUjOLhtV1F4>Ux zw{C7+1CutRkOJdBxdU@|ZctKJEDzb~~z}(I2-_$SqB=~sWl;pk--Q{%?bDX#zwmg<`nXmUq{C$nn%Z6<|j4?B< zw#pna7JYiPW=eF}JeSa&9W#GDHJiGcklz|GO0K){Si74a(DgvFHAgF|2CgxusSu>HzS(4 zY2T!!o7R}m{yvYh%;u39F#beJTq8;xOG`5Hix_+pi%K%{6oN{Nv-8WgpFT4aD6a~V zPf09EwMs5Z1yT$~21Z7@28OyumLUcPR>r14qzz;k7{rU3fKmxULvDUbW?Cg~4SF6u zeLxM8ARB`7(@M${i&7cN%ggmL^RkPR6AM!H@{7`Ezq647Dl&#BDlJM*WymNgDX`Ml zPtMQH&Ce^=E6>c%%uP+nOav*{2l4bn67$mY<1>@<^Wx@fOaN+U@O1TaS?83{1OSyk BHkJSY literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/nodes_rtl.128.disabled.png b/app/ui/style/olive-dark/png/nodes_rtl.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..460d100246c636c1115fb2bb9a757ab9037cb768 GIT binary patch literal 1308 zcmZ`&drVVz6h4<;3PlJNsS1TrP{|@fYjG`O!de~!hG^wc!3VUIQY+Hi^+C}nTnnT_ ztVM?iDoMNIQ;)#qeggr{Ua&A43NT`e-#|OAzTJ%b6OJIg1IzA3yuP>o11b9hM z_!9sv3*e~;Ah-fxnX;;V^LnCTlO7ut0nlJv!6pzz8J(gA@H8w0Vj7*25~Q6bCN9$M zG2#g;RxVb`_5+YgVj}p7xt8&&+n9ytdPBD3o_&LF?eMJ;9e$`w_X1(8A$4*(%MlS>)D6u}%~I$i_pxC&X}24+BCU?l z58KFiHhykte2TukBk% z3fwQ0fq)ju0j*VHBXA2{3N6+VSgv^VXjf?vaMPm(&VN5c`gd^t|I9ZC@*gLKmk&{< zmCxu`Y2>YKyarm>*$#dSH9gc>K=Gbl;;p4F??IFJq7a&pbYL!(XNyjoy@Lxq@D23F zTZyX+2Ogcc`O0uK|G~Gmd92pkd-$hJ2?ypZ4ld>%mxRoKnD)Am-H-=do4`e~;(EK`%$s^=f7jgmBw*cG_vFe8 zS+QJLcIn3D*o#*)iTi1sZ*CDv_x~aEBrere6Pc{xYc)GD6~u{E8o7cIuT^JZIbU_( zswDcW7Wx@tjWk%Ik`f8nEH>Mpwbq~gej}*V-4$#T7?icxV4=6Ov)5S4F<9utsA@?Bzf!6)r zj~9gGh&vt(wEFSCzN5Lj+OhCu!0~S~QdvTLlV0B4+kdCJ>Eo8v-5hrJn06>Rb{aEA zPBms&`$*GzVW0AImJ71eKRlh@DLjwSU)HH_-ZZrX>&f{Nmxuu-la>!{qLk z%U0Pj96zT_;WssZz39Br2_5}+trLuk4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=_xSdd=Jz`)4q>EamTas28O!~8=A06G< ztdQj?x^fEh=P>)X0vj2u6^gRU8q)9bIvn43s`=!fL!b2-6N`B-FbcQnem&y1uk_5E zB@212-@PhoQuUu3w8-R)WwcVbkfX!(K8M$#r*EE8tYCfqzu=;m(arYVPx6z_pWDmu z^M(20dbPmte_w7^O_;D^W9O^dV>2SSHw758ez_{Rgei9g>r88pATQac$HQK(?)$Wc zvCu8@URB$wz8OXz`{Qm(EGyzrl6K~MqA`EZ?^VYXe%^nW*Y+x&L2G*&`x03f*Q(b) z8;xK7_cVIM_4hR}oJ2}oBT5`gOEU6{7)rX4*i8fkED1z4a&>a`RI%(<*UmkY6xO7^p!K zWJ7R%T1k0gQ7S`udAVL@UUqSEVnM22eo^}DcQ#T$MaB?CrA5i93>hUQ1y=g{$@#gt w`FX{9<(b);xv43ci6G_rAfA3mVqSWFd}eZfUfg_*2|(=(p00i_>zopr00PJJs{jB1 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/nodes_rtl.64.disabled.png b/app/ui/style/olive-dark/png/nodes_rtl.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..1206e23382aba7552e9c5d0b29e6e45bfae648ad GIT binary patch literal 826 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_!J1Pjt@85kH>db&7AUHxCLUor8~$>x?I{;6CmJ$yZP$qCJlnq{@ySaIsRIqJXn`IH&! z3qQEf{AId{@0W{i$?jfVl5QsJSq_*KZV%qmP_f9eU`bqqowr=Z1F02E3(lUiSt#D9uZY@G zAr4Un&K9W#Z5CdU+lEI)9tjHHejW0c;pn%vxBn%D_#ZIZ9Qen)q-^Fd2II1{5Z(hF zkFVdQ I&MBb@0CN2?00000 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/nodes_ttb.128.disabled.png b/app/ui/style/olive-dark/png/nodes_ttb.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..c473551ab267e93d29517630917acec1b2d8f078 GIT binary patch literal 1249 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49co$<>9Xx7?=Y*T^vIyZoQprm@gbC(DHod z43B9ZE`sU}Q?^X`^FQ9vThiO%jfjR`Q&X=z?- z2Ccl}9d`4-K&n=E-Bpl_P_o3nUrx)2%p1zi6C~cAUnJaVNP+NMrxc`@}%nSNH z206;PYYc%?J?gq82>BT-FnS9>@7H*`4IdROOq zIQxU10)c|Obq?RIGFmK^`Eo0!@y%*xgD-!-{;x^}iXPSc-!p~b3fmPghAieRRfesM zTZI~KHAHbb+ERvj8ti|K!WDkM zVz3F|+Z3(}WZV(%TNyDUdjimvQ{2zo<&T;&|C&%v{Ok|P%=93X8-Z+j&*Duf6EyToMYJj-|jo}4#@@I z?z1u&Gr##)eOK^NYQvp+b%r%OAAY|t_n$DCvFiU_1_L93i}mMsANnWB@nXL+!+V}1 zU+#b3*^tlX^y@v>0b}OCzu)VOo=k6C@Xwn0!zqWD|9|K6{z_3;^Zy-#jgi33`eT<9 ztJ#=-`!gh*b;$W|`I&JWPs_LYOa~@4zWBFU&800}VaIV4Y{FKbJO57TDUZ1-hs6i5BLvVgtNqJ&XDnogBxn5>oc5!lI zL8@MUQTpt6Hc~)E#t=oNMaiiQ86_nJR{HwM`MJ6IdBu9=nc11SsVSL>Am#cXo_5iCfr1qvSbb9@qKK zVj1m9EZhc08w>s`mpl>^QC#8`5<4r2ZIZwOk1LlipD+LPwj*j92gBMc3=4{v`9DaC z+<5f$lzCIIN{h4e%eJ3BGZQGU3X)GrEJ?LWE=mPb z3`Pboc5!lIL8@MUQTpt6Hc~)E#t=oNMaiiQ86_nJR{HwM`MJ6IdBu9= rnc11SsVSL>Am#cXo_e^ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/nodes_ttb.32.disabled.png b/app/ui/style/olive-dark/png/nodes_ttb.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..89a5e67e915a554c9b8082dce58a44e724bf0468 GIT binary patch literal 635 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=_xSdd-|6nf?9;uzv_{OuIOyu$`OuJWxG ztTw8C+x;vZp5Ob=B3s4adsFCeaD#@!Ohto)&?O5GofPZqzw$qRN@7F=)2_txR*O3| zob6utvT8_eNQ;lK3})=SxbhkYwteo) zbmu!Ht7S0!nE3e&-xDAH1MZ3i>a}%uq8>3e_}$jLGA-}YT;T#Ei+|sY#UyL$gAbf| z@T*!rXjwIQr)aE=7e^-yJFW2~hz7{EQjVN&}Ey>6)V(?8YD#^@K2r4bk z&M(`3`pitAyeddOC9x#cD!C{XNHG{07#Zmr80s2Xh8P%F8Jk)en`r|X1_pV5_12?k z$jwj5OsmALL4LtBVW0*{kPX54X(i=}MX3zs<>h*rdD+Fui3O>8`9NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_!J)5^nNGcYht_jGX#$+-7+roBItqrlPo za%wE55rwQ1n{K`TADGkAsi-0nh1pKTVu*&{jq)XcW#J#&BW760eM_F#Xw z2Y+D`>oSSdDZJkz+85smx~^T~F1Lw&AD^8U$E`R~h6G1hMz|Bt zz6mWg$vNqjy1r{#{0f-^j1VN`;QTsu>85a|8<*S57CGJ2W?bX>u6&J4?P~+7uCV9kgO_G={;?#SaCkbO;X>+yujgxpvy1|MEob<_ z^X1>o`%GrcTkC}yP9JzQ|G#O9k-?AUj8AxS{+WJmn9_K1Ka;}z#;g1Dluo54d|A(A zF~9Nd{xUV2>5Vt*?fEb4V2}BJp>$2XMwCp+vK@lTk=i@FrK=vTexi4lC7@_}8k5FO zZ)3)oC2${`FsPPisx?g7Z6fS&GBzr{YvzPM!Q1ZFR~CL{Wb~a_J>@~_Wnip{l(nC}Q!>*kackIleeQCg21$?&!TD(=<%vb94CUqJdYO6I z#mR{Use1WE>9gP2NC6cYLll)3C8siEl#~=$>FX!w=jP_;73-B}W@qN6rer39lG|=Q$@zJ4^ED;_wKI6S`njxgN@xNAnw&35 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/open.128.disabled.png b/app/ui/style/olive-dark/png/open.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..63e4640a248e6040ff699516a576f27ede18bff7 GIT binary patch literal 1203 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49aT%>(~Mr7?_njT^vIyZoR#GFz>R10NaCl zS#8%$miA>6E1H@r81DVoRJh(W!Q(cwtD$e^CK-Vs{@n*}S3H~F`+Wb_O?PkVOP4>c zxZaR{hjXd*5jO9bgf_PYvuv&IJW_jemg$J*Is@T#D-Ubg%wp-_wd*jKXV~^bWSbR3 zs%+)TOEnL8-anq{+Q2<`kqPH1hLX7Y&?X~>PGkF-4%lyf)|&dqY>Ka+LLV`;NHmleNn zb~s}DuK&jWALn`P_)dIlSX9ZFUzH=g@vw5;X6ZY^4heA%4&7q@F9dG(*3EnJT3UKz zrl9V*)9EW$Fn65eo^eCTgZaccZUff|Y!l{*Cv+^({PEUP=)*BaH;x(1ioz^+CN5xP z`W7(5?*Q8Z;SY=_Si~4su$VD)u!J#WuuR)0JMY0)1NJWY`F}UKw_C3%&K8Pbn&8=N z`D{neOjFJ`dstJ9Pv5mP5^H!fSNSm`gIF@VN8D2h;R7emGtRVN*v(KT(-6yG&38br zL6$v1{6HV`2JVF8j5k;}JZ5;qbORg^Br7|7N9*^ryFJs>zt|pt8>Pu?u<6(338B*% zSJ<+DS|Jh|$+jVRd+rY{@A>8{z9^hg-Xxpkdh*V0jfA8*3EiG$pJF$qFJavEMn1#v zC>uYUe|xn}Li5YUgSABu*L`_bJ|mr9xZqq~wh?dK-}LU=U-DM2;s4SYbvf~_w8EQ> zR)$S{t0%-9(6o*=XVcjzP<3Qm+CRH<)v`WoKa*w7#LU? zn_3xLXagAr26l%+KcQ&I%}>cptHiCrfBsuPpaw~h4Z-Bu8ABA67A2=LWR#Q?Sn2C0=jZ0;=N0RfXJ%*Srlw>jf|Tonc={oU cdFlD_naTNiaq~4M0JSrCy85}Sb4q9e0M2{FIsgCw literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/open.16.disabled.png b/app/ui/style/olive-dark/png/open.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..7b574201ce41039502f2a22f8d7d5ea3a9f76b05 GIT binary patch literal 571 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0v>O)C$74HR1C>EaloaenFfvsp}z0!KdH zKX>lL0(Rl44+4+u`TzL`Lv_alevWR%2|j%5@?y-Fe_6TWUvO-!W9PP}&o-g!#qZt> z{ys_J#51|mNgM|p7k_NKw$8n3!F;#u@UVL3V%=@3&N4doqObk@YXmg;-x&ysxK~fe z^$R%?IIN{h4e%eJ3BGZQGU3X)Gr zEJ?LWE=mPb3`PbgcyqV(DCY@~pSj3J6ji;`0rGD=Dctn~Gh z^K*0a^NRJ#GqW>uQ&Tb%LCW<(JpGWwy!8C|%;fyMxcM3rfZ7>6UHx3vIVCg!0H_tk AMF0Q* literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/open.32.disabled.png b/app/ui/style/olive-dark/png/open.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..83c00d52eaaae7d2b73f4363fb701ab7a6c44805 GIT binary patch literal 677 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b={9Rv!MEfq_xP)5S5w=azSRjIm!*Li&qABFm>MB zu+t@_VYa)@igpgk1QtcsmX2obci!D|Uf=Wid}MbCyWY?39(mdK II;Vst07j1T;{X5v literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/open.64.disabled.png b/app/ui/style/olive-dark/png/open.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..7bb9ac8d338af131a670dca6ab00a243e57c39dd GIT binary patch literal 819 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_!J)5^nNGcYhN@^oO}ZjapB#wDC96y0@yOU;*0I z3*Ja=_`?39^pI-9>bCxTk%ogz-Sy`!Ow4i`KF20(*q+{;|EJ<&wz0vn-VduJ#63Qo zWVkUm;Je<0N0WFjl&NtY%$E@2*f;gU><95(wwygX4|E@x*>`zX)JE}Vj0f&}Imt<; zv2D2_c6)V(?8YD#^@K2r4bk&M(`3`pitAyeddOC9x#cD!C{X zNHG{07#Zmr80s2Xh8P%F8Jk)en`;9Z1_md(RHacgc%%uP+nOav*{2l4bn67$mY<1>@<^Wx@fOaN+U@O1TaS?83{1OPxHGlu{G literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/paste.128.disabled.png b/app/ui/style/olive-dark/png/paste.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..5bdb2b5d0d0a94daac50ab729f69084d57130cb8 GIT binary patch literal 971 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49aT%>(~N;nyfrs978H@y`5{AcgR7&^?2A6 zri%*;SovhaFi5V*%nf7v#zQxzF zEzNJ&@bCMO(R}yKt=`pq277OvEISzd|761RcXE{nFZ?$7dh)XQ?VFigrG2q0jz4)> zuWqr<{D5NZuZN3|u$|cdA4GN3eG=~pTD&Joq(N*!AVXBcv!zKB-X-6=@B98|UKHb6 z{v~hUiG8?ms-ocg4UP%>cAs9neec`1xmj=I?*5M2u>16~oz-8&%Z|R&vv1s8{e}6; zn|GTE(;u=|{QG@>POE%^tN%Y%oeH)b2G#|v86YcWZk7I%TOPi#x?8UPv$g|c2IH(r z|2aZ!rJrs1DY}4R3qvo{1tyb?j7|6Nuartus;Xnj<>xH||GV`UzX&efvPaYmn6N}jTq8;xOG`5Hix_+pi%K%{ z6oN{Nv-8WgpFT4aD6a~VPf09EwMs5Z1yT$~21Z7@28OyumLUcPR>r1Q#unN@hJk_I zq0mn#8glbfGSez?Yw(}{)(@yb5@bVgep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U& zKt;w7MWsc_sSFtQ44$rjF6*2UngE&)avcBw literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/paste.16.disabled.png b/app/ui/style/olive-dark/png/paste.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..830537ac4bcfae77adc2bae8bdeb9715aa76f9e7 GIT binary patch literal 547 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0v>`(MWv2o##+>EaloasKYPjd_Ox1Y9nD zmRq(#$#t10r_kL0|C1M)XfALx*(ek#B9YH^d&VIl+wC`F&t{}eo_NCU$;TISgYDNG zP5F?PzU-^HPG`hz?<(o}FQ-?8|DM?TzT~V%D8Hw0tCwZC%!ZA)j>q{KC%#Idv_ zBfp5jH?gQBGfyF?v^YDzZ2RdmGlBA|Ao-NUl2ohYqEsNoU}Ruqq-$WPYh)Q>U|?lz zYGrJp4P+P?*c}S}grXrgKP5A*61N8b`EUJz8YDqB1m~xflqVLYGL)B>>t*I;7bhnc zr0V4trO$q619GM@L{Vu`awk4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=|Gzm6>sD0Iow#WBR=_}eKP`I-zQTJ{Sm z&v5YIn7m=cypS#ogIv#nfDfbD2T+=Wr?&y$-p( zP^m`ntd>MciG#6)V(?8YD#^@K2r4bk&M(`3`pitAyeddOC9x#cD!C{XNHG{0 z7#Zmr80s2Xh8P%F8Jk)eTWA9r1_pMALO-Es$jwj5OsmAL!GHc+KcEIlkPX54X(i=} zMX3zs<>h*rdD+Fui3O>8`9(zpNs literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/paste.64.disabled.png b/app/ui/style/olive-dark/png/paste.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..5ec3e8dd1faf4cda0172a4c1114fbfa37698d9a7 GIT binary patch literal 649 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_#!{@1Yu0)>8fx;Tbp+CKUNL za7TU2`hLZD|J)Ogr8e5e9%S0^?6j!Pf%99e8uD~6<^GJ`SI4PvZ0!ok88a)6h0T>Q zf4fV!VS2?e$qSE{X_a&^gr2E?>?HW$eU$8igrCKCzEo`d8eNv)Ie*8-HCJVC@E%Z^ z?-RCxVKI+G*al|{hF7yUXgQpE;kfr>$lEjy-UJ3_i31F51`UinFy?{tArS#rVvpxu zYdp*N;*9%uUwOh2@vhv$+yLX>;pWNJRtre;UZ;u1RK%~SqqQtSZBqP6w z!8fs}Br{JTsI)jczij*IGc$qmsv!B4#FA92FVdQ&MBb@0R05!HUIzs literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/pause.128.disabled.png b/app/ui/style/olive-dark/png/pause.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..0a9940fad3afec19e9fe05e2aeb42abaaf740e03 GIT binary patch literal 781 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49e;qm1f5o7#M3jT^vIyZoR#;HjgP##Py+V zvWI|2!Hs?YA7ANXwrpZK9CGc#8UF7nTT^RiRd3qdG|y#{iYFND?S6Na`Lf+{nN8mR z5A)0IOh2=A_uszVzRW(g=PY&qd{lM*p77p`&*1CN6NyKg4d;6=3%gsp?*1=>la*J` zJegozwLP~XbN>(jUvEv`uH1c=`ANi=Rj=|sGraz{>~wtS-CVhZaEQR|xO4kg?YeDq zz&??ois3B77lv7kFBnajFED4YEnvUEyj_7UIlc0Om`g6&9V!2Ki%}}V(LGj56Wk=dl;?x^SD>?!fyYchFim#RO=`{^??f%2*#`IN+x zRIB8oR3OD*WME{ZYhb8rWEo;$U}bD-Wo)SpWEdFC*c#`Cq9HdwB{QuOw}zK5o`DjU zB*=!~{Irtt#G+J&^73-M%)IR4^^@~+ ybMy0x^~y7|Gjmf@G7~|{^+7!Ski@+7{P@h|{JgmN8WVup89ZJ6T-G@yGywoir6a}w literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/pause.16.disabled.png b/app/ui/style/olive-dark/png/pause.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..cb95ad2662ae3cc6fd6329bd599e3c91fccd1e22 GIT binary patch literal 476 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0v>`(MWv2o&=6ba4#PIDhx7B42}nNb|$@ z3%9ofEA03mDKMug08-nxGO3D+9QW?t2%k?tzvWt@w3sUv+i_&MmvylQSGKMHBElN&h$S5f( zu+rC0&d<%w&nwm|&&k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b={@QE7G@C=}!A;uzv_{B4gRUxR`G3%l@( zzl{I>2Yz6#UUz{>>ZIbvNspG@x|_q+^S|(X)mxbghL$Jiwr|~3dgw;qgU-pJqAaHE z2b~3LjRdP`(kYX@0Ff!6LFw`}&3^6dUGB&j`w$uhP z3=C#$jdMfMkei>9nO2Eg!^;=XKmjKSvLQG>t)x7$D3zhSyj(9cFS|H7u^?41zbJk7 zI~ysWB4dc6(xT*4hK!Pu0xNy} literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/pause.64.disabled.png b/app/ui/style/olive-dark/png/pause.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..3414b83520787f6a0fee57c0b699e4083230d4e0 GIT binary patch literal 553 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_#!J1WhN1BGUIx;Tbp+FBIzX;b^OXT?zaK8h?KZSlsJ}_WaJky_$C&W zWacRZl@@2`mu)|NW+qTx6(paMSdwa$T$Bo=7>o>zjC2hQb&V`T3=FJ{O|6VAwSf!+ zgBe@n+)y;+=BH$)RpQq0^2IYypi6>m2+mI{DNig)WhgH%*UQYyE>2D?NY%?PN}v7C zMhd9N7^0}OC^?lOqokz3N?$)YKQ}i&uUM}NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49Xf3$F#$MnqGOjIEGZ*dOIi9U)WKkZ9XH5 zGRs0K%|PyB0s$ZY|L0%7M}zT}MofaBv+|Vwk4}3huD>>SX0hKho9S;-4pp9d_j}Si zJ&V4_DCn!erCd>F-D!~tZJKU#iq0swykzX=?9jD3^Y`;%!QY7rwn>bPh8Gsr9zUr3 z?aM-gKUPN!Zp4x91Ii77I-%}SYJ?EP+@&RouO+R^IRsbZOm(# z76e#d&{^PNeL;5tP+E_{Xgf1E)240A(o9C%n6;S{f~_~GD0o|MP-U33ow=H+ZhP}{ zQ|^Y$d&j<-EN}8o- zfy%c`b=UMBtjJ@0KIe*V!uFqUe@tVQX*)K5e=1}9m!O=*PxAJ1?o84*+4twBsKFBH zb3wUj{s$EIPVrZ|DO7OM@5j6{Z*Qi$4Z?0K&9^Eke446nDR*eIqQc|ka4{C18@$tZ znqAjZNPHA6GQs5ITTYKTKen-?c+_|^ZBp4M%6L=gep|yM{;1bN6HGsD^3YFK=k-T<`Dj@W^#Fhm)&Am#}cC)afx^7p~u_H08%mmY6#g^;iCO zr~<_fce2P_n7;4LQn3P?Z`CO+!vD)=)mvI6?2)m5ICbKRoLklX9EP zXW#HAmS|~m>u2sCw~v3Y>j;bjW(1KE*N76w(vpn)A_m{YqLR!!g`m>n?EJFrr_am; z%BzCpQxZ#3t&)pUffR$0fsv7}fuXLEWr%@+m9eRniGendVPL@iLZ}BtLvDUbW?Cg~ z4P{$b0dp^dB*=!~{Irtt#G+J&^73-M%)IR4^^@~+bMy0x^~y7|Gjmf@G7~|{^+7!Ski@+7{P@h|{JgmN8WVup89ZJ6T-G@y GGywoLK*?bM literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/play.16.disabled.png b/app/ui/style/olive-dark/png/play.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..2784f195174b37b2aabb9f272d7a9bf6f8fb1aa7 GIT binary patch literal 517 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0v>@2E684iqZ!ba4#PIKOs+A$L=PK->Ia zO}oxz+wSll{Qo~)B&sBRr9JzBR{> z)8gVQ0Z#dECaY35G8~)PUAB>-U`d?#9sOx{UM4&C@GSGFxOnrh{l_IoG+*tu{J#3% zd`^`($(r`{IIN{h4e%eJ3BGZQGU3X)GrEJ?LW zE=mPb3`Pb>t*I;7bhncr0V4trO$q6BL!4s3{g~Cl$^?tQBqQ1rLUiypPQSX vSFBf_nVp%Nnv$6aQmzl;>4zldrRT?ICggTe~DWM4fHoUAZ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/play.32.disabled.png b/app/ui/style/olive-dark/png/play.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..3f5d6d922e1a0506133c9d1682bc62f0232a9603 GIT binary patch literal 618 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b={@QE7G@D0I`)#WBR=_}eS7+>DMQ$3Ff~ z+&g7@49CJJTn~TO3r^p*<*Dk<2`hYe%bF{dU0)|T{oGlf^O<#XS7ttlzovT8BRgd0 ziIV~s_?Q{^)~NWf7foDJ9Y6cb)-)y&x!pp-Z&%lF?}^)RJfiy?+J@6FjpZtsta3&RrH)upbV zU}D)(RS6U8Z2kqW4SqW3Yw+Le z{IA$NUmEVoPxzh>^rT3MYeb1-X-P(Y5rc1HQAuW=LQrXOc7ECR(`RM^?)FK#IZ0z{p6~z);u7GQ_~Z%GlJ(*iswFFff?0HO>u1LvDUbW?Cg~4KH6j1I3yo z$cEtjw370~qEv?R@^Zb*yzJuS#DY}4{G#;P?`))iii{zON{fNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_z;B#vo^F)%O|d%8G=WZZjuBi5VAQRLXi z|4XK9P?8dyt?%NZzohoR{^m&{%fy95rNnN%TqJ!mCGEPgwfW~eZwuJ!-V~hEV>SeV z#^ji;C9Ym`^TmA5M89NsdGTJw97ChmLX4Ll{W^bX(ixpC4D8psHm{v3Rr|8*^21Dq zN%hxwWb>YGkU6lfi|zX*9p(+zp?Obg?k~Q<&M@K9^e7Jo6`m(1DhygNC#HrRW@PA- z^srT7=-Z)fB>RPdb$PQI1D6kbuEV>R3-}viE+6E7P;ND+g~g%O`(-N&!bLLFkGwuxv#@^GN>>D)u-R^jOWz=r_ zHu*byMS8}*PdOJ@IL`OP#_zRzF!{`x&-s^`_IyYPb2ZCikg>ieeqiV0zYIksd+Zd_ zkBhUeDZBFI-H$~L{8G``hlGXaT1#0c>|zbryQFC6ve%bxR_Oem#pf_nC}Q!>*kacd~sx(b+# z7$iY91m~xflqVLYGL)B>>t*I;7bhncr0V4trO$q6BL!4s3{g~Cl$^?tQBqQ1rLUiy zpPQSXSFBf_nVp%Nnv$6aQmzl;>4zldrRT?ICggTe~DWM4f#cda9 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/plus.128.disabled.png b/app/ui/style/olive-dark/png/plus.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..424fdf31154b0e05043abfed264abc3c4c3110b1 GIT binary patch literal 1114 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49c4M2c-`HHJ$WyaSW-r^>*%AzuN%+ac za&&9(aWi!+`J(yj-|2m>-afZ-3?^y^EJ)hrDB2x!yzi~#|2g@c>_5+lM{iuS)0{!E zMZk$evDwAOe_fNHNd42=1SXLgkC+VIK|@u=o}BaimUDt(9bA5?1u zIInG+*u(lFJVs9A<_Z4OF6ztP#>?l(&v+f`&zjNVy716ax4j|_t_P+43T`_yN-65a z*j(OxkMqEqgRlHJW|&3X|OkI+2^;+#d|G- z8vMA9Iu|S4_4~s?8OBLpT@HHvlTl@uU}|>nrS|5D z@jGqhe*JIUFT~8yTadlIYqeX@8ovFKdcUIn@N7P~Pi#H=->`LY`))tU`u*IKQN)1= zbitDGsab&e?Yz5w2cny=&K1~@4UUZ5dHLI}?wi|CRNS5x+?B@kWT{JV|IuaER;mmR zOu8YED;a!q)?r}3!&pDn-t^vbt9DR10)xOc`mwW>cyju|~)!=F^~b2rD2hzUFM zHIv(Z?^$^59tQ)%+@!W2|HWP%{xx&1zZ8oy!}_2%w;MreuSFn8{y&4^vG&7h<&I{+ zbS_fj8d2g{T9T1p#NeA)RFave5L8;6onN;7^qHAJc~y{nN@7W>RdP`(kYX@0Ff!6L zFw`}&3^6dUGB&j`G1LY!3=9^|m$X39kei>9nO2Eg!-Yc&ff~}U&Kt;w7MWsc_sSFtQ44$rjF6*2UngH_Iuhswn literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/plus.16.disabled.png b/app/ui/style/olive-dark/png/plus.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..ec99ce38a789330a8e96224bee212d6053becda2 GIT binary patch literal 531 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0xXkT|9t1{7-Yba4#PIKTG%UM?m>0oRB5 zDnFR@qBB&(_We)3xij;Q)5gx$4L2J$h|Nn)`f=DB=}1#MD<48Q87%f2i8 zn|?N|;@q=0C%nW?ct=a$s}_<9Um?GC6VNpxC9V-Aj-@3T`9%!AiA5!uc?v^!1bTb93|aiuKAfvomv3Q!*1l%Jo4!{gA}G^!)hDk4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=_waZEc5D74wr#WBR=_}i(ze1{Z7TI@UK zEl`QQTEYE({}-`a>w3Ph_}1uYNCj7jnQrVpmnC*sypFA*)%(ou79oMteC!ob#iy5= zaqU^iw!qEexlz_sZhkh^^Jm_Y$TVr?cn3(3>BMDo-Klt$F*$nT$`#rQB*m;14y%5e*dK>@3 zz~X^a^!G-Udox*I^Zi|>{Bm}yFen5?N?apK97{_w@{1UJ6N^eR^Av(gi?j2~wx2#T z6DY3=l21u2NwrEYN(E93Mg~Skx(0^2MwTH423E$VRwf48K!$+<`wO8S6b-rgDVb@N zxHXh*T?LE=21$?&!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NC6cYLll)3C8siE zl#~=$>FX!w=jP_;73-B}W@qN6rer39lG|=Q$@zJ4^ED;_wKI6S`njxg HN@xNAyIaCK literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/plus.64.disabled.png b/app/ui/style/olive-dark/png/plus.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..61b971cb023ec3fbfd16a7dbcce0cdbc041125e3 GIT binary patch literal 729 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_z;B#vo^F)%QCc)B=-WZZi@(>t%(K*Y6w zp^yRZM4>Q;vI~FtcQZ#YuAGu0Wz2DIN`GeaK|k%i)_a)mC(llwmnzWtZ@W**qEcmz z=P&rVii8$Cby_Uv$mrwddC53RYiX=oQIvyl|0BhPCAWFD%i8ojVhrkg$WXL;H#hr) zsJl8c4qFay`iu0(=fqT_|RF<+QEMoY~?(vKF&+XG2*cVvcQka>$U!+~TfRo9< zLz2ma@!Eo=Gg$-pwdSmwq3<2c`~KqP#TJiF^qn~zSo8eb>%c#=&Mdzh9)J4yFYi5_k4IKA2{WrcrL9x#|iN?apK97{_w@{1UJ6N^eR^Av(gi?j2~wx2#T6DY3= zl21u2NwrEYN(E93Mg~Skx(0^2MwTH423E$VRwf48K!$+<`wO8S6b-rgDVb@NxHXh* zT?I@V43Z!lg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3kpe0*hA1j6N={|SC@Cqh z($`PU&&|!xE7mK|%+AbBP036IDc1+_^g|N!((~gplk@Z9=4(sbP0l+XkK Dd7=V$ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/prev.128.disabled.png b/app/ui/style/olive-dark/png/prev.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..6e6a92df1dbc0d8ac4a0b80a0a7b408a67bf41e6 GIT binary patch literal 1281 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49c4M2c-`%FfbQ*x;TbZ+5y< zzVjbzxAN9}FQu#C^Y8o9|HqwX=xEw3JZByE&1QvMmL!Woe1eJTKZ(~Szjnk(D_WiJ zezAF_h=gzV|E}#lUrS%GgeukZJZAL~k?7^u*9q*O5uhD^z@zcvjUU2m3}sDKf0=8< zIhZ;1hPo-M_qxmFhdP|^y5AjqiPk~qVb*$bGz0n90)slUhhEE(epYAXEr9S zev~dE(DGF7`vl*QOSW(NXJqivTTozCv+#ZvM#qZ9vR&HSM^T5f3SQdXh2d4R3omX-(yu5I!Z>bi; z4QUzHr5qC!cGo;|vz{}Hfx$AVIrwcw7n6hD&jaOe8-R?an&jEpZzp6iF)TUErhdy% zl(ivd^I^G@^*PcNj0z_hqhm7KLxmX>(sPPd$c6_poan82xOnS3h0jeLTh^Ac-wbbA zQ_9ZeowRKi^HNhs>${D&7Oj~2&Y>{$hFkf9Jv!^|%dWUDe&HS871oBl@&sTAl_$6~ z#FZzwF}x^YU&fMA!hVe9$$P#toDF;KHhMC$?rMHf+tb6vFu`p099O@tbxI$Z^0<4B zY3)ep{<}hR;~^oI7%_?7aDgR~S7lw^Yl!JDh)yu^b!z9es+FxeTKJQRkGp4?){eB< zY4Ud+57m`jWO}ma_}cejk-NFLHvP{izc8ugcyZ7whtG}rRnyZfKmPZyNS?fyy`BGt zZ`JiFp3lre_9TTbTK|uU$)VEwY-HMuB$*wLrkEXn8J%T?nlUWSci#W7_+>F?L~mSp4?G597Hm1O2A1eF$N=a+3ieP$+5UKJ#tl30>zm0Xkxq!^40jEr;* z40VkxLktY8j7_af47Gs_1A~S0B`r`iEaloaenQDjeJcGJZ<}h z6&1Rfn^RwiU&P>>SX7dk zrw~+HoSk2`{q&icKzUV=d`eDz3xPq+APKS|I6tkVJh3R1p}f3YFEcN@I61K(RWH9NefB#W zDWD=_h@#S>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b={8e^B}WQ0Skhi(`n#@wZb>XE_-PwC%sx z#l1AHV4>)ejOqLScV{eph&T)n`t| zR~mM{nbiGtCR6my89UWiFLD;uF!VA=uUyKuAh}cTXHRIT;i6pq3$`~J#mm`0mFono zxNNk^(p(|)olNejceVTu-X(8@^BGoLSn~4q1JF>7oc#5cufZ&1so~+T z))p)0U3uQBn)^N8dmuHQ21xg;Bf6r1S^9>Qd`f( z5(d*ptc@;vKG*sk$vbeV!|X}7-RH+iX^+pc{h6ONvG?yvyAt-djBDyGuOC)+Jqip7 zkrLO4635b#jQk=7-^8Ml%shpl(&Fs=vhAnO%mm7-g5*;YOH!?pi&B9UgOP!ek*z4Z-Bu8ABA67A2=LWR#Q?Sn2C0=jZ0;=N0RfXJ%*Srlw>j kf|Tonc={oUdFlD_naTNiaq~4M0JSrCy85}Sb4q9e0JT)>kN^Mx literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/prev.64.disabled.png b/app/ui/style/olive-dark/png/prev.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..f1b497a430c0b9c393d727f740a9da3d1cdfd585 GIT binary patch literal 841 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/record.128.disabled.png b/app/ui/style/olive-dark/png/record.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..a875ded1c1a45c965cd69910281b7120ebb1e0fb GIT binary patch literal 1186 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49eP#=d0c@Ffa>xx;TbZ+*mILG4Au4?c402Y?ZgE zgz1l*u9w@vw3r>URfQhNs+;sSe|vGPLPUwtpW#5&j~s

^Z5~b_dGp7+*)SvV7lHz<6~HQ`2Vs-3?4%8om@eTz>PA z>CziUm(zNTk^1`?TDUzva9XF8adPZyIdT7eayq}bz}v%L+a>Bt84un(%xaS=8qgqT za7yce;%j1vmT7 z?9qr=oEv0k_~_23qtks3oZh%oSc_3{S~?q!60U1bvu27 zkbC<7iyIv0&fRJ1>VL<0%Z)c$a~i~XQ@5=QtS+vpJJVvwzwta5H+s@-5qR|aqj;C! z#=Kqz_6A^n5h-zvC~+(;$;dBa@J%c#$;?v-DlN{=FWY|l%uJxXDo8#hu_VKa*w7#LU?n_8I|YXcbu24)N#f+!kt^HVa@DsgLYkKM2qs6i5BLvVgt zNqJ&XDnogBxn5>oc5!lIL8@MUQTpt6Hc~)E#t=oNMaiiQ86_nJR{HwM`MJ6IdBu9= rnc11SsVSL>Am#cXo_EaloaXvXgqT)bD!oT$7 z3F!~g6B2$L`7q<7bz9T_9G+b~Isxb8+fMiFSMX8W!T6~llZ{P`tx`gGVT1h9tU4c7 z3kIiy>LMTeXK=|G|7qO(-@xX`^RxXt{E2lEG7Jo!%Y_7A&ovhT+9gur8d2g{T9T1p z#NeA)RFave5L8;6onN;7^qHAJc~y{nN@7W>RdP`(kYX@0Ff!6LFw`}&3^6dUGB&j` zG13My3=AfeGcQHakei>9nO2Eg!$Ymzl0XfTARB`7(@M${i&7cN%ggmL^RkPR6AM!H z@{7`Ezq647Dl&#BDlJM*WymNgDX`MlPtMQH&Ce^=E6>c%%uP+nOav*{2l4bn67$mY Z<1>@<^Wx@fOaN+U@O1TaS?83{1OT-jnDPJs literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/record.32.disabled.png b/app/ui/style/olive-dark/png/record.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..7401e30f31040995a442f8b49c55a51ea172baf3 GIT binary patch literal 577 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=|F?SxkqP-ugvi(`n#@wby#^EEpNxSm(? za%f0;-Sy`Ge_ve-hsFh(X<4(jrF>(o>z{M{rC1d06c?K8cZI+#P zYy4~dJh0tgrEU)+?-FgPTY18pfo>Nmag8W(EG@~%FJkabEGo&&QwS<8&dx8}e)`Nz zpu8$bJ|(dv)hf9t6-Y4{85kMq8W`#tS%w%GSQ(pInHXsU83qOu%9)pK~8Zb_g9NstY}`DrEPiAAXl<>lpinR(g8$%zH2dih1^v)|cB0TmfT6qObwr!r)e zloVL$>nG>u=H}-W>y>9_XXd7+WF~@?>w|duA&GhE`SF>_`FU~kH6{SHGkCiCxvXNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_#U8_!q0VPIhF_jGX#$+-7+y01Tzp@2ht zxno#|gOf+X!>(Wd>w6zeUC*rIA$I8bwQi~834XVacGrfdS?O=ied(Yez`?@Q_`k2n z^OB*jRLDvJ=Janl5u1aa+Y4Oa)YM(XZU0nf=Bm5AtR*h<&s~){J7?pme5D1#ay!LY z()O%!e#o@zn6YZ&hsK4sPB|$@&hXPYby(JaSImNjK8c7a|3d`U>b`cEzbdq{K`PUc z$!cM8tlR?apFETJmgHR*72M0jQsQ%ZrHw=M@qe-zUjCWmg!h-iRk06Pxl?TI1H~2WIa- zz}3xujsFu9%axf+Hy=3k$8Vark z-S_Ll;=iX0b|q-t{29me!EoO7l|c(x=G@p^Dtn%}5gefR7;g*3nM$0Eb^^whNQrAi ziDPL=Mt%{4Z(>nNW}ZS&X>oRb+4j?CW&-6^LGmeyC8<`)MX5lF!N|bKNY}tn*T^!& zz`)Ab)XKzI8^|y)Fk|2lMA49&pOTqYiCcqv?1r^K4U!-mg7ec#$`gxH8OqDc^)mCa zi<1)zQuXqS(r3T3kpe0*hA1j6N={|SC@Cqh($`PU&&|!xE7mK|%+AbBP036IDc1+_ f^g|N!((~gplk@Z9=4(sbP0l+XkK^&=)Q literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/redo.128.disabled.png b/app/ui/style/olive-dark/png/redo.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..d05e785bc8f43eb0ecd63c0f38237407d74df681 GIT binary patch literal 1361 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49Yt4tKa)GFfbqRba4!+xb=3YoFtY2(b+5b{|i~a z`t8E8fa_ke+wbMIU(f!3p8A+?&f}$ub{Ce3FBNwP)e-w++0b-?CE?(wrC-)5m@)ch zbD!r*68>;vVQ)C=M$R2YSyz``-NaQO`)h@u7%{vci<67M7O42~!#bxP*is#2?(tI^ht{ ztQCvfw3bacTAuol?KJP!YK{dw#SsqKEsq5@HVLu@hz!fC&|{ntvsO7V3f1K=v^(J?EV$(Yb3+7mv$8D zWC%F)9=aN}GSEQe8ka)r*24G3{x!k;Gs+{@PUV{RazkC*_BT5|+F8ALB*Prj8gsE$ zJnO+*j?ICuKSiBgwxTn#-8Vi#-2G0v=lzdgZ6B;WysZCYUQ2Wv{N`TvNT_QQ&?_}YImpR?f@f7O>#rd89v#h&|R|0s7u zwQY#$p32z`a>;)V%>6&>p^Ryk2m@uOE>YekqjHFsygq!TS1P=A#a*pK|Pr2$&A8>5AF0OfG+oR>DrS0t)x2@*A7r$6= zCc{mdKI;Vst0K4=p`2YX_ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/redo.16.disabled.png b/app/ui/style/olive-dark/png/redo.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..5becd8c4665acb2dd30696907a0893a40d3bb58e GIT binary patch literal 525 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0xXZaiQ01}IeH>EaloasKGUja-Ku1YGXN z@Tsf~Jfaf&=fA(uL2K^+2bB6+9h>8#?!NoTmUgqXzNb3>zR3QP1pg0SFHb%+USRF+ z^Stg+(#cuOj~0CvDRB0Vff zI{($m@0ZWpFtB`4PrJ#$84PrXNQrAiiDPL=Mt%{4Z(>nNW}ZS&X>oRb+4j?CW&-6^ zLGmeyC8<`)MX5lF!N|bKNY}tn*T^!&z`)Ab)XKzI8^|y)Fk|2lMA49&pOTqYiCcqv z>;_QaNP=t#&QB{TPb^AhC@(M9%goCzPEIUH)ypqRpZ(583aH2!qNubeIh7%!q@=(~ zUq3lNH#a}8Sg$-YJ2N*mB{LDETpz^K4@t~R&yUYc&d-aRuQ36rox#)9&t;ucLK6Ue C2B`7? literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/redo.32.disabled.png b/app/ui/style/olive-dark/png/redo.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..f98a0d8a106d9bdfb20c4d1e51185d0ed5de1bc9 GIT binary patch literal 648 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b={?c)sclQ0Tj-i(`n#@wZdXW*u@6aXUYE zg=T1X#F8nyH1v+_`+t~2kL%I-RX3bi4ldiNXXMqq)8Mg_z@MWn)+IEqJ{dR23sRm9^ZlfjjTsZF-~>%Nw);}GyT*kkW4Xu!;nYrOEG{IyLT zVmG=H8khc1zaXanrGi6BXH80^;0xo$4qFy|m|Ai`gUjwHW5%g!lb8JgW))wb7TcXv zF>kw(=oECcziD5+?ezTD&0j4nE~xo3aG7nauxx(p`({bUQSXEEbQ$8=<{4}&$Y@v) zJnuwm_80%Zg4qT3E}B0Mp6fgFZy}58+;3ZJ6>H9m7BNiRRdP`(kYX@0Ff!6LFw`}&3^6dU zGB&j`G1dk$3=GT|I0R8N-4) literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/redo.64.disabled.png b/app/ui/style/olive-dark/png/redo.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..1aad3f66714973faa5761db2e93aa93980076307 GIT binary patch literal 837 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_#U8_!q0VPIg~;_2cTl5y|t^l1M>1`=)e z`6o16*r+Hpxr7M)`~P3DqEX0sih!tyTFt!~xp&*5v!nBV-CG;|-NtrJETcFGOlNNY zvbXE>4j0kvGcO-AFuh6ac=Y~g%d*PXq9zYHzcb3c__#Hdv0??s^}BnxcCmPMPSX3H z!?h;plvSmO3FigzxL{EucBgQD2L1|v&9ig3t*$pRwPh^1Gvm^cu7+7nVT_`zXPG{6 z-C|7<<>5G?DIqu^@P~7Q?VLv}p;MG@pZWjUrGF-qPsXC&Su^hmiUzUl=(CoQZc-N! zV!GoJ|Cnj+N`c#MJ6oe47brSK?`+&Bnw7$##1wPnz?Jl!{QBP<*xk2%oM?G~b&C+c z{>L8Cnop^kF-HXA%dX64!_l$I_CF{2~V5#G;bSJcXdr z;_Upg?WfPo1j?&|g5-u&wghk1yp1V zQB+!#oXU_ont`Fkrha~2u=f`Iz=jX-E*O&m* O&fw|l=d#Wzp$P!3W;YoC literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/rew.128.disabled.png b/app/ui/style/olive-dark/png/rew.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..efc4a943382732a589686cd6a2aa65361d335301 GIT binary patch literal 1279 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49Yt4tKa)GFfiwNx;TbZ+vo z2ScZ%O3x_*EEE6#PiJVB676C$h{|AL)-|XzFx=-*o>rE&UiRHjkMiGdY$L1Qojb!f z!$)oM$rPiR2K0O zgR~n7A_SIsBuOx8RVJHlw=E5>tga^RF=j_#gj{R|CV^PVQ_euD}VxYNNtGkY>KXR86n7AYJwEwYwBL%I(;A!(G$mcke zJX)q@XJ~(+!PD>0F*cv7N9HC8pM>{MWK>nD+rqe1rEUr1QegeNt@yB zr_!IIJJ#j>-1X-ar+&!k@MqyA!F~a59y8-NE{U?c^{4CjDK?GI+E42nmT0p);;DGB zNVANN$lr$JHFGb)-~5QEwKGJ<0He)iTry) z-|$5}yw20%5x>*=#JTmdf?9j6KS&5^@3#IRBdoLC`h%Q^?pA9K2~oYx)*Lco`s=MZ z=80>pweFZDp}Eq!V~(WOa_f$HQrb(cGfd1QoXRg06qS71-F$5G;mP-8Rc6Y~fAUV@ z;;)7mC4O64y=?3sGI74#eAxAYCuguq-~5u+j+jlS121SU6rVF^enn@G#Y@(u#gBYT z4*it8#&NPCmo2WH@8pKbArkhdl{6(cx}R5`TW$GmBG=>e8vW(pwk{XGdEWi|)7QDn z%g;Ez+rFsghn2Jz-_7$|`(rfr&($@Z9+A+;XYgc>-E!Uhl`Bt~BjpE3?zsGavHYw< z_2DzklMR8HQKZB*qQtSZBqP6w!8fs}Br{JTsI)jczij*IGc$qmsv!B4#FA92FVdQ&MBb@07`%tPyhe` literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/rew.16.disabled.png b/app/ui/style/olive-dark/png/rew.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..c2ac62396f564a99d4318bb39f9444d62b4f2fc6 GIT binary patch literal 534 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/ripple.32.disabled.png b/app/ui/style/olive-dark/png/ripple.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..3a672e9df8d9f45b06c84e381f302752ab152554 GIT binary patch literal 695 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 K@W56QE&oprBld0p literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/rolling.16.disabled.png b/app/ui/style/olive-dark/png/rolling.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..e87acce6af78a23130951507364f53a8eaa5376e GIT binary patch literal 569 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0xX%~*5)CQxXFr;B5V#`&WcH~JlR5NLUr zFFVU3Z;?l%*iysy|Md>?3aR=|X*wKoEy%)7)x+Ur$oB2qt#{Qk+{Own@xg^W~=C&Wq=(52#<;I*X^*UL;&hf8tLUn{ulr@ro!c%mts(#M zwC~<`;sYK>#|UWrn+bHYNQrAiiDPL=Mt%{4Z(>nNW}ZS&X>oRb+4j?CK=P^}`IN+x zRIB8oR3OD*WME{ZYhb8rWEo;$U}bD-Wn!ugWEdEPUa-|h(U6;;l9^VCTZ2k(>vW(7 zNstY}`DrEPiAAXl<>lpinR(g8$%zH2dih1^v)|cB0TmfT6qObwr!r)eloVL$>nG>u y=H}-W>y>9_XXd7+WF~@?>w|duA&GhE`SF>_`FU~kH6{SHGkCiCxvXk4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b={AvF83w1_nkiPZ!4!kK=Er8u}kL5NO?B zEFr=0%tQD50x9wQ^rdBWO=uG_w_ai;m zwpwyY&6p^=E&gWWwWOn+`H$)(b+=h-R2??mFiG70+!M+B_uDhNH*p6ajH{bJZ}t=~J9xK0Yq5RtpfS{NafaN5dyLmIbt7QR++Q4A!1CY5fj{Z@^=84}pQ}Cy{t&c%@xIAo>)*szUmlo#P_CNrFJ^g8 zm>VmdP}e3-I3>$l0n1uxVsTDM1;{b|<$2DC_tYeb1-X-P(Y5rc1HQAuW=LQrXO zc7ECR(`RM^?)FK#IZ0z{p6~z);u7GQ_~Z%GlJ(#8ex|Ffa(cV5^Oy zAvZrIGp!Q029@5{=|ByVARB`7(@M${i&7cN%ggmL^RkPR6AM!H@{7`Ezq647Dl&#B zDlJM*WymNgDX`MlPtMQH&Ce^=E6>c%%uP+nOav*{2l4bn67$mY<1>@<^Wx@fOaN+U N@O1TaS?83{1ONNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_$9J}&J`25Ktwba4#Hxc7FZb^dJw5x4VG zuPSa!R&Z$3F?_Ic-Q~Ui>)-Gfyw)>)q$jy)%e2X2Q_u39a~7)9G^#tnTB07M_)|8{ z&ZV|7n7{bJwMV&i$4r@9dRo^gEv@Exnf&7@e`Squ!%O33pT8s@4v|~*L|w(-{@NLp z%UNn!;;xk*5^kywc3miL-}o|H^s+)_L*vRNr#YPU8mq;UwCW|NtSXa`R^>j&WAWr* z#AeecT~nrLYg>Q26}vi@W=V?F-o*Z9C2^zrLxa>>9_5jT<1@MKa+wu{OcqYm*l=ZRo7kNbNkqP=B*6v-`MvAZ}`f7#_wOl z%8%?ek_NSTI~F(}YUq6FcFJF3!i9%T()U-dDXe#3EcnfQ@NxN1X0Ahe{~Fp4R22!- zJMMcLmm$j6aT1@>X4NQ+BC9V-Aj-@3T`9%!AiA5!uc?viiX_$ zl+3hB+!{nv=Yw*hB*=!~{Irtt#G+J&^73-M%)IR4^^@~+bMy0x^~y7|Gjmf@G7~|{^+7!Ski@+7{P@h|{JgmN8WVup89ZJ6 KT-G@yGywogx0yfy literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/save.128.disabled.png b/app/ui/style/olive-dark/png/save.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..64f5e2cd0c590d9c13f0a84cb060563f13c2eb37 GIT binary patch literal 1137 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49fa#i}rm5YI@-5;uunK>+Rixd6ykTS|27i z3r#G$zUA~LoeuT~f9Er8(iIh27`sKZugjy2HL1~rjsNT1|5p3bBd=bZsV{uJ&{$a0 z=)K8O_9bEBR+qijI?isky89}-xPW_t*se>bb_6f?{d`x|A?xe8nje$CEa5*JEZeZD zvnDY0$EBeB%a@c7M9vK|iL*_bRi8D`!U=6n!zmNaH*G_>C^fHao2yX$$#^5 zLaqLUFALh!W&Z#9&RZyZ!J4`28Y@qw8sDv#as6IjCa^O~tl`cmT_pUrWU;O73;XP+ zZTDyCc2_L*-n)SPuRp`(QbzB1mP&@(rHt!1J~3Q-%`~m*?bEcF=nt0-H(yxF&-Bjf z04HOm;*+L^y+S1p4)I)%SxgxG4lo~Jkz)v8l4nq86ldsB*j;6_ce$zC8OOQrw!FPP znPIQgTd;WdES24b;c^f9-epa?{gC0d@*L*5+nO0?HJiD+UC6wg z@_oarzmJ|?dEu13c>RraGvni*@6DZ)`%v`br1>iBOMdFDdh-#O{6$J!BT5`gOEU6{ z7&# z=Gs7pfx#hv9VQeFx%nxXX_dG&Y!;fb52!&BWJ7R%T1k0gQ7S`udAVL@UUqSEVnM22 zeo^}DcQ#T$MaB?CrA5i93>hUQ1y=g{$@#gt`FX{9<(b);xv43ci6G_rAfA3mVqSWF Yd}eZfUfg_*2|(=(p00i_>zopr0P3{0eES)5S4Fx(Y|Nm!P(@ndWpmr!>N@=WxrP+&po2}-2F4|%4m=fF?zjxX9=KROn z+u68UFP*S?_lx0*)>Kic&3rE#{H7k$IrhA9BHLvR#qX#5A1?el-Ol64k%(`)e_sd&WfVqDLJ_lVs1n&*;UW{GeiH%@_j!R|7S?q(`o#6l5Ag= zdhe=}^Lv1f6)ACzC~+(;$;dBa@J%c#$;?v-DlN{=FWY|l%uJxXDo8#hu_VKa*w7#LU?n_8KeX#*Js1}PTm+fX#*=BH$)RpQnlnmQj8bCMt%g7ec# z$`gxH8OqDc^)mCai<1)zQuXqS(r3T3kpe0*hA1j6N={|SC@Cqh($`PU&&|!xE7mK| r%+AbBP036IDc1+_^g|N!((~gplk@Z9=4(sbP0l+XkK#(Bcq literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/save.32.disabled.png b/app/ui/style/olive-dark/png/save.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..c4435381f2e3e388334ed9c5a8ebb495b66df410 GIT binary patch literal 646 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=|HacN&NQ0S|ti(`n#@wbz0`I`&`+U6%c zc7L?s$J8BG9smEIx3J#fQPAkY;VH{vvt;V4Cl7XSDJb`Uzs}ZGd2xin679pGPc4?T z+@Cb}@aiWkjCN}Z{NDIl#Dv|rbY|RC#q&|&uN(GmOuNXsB*wZys8?;1B2!Jtq7u>64}8eWJ#WUpxc!0K`2UdQiCaR&omdkYtRJ9{AFKijpnq2la|Vx3G`m4h6NSLdio za(bSwKX;5NL2;SGH;b3&9|SgKb2)_--Ko0uQFhUPDQBjlhx3_~H!oEPi({Cz%r5l1 z=D#PZWv1U=IbP0l+XkK9s=b4 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/save.64.disabled.png b/app/ui/style/olive-dark/png/save.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..6b1e9c666db39c33b5063ee9fff473d30739a04d GIT binary patch literal 777 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_$9J}&J`W?*2f@N{tu$+-9SMxg&80|E9A z|2wKfedcg-^h@k(y#GI1qNapxk|dkWr6a$RmYlhI_idlvtljF{ww}#jx_2EbTi=?$ z+s+#tmn|x?<`ccQiQo2sOmJDW^_~x$i%}uY? z?pQ6hf%Dhp37$J#LHH>$@{iz9NtjO8;cdN_wI~xo2DEJ?BYC0CBpu{5jcQVs5YZ+}0@*87PmFj_=PTq8;xOG`5Hix_+pi%K%{6oN{Nv-8Wg zpFT4aD6a~VPf09EwMs5Z1yT$~21Z7@28OyumLUcPR>r1QCT7||hJitfh59xW4Y~O# znQ4`{HHfCp2PH^JkPX54X(i=}MX3zs<>h*rdD+Fui3O>8`9NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49fa#i}rnGU|{_1>EaktaqI1zjd_P01X$;< zcPx4+WVQY0|MQ;S>`S>-q~@rpbV)Dz+I9TV%u~HDZ;G-p$8;oXvfA zTJK*xU$MN{g1y$YTo1LPK0d8ik8!f#}*Z`~I)!OTYg^PvL;<0bZs%jCZgz zd@pzTpVB|lwf<0e`8Sb6p(eiX-e|V0&am3OdAY#4MWy0%@4O5z?wT)P=6U>)eY5BB zA7^Fy?&)u;1OvnECDH#o_V4-Qef5#5R;a_u>#yElf8oOTw5m_Nwru;E)~L15 zD=y5aFbLZ8{D;B!O6>({=Rex{JFI>Bf3lUo!`XR{W9K!5-~BGXWSyk-kB4pVFY2g;t`_c7K1hix#2JmV67`!V)V z%)=cGvuyWy&(M|;TTlgNoQX+fXi$is>Rh*}#AYriWr&oxMwB>~mSp4?G597Hm1O2A z1eF$N=a+3ieP$+5UKJ#tl30>zm0Xkxq!^40jEr;*40VkxLktY8j7_af%(a0G1A{~U zI!q`Ua`RI%(<*Um*eo<b4l literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/sequence.16.disabled.png b/app/ui/style/olive-dark/png/sequence.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..8e653250ec2086f24189f42ddee347569f250a6e GIT binary patch literal 497 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0xXZ(FqQD^MuG)5S4FJg)Iw zlOs;3e)+dt=*Y&tB$+E>CQCQhpRSjTQ(E?=CV9;!=8_(kJsidkD-!0}6@-Yri}UH! zi_>dQQ_0p2o>>$WC?mtOvFz|~iG;&4^KMP5ulUNjR6;s&&#TNTpj{#*t`Q}Ur6n2p zMGU@)MJ1Ve3PGjC+4*JLPoJ3ylvf4GrzDo7S|t~y0x1R~10y3{14CUS%Mb$tD`QhD z6LW1K!@%H>zYY_MhTQy=%(P0}8a4|}*$31h39=zLKdq!Zu_%?Hyu4g5GcUV1Ik6yB zFTW^#_B$IXpdw?4qSB(|RECU_k^(Dz{p9@I-2A*^z4FZL%-qzJ%tVlKeGpGSBrz{N ZKRz=#KQC^+#sr{t22WQ%mvv4FO#o=Jn&kih literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/sequence.32.disabled.png b/app/ui/style/olive-dark/png/sequence.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..aa8c85bd42f9f9df5088f04bca2534614805d328 GIT binary patch literal 524 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b={^wrJm1pis4^i(`n#@wZbP`5F{>Sj2^P z{AR9c`d`oU=YX~CiO`A6vyUy2s=l*fa+?pA#&KEhu$GtKo8EjYelW4aN?^jeMt7C+ zK3fM%F@~u*SL6Z|Tw(*ZSkIO&@8{UbTFG*Q!}|3JX18}42am8b^xQe@KWF-H>7@VR zH`yM14d2Na%PFtS7wZ%ZbcRTYYeb1-X-P(Y5rc1HQAuW=LQrXOc7ECR(`RM^?)FK#IZ0z{p6~z);u7GQ_~Z%GlJ(#9SN5Ffcgeufv3*AvZrIGp!Q0hRs4# z_5n3Wf@}!RPb(=;EJ|f4FE7{2%*!rLPAo{(%P&fw{mw=TsK^+isI(|Kl_8^~q`*pF zKRG`)H$SgfuRJq5GdDFQGZCa*AH>rSNz6;nkIzib&x@O{F#)KZ!PC{xWt~$(69Dz2 BrrQ7j literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/sequence.64.disabled.png b/app/ui/style/olive-dark/png/sequence.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..0a6e6258d766bce831426650d33af90e89f2e574 GIT binary patch literal 608 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_$9+ZOHn3KTl;>EalYaqsO6L%wDM0Ty;= z$K%|8n*RLP+;c#Gfp?uWd?mzyRXcbYc6dAIQa!{A5>*8KZ7GY%VzSft7M z9MUbj=CLqf=|_XW#ZM0@^|C)|QTq99eha6o+<#W?hyzTmvGWAgM9g+N%m~OR$*fuK zdU|>M@nbU-zt4EEVqbrTm&3I=*4gijf=r)x&Jw<0`dn3gLH4=F{9hPBnk7rlR-Wg4 zG3)a*;Q-U;e%61jrsbTO;a&La{L1vB^F-s9@BcptHiBgv(OZf3nW1{1m~xflqVLYGL)B> z>t*I;7bhncr0V4trO$q6BL!4s3{g~Cl$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6a jQmzl;>4zldrRT?ICggTe~DWM4f`?=Ck literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/slide.128.disabled.png b/app/ui/style/olive-dark/png/slide.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..502977d98a0d88a035722ddb92b536c5f3ca073b GIT binary patch literal 1507 zcmah}dpOf;9Diri+}WufQEtiY)L5g`h>b1g(gh{gSu?ggwl!nOSj%~GQX@s=dM@g5 zzu$6>CJ!3LPRAqHl2jZqw{5<`2{^&V>eBaOexxMdS@B8DKQ!eT%x+(wwb+Rkb z3qs-cC?TMgX5jUjRD}V5CCx5 z0BCda9-Xy^426sCE<^xIZy94Drp$5mivmFJ`u4!m-YwE05y>Nal92CVdcYW?T3QDw z2rn{`;1fGCmp{(hYpZoq(>H6U#A~+xw(uxkc9b-?x=Aq+=CAC3P8uPeOh3<+m80vl zqY>l{+q-0OUcTJR|IV_WWy^uH*1UQED zV4Mgh)=eI}>9?P?rG^@4+p_@oIDZAu!pH^!Y_CNEwZgzuCh% z9SZ87=2qDh{?Ly3^M) zA^dGwfh;gq7HL37mq@nSE)9&M{9#J#Tj4U<(!e z@@f$ZpDu{a)ss*r4+fxYfKt6<)biNYc%Gjcq5&w(^~Yt7I)JKl8k=|qj$aw0G$rZR zuBDjqJ91(VF!Hp0fKuVc>}s9(OMp@zTx+0DwK1#X>gwo9cxcmWk_EkeIP6;F7z{Nh zFZ-U~t}E0Zsv=Y?$aZe*Mv&wm*+%B^j3hYW5BH4-r5gn!6r*W=*i&cJvE20xn-62? z)CuKx_kJEFC%}FuR{M91iD4(4s~eL8)I}$ps%u0+S5#II?Sl%5Zx0W_5t*B*Zt?b< zi#~posvc>&ep-#dJ4dN=h%PPO)9QP~n!xW!70z{`%v$wNx72N>m!Io+9~3#wlE%rz zvuV0u&4M%A*jRS7K0jc`T(d)8l7qx?aD60N?FfRI+lS0S=O-9w(yt-X|Z*aILqSTKd%%)I9!*%$ESq)mrE%-sg z@HuDuf_rxxD2nuQc-SIK>gVZh6+7=1XMsZ9wXbSXwY)$0P`x<${A^lW?fvAyrL5HT z!T$PvF&^2k+QOuD6Sp?BF3elDufg@tEU-tP79u5)LC*Tz4l^@5T+>harqz?)@i|kK zL;o0!$)BaeFkpuSFpx!Pc#)p4QB4>FMzCN6#_0W~Siu96ro9=P>`ORs`OkOKC9N3{ zIDeVx2M(p&!=jZF2!r~7Q{Z<1VN%DN`6T#KQjw9yOuE$j_3=vwd^eHq{L`a5pR%C8 z3GCvLF7OD^JO-N!JgHnBlV#`?9TmZjY3hBJ1NkP~ekhek$I-ZS2mls?#iB8X(b(fY z7!1z(2+ro%L1=@)*dPOE|5J!$hcd(BzFi>sPx(Rxo$VXE*`Eg@i;guD;hg8lFf>;0 z*`+$#eDjW4HP5kn8x&bxTJ(_3^49zX8X2vXmnRkr%-_SDYss?fdESJhqT$DOvUBMj zI9tQ{j8%P$M_*0FjCiw~D!$+TYis>I+O2iz*Gz_WbJgBEyiD8)bel+tYeb1-X-P(Y z5rc1HQAuW=LQrXOc7ECR(`RM^?)FK#IZ0z{p6~z);u7GQ_~Z%GlJ( z#6la$FfcG-k9m!vAvZrIGp!Q02G^)3;Xnc%%uP+nOav*{2l4bn67$mY Z<1>@<^Wx@fOaN+U@O1TaS?83{1OQiZwS52p literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/slide.32.disabled.png b/app/ui/style/olive-dark/png/slide.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..b7e38785921e5473747618a5a8f5b54a537553f0 GIT binary patch literal 665 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/slip.16.disabled.png b/app/ui/style/olive-dark/png/slip.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..6a961406d889ff20353732484739ad8ece552f38 GIT binary patch literal 569 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0vh;9j*ED8jJ9)5S4F<9zD{!>q#r0xb{U zOKL7?2z=~*NAgaj_=&&ziO<>ep157rR@tQaM5V0bLKySs_vbdO@s&y5{UZ1Aj)_~l zZ?D}G>HULoQCDrq`B#h`QO^_D%lLM!kZ)Kq*Q85&ho;nWNzae(R(<{DUt@S<{j@b7 zUOtv9^b-zzY0}lby}I3Gmxh$&lbe2zzq2keJhw^i%Ztljqz#oPzmEUKa*w7#LU?n_8JzXagAr1}5w=uTeDQ=BH$)RpQp*8ucU` zs6i5BLvVgtNqJ&XDnogBxn5>oc5!lIL8@MUQTpt6Hc~)E#t=oNMaiiQ86_nJR{HwM z`MJ6IdBu9=nc11SsVSL>Am#cXo_k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b;w)y=pU1gi+Sh#WBR=_}!^z^O_9=*wO_B zEuHoEew=*o^FRNK)tp}#yQitYm)MoM`t43`YxS%{)*4!@sY+Ehk6|S&NPaj z4P%%UsOX%f@w0ZtvW^VHfA7|2*EblqFlJ;u>NRC}w1W4Mrb1w_-{ZJeuhp&}omQS` zXaDf%wd$1SMb)t?mmkM_Wvb~mSgbv6cBZL8Ise)gg}&1nyRMWN)@>{}-&n#H_(CJJ z_0W;s4b2LNzRUHn`#D-=t-F(vGDXYlbgy>)<%$ovBFp&%zixbW;esnCgToB@l{zw? z9`E-kXZYfcptHiCrHR?$?P=h4MhT#0PlJdl&REF~Ma=pyF?Be9af>gcyqV(DCY@~pS zj3J6ji;`0rGD=Dctn~Gh^K*0a^NRJ#GqW>uQ&Tb%LCW<(JpGWwy!8C|%;fyMxcM3r QfZ7>6UHx3vIVCg!0D0{D&j0`b literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/slip.64.disabled.png b/app/ui/style/olive-dark/png/slip.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..b042029c3fed9e774c07b5216f116eb40fbf1744 GIT binary patch literal 935 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/smooth_edges.64.disabled.png b/app/ui/style/olive-dark/png/smooth_edges.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..5112b281655186a8067076a105f3bca12ea9e638 GIT binary patch literal 1001 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_zWYt}YT18R!!ba4#Hxc7F3Z@!cxPn*2@ zY=uMZEe?VTqI|k5uXz9afBuA_=W4B`tSug$LRw6!7VX~z%J&3yDBsfi{F%>;ltw}33sUKw=e4%;q|DPjpsp3I zbnHv2DBlBxZ@agcKAKXzHkJKBl3@C+(2pG@3^Oc`nZ8`f|0k?rVsT1uzoJ0W`U#rM z&u?hSU&?QZ?U*%1*8h0GK34W0-HI+E8o`SXMc=Pfz3jsfx4^|DQ#CE+sOzj<4|cRy zxwN|-dK9tm7qi8@m*4c1NLV^C0DCoFL5UA`wHgV9mD&!x8KSQ%1|94S(t z*MEV*VgA;s&3715PF^UO|0A!--&B64`^H()4QtNK+gUq_V;bX+%pW${jq(js8=dAc za32Ey7!!ef!<-VU;H|%N*x8~w}aCJg0 zqa1Ji&v@nvPV;>X*L*?(`-2~F7v%qFNy}r{bmS6ubk&q_HiPvU>?NOAHmp6&c4EmnY3Eniw!E?$-K<5Q_%;Wv;ib z+^=}Q^iC=l!-C@`D~gkJ{!Vx=nV!JB*sD{CRf#V!jmLa{T|UEkS?9@FbLaQ(0wz0= z64!_l$I_CF{2~V5#G;bSJcXdr;_Upg?WfPo1j?&|-L1P+nfH zmzkGcoSayYs+V7sKKq@G6i|^dL{Vu`awq0xAM z2Z>WnIXssWB>qb_5u);jSABG2Ks;X@vnB^+9j0_yS3LMc(sCMQw4v?O$u5krtZB#| zPME&`g!B8?=xJ#*m?g4@@e&?*k8wpdjRWEf7{ac zdag}7-E=NeNTL{TuGWXd^rdCI>_x_fC`P+i{9O0rW9*zMhopmgE4u#B(zcOv`PKy{ z9rhg06o?WuN#dPm_hR2Eg8I+_!^~J!fN^)m)^LPT-?S9@#aEhil@bBSMlD*T*=NnC zBy`9@AS_aP?!YeW!m-LIt_0#%&CXG=^dcf^vs zVuKk_{T{PWaIOzR=_iaF`C6S=9j!eMab+A$0LmtHZ%UTzuoq(K)0@aQmC37j1bbgotTO1`Wz zTLPLZKW>g&>;jeJ4#vx-n)^}nKc4);&zdCcvS}db5pUy6TZc+J7Jg172iMs`Rkun; z!4vKdR~+Q8T`@~Je(3@pgnHqtH|)|4a1a$57r0=ii3ij!{Kab>6&2{8Ks*&ypl)sK zw(c)ju)6jjE&C=0wfn1N=i`d_KVLMR@9EnWnQ=brN*2j6kH~iKY46NQ41sj>=@(E~ z(Auy3hUnKcaILwxzkDEnx8?P|E`zqP=-aBef4YU+doO>6z>=1UdHV5)s}U`WXOqaa zJP@ewjpffc1gPatQs^g$Aj}=ssC`IAnZ~t!07G4*?psr6e=0g38e2X|3Zal-4H}V0>$^lE(rHe%T9j~~l9dhprHELMv6HZw@Ybog8u*Jc7_D&)WSUINfX}RIYq$?&o^y z_0kZ|5=!3v;J;b)-8WStjo}fc6fhoVJUlvkv>z^SJoplZR7*L;iYkKq{Z0VUsdbq$ zeF-bvm#w+PyCjxUe{{q4fEreI=lUWS@m`ScS+5zz9%+j&oElfk#hyt=UKLO6t+qi; z$jT&}`22#Rg5YPlS-Nhx3hr+culbS9vym4|_q2r@8R~YPHhfGIwB{k76VztZvX_0) z%(cO%CAw}NcT+ar{^zVd`Gjb2wCa{m+ z9ULl^=!V;ROf_$2T2l>^?yxiTm}>35rjjr zuwby0lGw?q<~&vcD~TDyir%(cY%`0X=;S!|-&qWHa%81(z9bG_?!MF(*Qm^Y12|m+ Ak^lez literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/text-bold.16.disabled.png b/app/ui/style/olive-dark/png/text-bold.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..6d1ba7f9e4203a538adeb21da634830000fe1d6a GIT binary patch literal 594 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0vhdb;G24p8Wzr;B5V#`)3=Z zJNqnJ)>PH;MXAI6|Nr-b%@O>${M&*|&pux$>U?Y8@>q$qGBbs#TCFiJO3kiKd~@>P z;#(8+_8!YIPwShw+yCr^#N)GfE-?vBepUPCgY4@cJxkLAmb?i$!uq4LPNs17xzRdP`(kYX@0Ff!6LFw`}&3^6dUGB&j` zHP8k!3=B>?2??QS$jwj5OsmALVVC@>bwCZ0ARB`7(@M${i&7cN%ggmL^RkPR6AM!H z@{7`Ezq647Dl&#BDlJM*WymNgDX`MlPtMQH&Ce^=E6>c%%uP+nOav*{2l4bn67$mY Z<1>@<^Wx@fOaN+U@O1TaS?83{1OTzp(R2U+ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/text-bold.32.disabled.png b/app/ui/style/olive-dark/png/text-bold.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..ed1c9ead355fd7f19a91dc68a8421dffdf7b91b4 GIT binary patch literal 762 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b;xZbjc+h1_s7VPZ!4!kK;?H`g$LB5NMn4 z`PuPpyGNkU+Kv~lAOHX7x1Cd&vLQbxR@FrU{ziGZw2XNRMPb$#wUD z(Y$A_bHu0Q^MByd+RFY$EW~c1^j(*)9NrBpq#nFd%(S~?RpR|mzjHO?+D~tEZ~iUH zw4eI$V2;M_yp|s8O5K#~kHv?k6#i_D+1G1lyX^yKL1BSF6bGjyr(v;@or`W?cGmvJ zJyGX1Jk^!~<3XgvHKN3^v?L?Hh`~3ps3bE_A*i%CJHKrE=`%Bd@~R;Dl*E!$tK_0o zAjM#0U}U6gV5n2d7#N&(5)wkukei>9nO2Eg!!G$%>wp?0K{f>E zrERAdZMR9cjr%8*e~QedU8pPZkYo1a&# tSDu-jnVXuDnFvy@58~;EB<7{($7d$z=f%y}m;lty;OXk;vd$@?2>|&~8ASj9 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/text-bold.64.disabled.png b/app/ui/style/olive-dark/png/text-bold.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..d1b0be728d75b621b8604130f18e68d13d5480c9 GIT binary patch literal 1142 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_!>o-Vnh1Jv}?)5S3) z`dgX8@N3!e)223CZ~DtSuMy!*_}+3*hT)3w^yvFRo=4LXPHUO2TjR{da)Ec7@A8|9 zToY4XZ9Jw{YW!fj?zvA4Ew?JZ_T5PXKjG$lxFlX<1Dnc3Zaa&Rg&%ZmBMJn)?6uGGPg^*hE1vaIsmJG@*doc( z7pBCAT(aHB!w@dI#A^#r!;y!xxf@>BI%ZV|u^rfSc={>7hYVV4W}mb63{CtfnPDmQ zDYt4xfakIeC;OBaL@PCLWp9ZnX4{(1{J}(}&Z=8VVB;aJtsC=CS8Yy9m|DKT(Ahy! zNP)$2)e9SMk*D*U5>92lE}m#=qwl#)#xt#bj`)Fc!+8@wGg?fRpSJqVSxpV~qO9Gg z*U${L-4tjGwF*rG3<)@6g=r;&(-eGjDC9DUS2SiF-BT5`g zOEU6{7)L2HHS|fx&4fAt4kEx%nxXX_dG&?2=!#4yZvAWJ7R%T1k0gQ7S`udAVL@UUqSE zVnM22eo^}DcQ#T$MaB?CrA5i93>hUQ1y=g{$@#gt`FX{9<(b);xv43ci6G_rAfA3m cVqSWFd}eZfUfg_*2|(=(p00i_>zopr058tYW&i*H literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/text-italic.128.disabled.png b/app/ui/style/olive-dark/png/text-italic.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..8552de509b0eb55ab3b2f6334c1bd7294e90676f GIT binary patch literal 1223 zcmZ`&X;4#F82xS*mJsx*ED6E#Kw(fMWGRao+CCtZP()~?EyY$6LWBq*Aq2x>hgYRw zM^S8t(Lx0*)j>MYVk;EJmWXt~)&*ohihvXWtA?d6EQ;Ef@mGKJ$9K5i0FKczshmR6T6PR-)dZgT=ieKzZ*&kw3L`ADL_Nn1`);V^|B9h0M?gU3mu*MM@=9LscsgVrM!alV zgZHOng-`pE`1x;^4d0pNmi?Le(4mn@Ik=_pfm zs2O38ikj~XK`GX4lXvAgu<<4>lj9?%;n$&SC92SkH;#>U+w|-L0hy-_CY9$R@L9H5 zN?sa*Zhaqf332Lh8VM6O1|#T%3*iZ`d(7t_>Npv>b|x<5CWpJ6JpQQ8p(Uq1^yb!m zYv5Mf?YeQ-U%lb2x1Ad2s)5DNu0*mP=jzUkZfMz?^Vxt4X+suOB>FS<02ZO(!S{ci zR*`uRrdfX1Isi;)8z7hq9?!hKp1yICwb*vP`V0&?C}=(O3wLi8xX}*A+zR=4a}+Fa ziDXzuxYyPX_Opo#=NkK`Hgyc&!pNDCZ}&Z6nwj(KJWtZ?iU}_wTsWEd9mfkPcA7HH zD`K?Kg$jBxZooHfYid)3QZNU#7z>E$8e4oV@*%gFcZTG$F`Z@j9<8!ykW2WNZiXHy zyhp~2rr2@uCd=SG`5VsfFyoWJ9Zq5O`8EjwCGlvY^OtPNv%c0dVA<~J{5x|#=`QTD zV>m?|gy`SO_uD2{qF&z;0qXKHGt4wW4f`1U&{&upGVgT);jQ2UMpv%KICBTv6AdMu z=5*4qvo;T5#SUIN_R>Ol^_*}d^DPM#y_Wj^a6~aiofIP$_=;H6RZ+!axw1bD|yw03ybw@4m0Q7Hqq*VJmje$i&JEMe8p9$A91}#$BqC8E^ouw_*u@w zK_SsuGTgNs1+pm8KAwl4;>dHqbeE9JygmIdm<7l?(jO;Wwm$ms zXV9D0Wl`IPrcs~D$rzbv49hj9>kJU9G#E8mxI8x}L$|l}k1JnMy0=wNRT|Y2l|fAb zhy)^$zd-0O+L|B`NW_7XK%pPi2n5v=4JtLH8;yENK!8f8)#|cx_$Ez;MypQMD6RGY fD+@?aW~J$pH7Z@!t{UHRDh|<++oet6iv9lrIOD-Y literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/text-italic.16.disabled.png b/app/ui/style/olive-dark/png/text-italic.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..0ffc11adbb6c91d39187237709bf6b9f28743b21 GIT binary patch literal 553 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0vhdb;G24p3-@r;B5V#`&oi9Jvk|2(&(| zcXC~`c1y`)w>|$m_c)e>ZeUaHk`=!;V_Ag3>L(wc^7aVG#$IwczgQ#1a6y{*JM)bb znyjbI5|!oq-{;8Ngdk4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b;vLY4M|7K%rNjE{-7{$CpmM%hzPU)9U|G zpX1fu&hNkeonP3we$&DQLeE-nvp5~U^mWyRPg`woa!trM(td{1U9DtsfAMC9n&W%c z|DVs!pyqtArR0C(`vnQf%nlCBw@)&rGdOg=4k1wmRK47QqEIUX#1 z^I;0(9fnywJP%Z#2sJS{Yph-E!jQA^$HWg480RpFmS!@XUCzRwCfXpQ?Y%06A$^A#S%$^G8>=$wu z9pC@!*DYE&<&DQg?$+PZ=e%Yn#G9Nmv8+zouL<nNW}ZS& zX>oRb+4j?CW&-6^LGmeyC8<`)MX5lF!N|bKNY}tn*T^!&z`)Ab)XLOQ8^|y)$TgK* zhN2-iKP5A*61N7KjD=D_4U!-mg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T30Vy(u zC@L*VPG!g_DJihh*H6yR&CSm%)+^7<&dg0s$xH+(*9YNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_!>CoO)oi-Cc0vZsql3@|ffyab3*|Zo9$jenW_gf(=Sb9pIGvBK(f$nX>>8gB{CnhX z^ES7qLe(xbO1$N`?k0=Bzl<3@TFx@eNk4ji6~oMbJ*hel{>eHG8cb&xTGvE~E1d3% zkya=@a4>zlSVKU)GJ|=BGb7jeAbs0I;t8&^BN#R^`!LuXjNPPK#rj5UM*3BkSnd?Q z8yBp^92V|pY~YO5VA$moCfFp_aD~x&O%kKa(iM^iw3)t$Wn4VMw1iJ0b?FLOg|#hH z1Rta`E@hs=U~_ub#9a)nX)ZAxKbUk<&vwWv@H&PHg)!flEx4Lh#w#$sp|NZu0~@;r z!;XWw8V-s~O^hOEJMkS^|kIMpW=nNW}ZS&X>oRb+4j?CW&-6^LGmeyC8<`)MX5lF!N|bKNY}tn z*T^!&z`)Ab)XLOQ8^|y)$TgK*hN2-iKP5A*61N7KjD=D_4U!-mg7ec#$`gxH8OqDc z^)mCai<1)zQuXqS(r3T30Vy(uC@L*VPG!g_DJihh*H6yR&CSm%)+^7<&dg0s$xH+( i*9YNS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49X@v$IB%d7??MDx;TbZ+F9XgR}^To@3&->_qZhKUn7s4OE|L+x_ z%a?tbG`fmr8|v*>DYcn@t0Ljv@osJZ4OUw}PThGfexr!~o3jqA8<;l)GQMHR31P5i zkQP0_cff66gmz{!&9QqOv!-E(SGr4sh@@fhJoY<-PyBn+nSwqs|9aM`&#a9JK zFL7XWGbrkiXnI-Yo;SJw^&Hz+hsZ^DnS-`Ik==E*L^R=bp58QuGuCQd3JC_qOl&h( zvj`TXW@ftxC#Tvl|S)xq7_4n}U#nD$j@HbA`kdtXwy!N%;forL}-PE+4GT{yp)$+LZfz_tbC9-)kEAQFgCMaNd8GcDt{8 zS!N`jvQ5~an7jVr_6;+OPBwZPP3=--I8gV>?#!&5oxbf!OS->K={{!hLAv3)+`28s zK4r``27Bj}ieEhH^eXlCGYjX9E0}oZMc%($U(i=OC-t@8vy0o-{i(lN^Vqt9VfT+s z4a+58$2>HyI`&CTGgK$h^0AZE!R+bpC-UksObC0m`IohF%~4f0iKHIR2BA|c7PVRG zL|w10|9oxEuXO&BK4s|-|C*;yj@>N2$Y;gmJ+d{LB|qFbjQ%vJS0-(kx+#g<^3U9W zgUoWNT?gHk?Yup`wuVRC`a|TpEf;#L?B*m`zwcTUz}R52VP>}8`NORDZvN{y*TUf7 z^B3`pm-iRCieXIKjl=uqwjM z_^|ic|1Tf2*c$iEG}zSeUg}kZ6LasG|2Bp$^0jlMjx(R1Df}VWh4=G{g?&=1G#0Zo z8#S;raSHJi_A;{V&`EmGwMYYq{_C_nVYLo=!nps>=jXG(HFiE&!BECvrqv+Z(94y; zp0Jqd2ICEokZYib+I@y#&27?KBe^~U^Rq~aYeb1-X-P(Y5rc1HQAuW=LQrXOc7ECR z(`RM^?)FK#IZ0z{p6~z);u7GQ_~Z%GlJ()JPl1FffR@%WRFJAvZrI zGp!Q02Hl3;z@mjg5@bVgep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt;w7MWsc_ zsSFtQ44$rj JF6*2UngB>=3}gTR literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/text-underline.16.disabled.png b/app/ui/style/olive-dark/png/text-underline.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..d22caf8b17ae670bbe36c40f033f89926f2d2939 GIT binary patch literal 529 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0vhp0xPUE}&3@r;B5V#`&uktho*)2)I7f z=XbH5tmNcUApUNDiKJLllH#o&8ZzB4_yv2mZr^pMct#RKpsV!GaHW2;RqOU2zok@K z#9bQyW7d8lIgQIvO1}2D?NY%?PN}v7C2BgRsqNubeIh7%! zq@=(~Uq3lNH#a}8Sg$-YJ2N*mB{LDETpz^K4@t~R&yUYc&d-aRuQ36rox#)9&t;uc GLK6TeN2zWA literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/text-underline.32.disabled.png b/app/ui/style/olive-dark/png/text-underline.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..f8f958b5def459f3aa2a514a4428b995130ee29d GIT binary patch literal 624 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b;vLY4M|7K%x7dE{-7{$KPJw?SI%n_6qTkEt;+^KmYgS+LX}K{)ytnPx8QTiJqfxTC)lG~B3~UGXGbFuQcv)I%9p8cQSHI^rO#O9}UnAK59m|?4 zsrm|2GK=qUS}=D9d}9h|u$gDF{BhT ziQ2aV?iF`gBzC?%*>K2vg&9M~!KI$Bi>8+6E1KQC>+fb$lBZMLuyp64HS_+x3u*ZA z;rPSju|Lj5UpK$?(xBC4?wqecuZonoMwB>~mSp4?G597Hm1O2A1eF$N=a+3ieP$+5 zUKJ#tl30>zm0Xkxq!^40jEr;*40VkxLktY8j7_af4Yh#`1A|;s$z>=Sa`RI%(<*Um zkjYpm1=Ju3vLQG>t)x7$D3zhSyj(9cFS|H7u^?41zbJk7I~$N9V~C>CqU2PDjFOT9 zD}DXs{M_99ykfob%NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_!Bc#fA#GB7YM_jGX#$+-9ShPVGA2Y~}0 z|1&XZc_az+cqtrXHoW)upSyiSe>1zVd}pBYB8B%K7a01qmPPlv&D}X6a@lVCX$yI| z|J&aAvwewUsg`Xa|G&##ozFt5-ky6Fx~#5>ohN~TS>gZ#n?VC3jQN56$l|K-cG14j zX??6GR^&|KS)kv|e&K37Q$z>rg{zN$w*G5)8qv^ns_i60tnJc@^?G^-YW-LWYE{o~ zc%mB-W^1r$eh&MB#hbMDZCtmh?1X0o%YwC=Hl=*vIJs#RTU6rJhYi*)SFhPlE6-Vd zct7X&PR2Ze9XoWSCpPhV{c_$B7*Tme_p{L5Kc<-{?yL`)bLHkG=a^Rg2OS*;Dm5LZ zbDJker?y5t_|6~x?$721lj~mSp4?G597Hm1O2A1eF$N=a+3ieP$+5UKJ#t zl30>zm0Xkxq!^40jEr;*40VkxLktY8j7_afjkJLb1A~~m%+@Fxa`RI%(<*Um&~4b= z4%8qCvLQG>t)x7$D3zhSyj(9cFS|H7u^?41zbJk7I~ysWB4dc6(xT*4hK!Pu0xNy} zg(gx^bLI7DSA|_yDrIrE>!Yk!r86f|G`Qt#i{7ewE%%I!B| zGz?Zv^w!L+YuA=C9c_to&mQqrbM%|HKltsJA#~$J571T*pWN$NZ_Ksj$&oL3+hgP40lVG& z9GriH*?zp|(G#{_JJ)u~!MB}rq}WCr$u@Lciu3XasO6(wi`uSND*1ZT&e>58D zo@ZkgzL3&)e*`!O#mFnZ7Do2YM2LQMp7ra3nM)0M`P7IvnHu#b34l|Av+k&%pvw-_ zzC47nlgluzm=AH!$YpqT;3t6iQ&H2Jnav%PKZREYETGq)$}oABnXILo9PSvA1R;?C z`v@L15%KVCA{O=&(ePcT93;#dfvnpJOb25~y8kc6z;0)#&AlIvFM6ZlMP~}MIuqfT z^DqvbF?io>E@bsIf`q^fICdaJCViV||IUwL1FLqnU_lj&pI7nmK~)kytm5GonqO3L z1WV)I_tAyDmX{-@(ZF}9)9k$M&E?oD{S?OuP6ZTp zT?WfOF*37T$arnNG^D}B4ry3L?X%CWzm$GsWSIWnII^&k%x@zb2m?^44WzDFP~O(s zNW6aY?&1io9|`KUYEmoH7_>A1F(wuZu}q;@T7h9QNtP^2a+Dr0?D16={r&$5G!eDB zx|9DOIK4kDp#urQ3ojCNq)~0q0;AEGp=)kz)u{E_48l-ws4TdCtfucD+nKK7 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/transition-tool.16.disabled.png b/app/ui/style/olive-dark/png/transition-tool.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..d13fd271c91d5897329f823b7763bc525546ee5b GIT binary patch literal 516 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0vh;W=I|2^1>!ba4#PIA43=EN_DXkHf?8 z!$(iB9O8Lr-)?+@r$XUcv*Evh7b{PGzvS#H?)K*7rl#bSpBtbR= z=ckpFCl;kLl$V$5W#(lUCnpx9>g5-u&wghk1yp1VQB+!#oXU_ont`Fkrha~2u=f`Iz=jX-E*O&m*&fw|l=d#Wzp$P!+B&J;e literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/transition-tool.32.disabled.png b/app/ui/style/olive-dark/png/transition-tool.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..e61bdc8d70f7be38de7dcc5e865e1301f15c1909 GIT binary patch literal 568 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b;w+bG%#rR*C1S%gEWS+8<=d28ehl|rhBle&A51*twcog#BT&Kgy zM*Yqe*7YuPC#M6QEK=ecQQ}xyl96A;;G0-fl9{IvR9c*!U$*`9nVCR&Rgip2Vo9o1 za#1RfVlXl=GSW3L)HSjUF)*+)HnlP}(grdN3}WswTcc>m%}>cptHiBAw_$fXP=h4M zhT#0PlJdl&REF~Ma=pyF?Be9af>gcyqV(DCY@~pSj3J6ji;`0rGD=Dctn~Gh^K*0a w^NRJ#GqW>uQ&Tb%LCW<(JpGWwy!8C|%;fyMxcM3rfZ7>6UHx3vIVCg!0M$pkIRF3v literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/transition-tool.64.disabled.png b/app/ui/style/olive-dark/png/transition-tool.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..b19afcf4e04897f0a7e6dac8f6baf45a07bbb815 GIT binary patch literal 723 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_!Bc#fA#GB7YYdAc};WZZjt(^ja-K%nhm zzHt?EF3Y=mgM)1T3a&ab$2wU~oPX#3aN2E~e4~{PdlnpKO}}xzMR4zr0?mDgdmGMw zo>0A`V24npj;Z_3Kks!++@C6c7H2%Xk+J!UJKLKN*BE#2$#r1Lmz;3qHmk~~FvgR6 zd>z>G1t%PR&7Sh<7URu5c@B*0B?FGUW)=Aq#dvg&p9AZ9!GNRJ*+V{UWxQGw+rShr zyx`Duc8!lq8MA648VF(& zN|P&?vEq~V6UO$5QXhCKfgU|N_4{o;-llfFE1&<*nJ2g5$x24Uc@hH8Ga0jOG!y17 zXUX~4(vT}x!E9w#c(mbJQw}hIMM_*FN*qf|GV+TUd=raGGV>IIN{h4e%eJ3BGZQGU z3X)GrEJ?LWE=mPb3`PbmQF1CnMoCG5 zmA-y*er|4lUa?+zW_D(7YD#7zNVz_Uryr7-m!2P=nVg>&H(z4{P&NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49cd}2i*ICnnXQa978H@y`8l&?~s9r>-vdY z&budccK-XHK2=j#=Pkq3S9&^p39ahv&yPOu2~4@Sx2t7dsR{!_#`J>!g*>meTy4MB zf3Lv#itBx=mlBU&FeNSbUz_b8H=}#sp+Xl%!;JN@Z!^^wT~GWWyCyF#Dz7GU`QHy0 z7c|_^wb-ZfHfg%1Lfh>&vEz1XGcW5exV-FJ&E(A&&B7hHRWvU%-OE1zO=!}TOve1J z>D8Q`r>1_LvUGyjhv@1#(iJx?VvKEHL@_gv)icGi{^ z&ToIJJs0>VC#KN4_}49AKQH^3&iwyu{M_pn?Eiacr@+qtW!B+Iz#w5@xS-Y=K37sN zP|W_opXlPa#q*=vc^}$VurB_?p#8bu{uuv;N5`~J{APUiW8R*oHS!5ZCx=h?%KV14 zLg_Jk#K)(iDL{4m_Avcv_{93-6PHn4gJ^u5BS_b2?Gry3zbXH%V70VA(51az;XV5d z?GKMcdp=$F$tbGDI!ydfz;sLwl){>v89i=-WD*iOwJbs*CpswKqGYp;* zZ;%hLo?ILCr@_hn5&M;Mrc!?zzA)A~ocuhS%7#QelW+KRp?7Nh6k(vVL`qyEN*qf| zGV+TUd=raGGV>IIN{h4e%eJ3BGZQGU3X)GrEJ?LWE=mPb3`Pb?K{f>ErERAdZMR9cjr%8*e~QedU8pPZkYo1a&#SDu-jnVXuDnFvy@58~;E dB<7{($7d$z=f%y}m;lty;OXk;vd$@?2>`gPbb$Z> literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/treeview.16.disabled.png b/app/ui/style/olive-dark/png/treeview.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..b47923cc14e2f87d511869aae83eb21c401ad12d GIT binary patch literal 482 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0vhtv=x14-^XYba4#PIG>!7@ZMw$B9`E>hweQQ}xyl96A;;G0-fl9{IvR9c*!U$*`9 znVCR&Rgip2Vo9o1a#1RfVlXl=GSW3L)HSjUF)*+)HnlP})&?>R41TTR0J#>SAvZrI zGp!Q0hVJhhjDZ>?K{f>ErERAdZMR9cjr z%8*e~QedU8pPZkYo1a&#SDu-jnVXuDnFvy@58~;EB<7{($7d$z=f%y}m;lty;OXk; Jvd$@?2>?>?ls*6e literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/treeview.32.disabled.png b/app/ui/style/olive-dark/png/treeview.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..f2036c8eb6c4c5efb2ec5b922cfa06666e064c07 GIT binary patch literal 527 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b;vpeZajRC{*X^;uzv_{Ou)2t_B5x)`#^z zpBUm6|DL}jyMp2H3fBppvoAK8?R$D4`N7A7r#TKJe)Q=*J6C~|h3|CJ>k7F@RmlV8 zR}VfsxaaNxhQ=FLdt07&6erj2cKc%=G=GZLrsh@aLJO@m7KeYF+iX-Nded=hliSe( zhQkL73Q{e8oI1$)AlE_l{KA)Sfi4j#ag8W(EG@~%FJkabEGo&&QwS<8&dx8}e)`Nz zpu8$bJ|(dv)hf9t6-Y4{85kMq8W`#tS%w%GSQ(pInHp;Y83qQwR&jv5hR~3kpOTqY ziCaVW_YKBC4U!-mg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3kpe0*hA1j6N={|S zC@Cqh($`PU&&|!xE7mK|%+AbBP036IDc1+_^g|N!((~gplk@Z9=4(sbP0 Hl+XkK)a$f| literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/treeview.64.disabled.png b/app/ui/style/olive-dark/png/treeview.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..8d34c9a76d10c6f7c4a04e8e136a4f33bb5914d8 GIT binary patch literal 616 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_!Bs}H#M1BI@8x;Tbp+%H%Ar+jCM6w7$WI!kB6F7b%e##eC*x|lK@3w!l{ zt8&=8v`qMNf4gw_m)ZO)K0e>=^q$#%nf-lHKDz~pkGbaZXWZD~^qg7BY~6*Q4Q;*J zC1Bx8>?S@j4<`d9WtE&fen?$nf5H5P@t4C7MWvRO^@_C(b`J6j_*>+agwC-Er=++p zT)AEf=tYqd*N76w(vpn)A_m{YqLR!!g`m>n?EJFrr_am;%BzCpQxZ#3t&)pUffR$0 zfsv7}fuXLEWr%@+m9eRnsj)VYVPNoU6$dEH5E^pxQ!>*kack)QzQGu%K@wy`aDG}z zd16s2LwR|*US?i)adKios$PCk`s{Z$AZHpw6qObwr!r)eloVL$>nG>u=H}-W>y>9_ qXXd7+WF~@?>w|duA&GhE`SF>_`FU~kH6{SHGkCiCxvXd+3BV-97L`pW~K~NjJizs79 z#5&pmQPa_Bl{&R_sG<-c_@H*wqMZU2RPa&S2`X3$XiA`)_Lo08bMJTVx#yg@zrF)m znaN)405$-4rKU*b6cX-cqSUL2Z4^_0swFZBz<0ItW-vO%gOw?A8NjX;l&=cFNv()K z089b^hXO!U2f)#tXx$J`2}nVDvJ~L!8lI41EM3YL1HiIschhQrd!?e53}dP+i7`T3 z2D~*-eq0;_;DMz|CD|1NF9x=!FO_iV!_6@R(!V8NW_f>W3;$|vu7w+($2gj}PjNAI z^skT`4?ij>Pk2;I>$#GC^!ACcvF^eUyI}scw`(HpXWPsfK{r|rn=6U~+hdQPy6hT5 znaQs!d*U1qE?!^wV0HSK{Ig!asZP3gz=_B6@$&eWej|0UU2TuVZ?3zh;VLu#)t;WG z{PFfTPq*tobUkz7Q00+PCT!~F-`)|*bUaHOeV6N>r28tA=) z23?{hgkIR{CAm7@vQs;V*wXW^uq&@W9@;_8cXA(|4Bq*=W#AGpw!E(ky%{i@H@JBC zT?0pp)?XVc8AN7&dURl(WNLhxvP{$4qQb(t|60`d4rQ=D-QU@NiGF$g{j-+nO2JiC z*SLq>*Srm6cAHMU0^Qd?D>}K6e0jEO+sYkb;T=;n1vxnN0pknSwm@>YLkF>)FI>`o;>1^@{E5SYoTaV^0VXNhZ4rVJ%{HE&&mmH`xr& zSThbaa?`h>ugCK+58_8T0N6o1ZsiKXzTx*xvz>n~2Bu7+VV`mp5NsxUl;aWS=iko( z-E!}9d}LS}EYD}!N%6T3E)hlMS|qR@>2jWiM7(DID983J^?hwi;AKX}GG8djB?lBVM?ti;Rjy(&KO*G1LKsk^4fBwd#T%*Kf zEXMU9!}LatHdt;ll;Gtpw{F){dZ=43#EdGDQm>)_gaV;(l^|-B@V#t-KolJ#idh{& z4FbVBuQjx{0;PDNrfBE?2Qsq`wNrs5?h707BBL48tH5kFM{2Ys1|_CbMdEsO!^`*p z$`t*d$)s1Rpx9{CiTHdaURsK44UuL|iKbLlsKMNJzMJv0F|8WU*C=sqo;Cb16^GQM KOzDM0Mdd#Tjq%6; literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/tri-down.16.disabled.png b/app/ui/style/olive-dark/png/tri-down.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..2c3ee9539a3394d03439379759d3224641cbeeff GIT binary patch literal 533 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0vhdvsFF6e!f<>EaloaenJXYpz2H0t^rH zRRu4p$vIqfdtWau9nXG2i-om&tHFu&NiVk;ztPjFSKqYhfabgRO4-FS+Qz!G?o9K% zc1`MwaI;JD+^^I94y#n{HoW=di?jS9{u9@{9;9h=*Qy;`ICtrRse$hwAJWzkTB_Hi zr1>S<;NGL1zu9l5e*gcz<^w~{3ByCtN`i?%_lT6ZMwB>~mSp4?G597Hm1O2A1eF$N z=a+3ieP$+5UKJ#tl30>zm0Xkxq!^40jEr;*40VkxLktY8j7_afO|*dw0|R?rGe#5* zx%nxXX_dG&_yzRs1!|B4*$|wcR#Ki=l*&+EUaps!mtCBkSdglhUz9%kosASwkugM3 zX;E@2LqmdKI;Vst0Fi92aR2}S literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/tri-down.32.disabled.png b/app/ui/style/olive-dark/png/tri-down.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..7adc2a9f101851af51bcc19d7314740803da3a6c GIT binary patch literal 631 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b;xb=%kn_Q0SSbi(`n#@wbxL#`@^O0N{n_(xw$|6lGhPrCEtps>Co*6B zf@w8Nz`3H62eh~S{W&>?djX%Vz_zH=#|l>h7*4-vPZJUJQ{Y}8{YGV>fklbqg-<5} zdp@x1iYS!Ns%*{U`S;|;eWr$KG7(3fx0^4LE@R7oBDTzM{fuLs_WqhdKO7!tUl7S- zS;w^br`x0K?M&{1$9>9KIge&owX~-w&8-xF|MIxuJF|l59hcRmEOgbDsY~%hS*$)S z^o7gw;pU4$r~4n)@0%vR|83@NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_#s9-S03Wnf@j>FMGal5y|twY_J|6fb_dqT%(eTE9cK70QGwvtYNBvLG zV@O~;pu6$+X32;JMYDT;W^MX+PS=`YTZC`lrkxyl&8N!SHXqu?zUPeG%vOODTUOC0cjZCGqchQU_PgHpJnuRDw$h+N;;G_?PnVZ3oOIx9 zKSLCgy**49E(B>>$RKQ44h2X`V1}{O?x;56goaR9pG`CA=`{^?? zf%2*#`IN+xRIB8oR3OD*WME{ZYhb8rWEo;$U}bD-Won`gWEdFO^O`ZDXvob^$xN%n zt-&v#Z!b`TB*=!~{Irtt#G+J&^73-M%)IR4^^@~+bMy0x^~y7|Gjmf@G7~|{^+7!Ski@+7{P@h|{JgmN8WVup89ZJ6T-G@y GGywoin=!Hg literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/tri-left.128.disabled.png b/app/ui/style/olive-dark/png/tri-left.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..da3cfdb9c80bfc6788670c2f68d41eabee62ba7b GIT binary patch literal 1208 zcmZ`&Sx}Q_6upT*5I|~>RXbn?5U2BT;ofu4J?DJi)7_t(7-M6# z+6n+{VwsE-3{g`N5UdMmKSp4HWYZJq0B0+$|K^%uoWx_MBmfk7V!kqfd2EGF0>~)< zPdNa=H2_Wp$1iLN#RPmtd<+BN)FF2&#w-h%pGpB-zAzQ8a^g83TUy9s6QV61<6OX< zRz2w146w{AmO)S5Gh(bu6506^uQvEFSre5Jk)&!LrpM^gIS(c??Z`TDBh%r~`3Qdt z`+X@RMcLQtS50?MojKh-I_Pou(kp06&KZmwS<{%daeQO_xc^~sS?<9%6|J4jLPwBX zj_FCug=fwYt}`F>DIQ4nzkcF%`n9`ouh}cs>tPGm zaiM2e+#{GpC)CuX6ZH?Q-`BFg;VxT;%9B6~;Sn=vzA zJTu*{y=95UcJ;Pa`2kU*K55|sB(v}+B&*t(^!9PMJvT6C9o|{D6timxhIQ(4aglq# zN805ocoX?HgyVrn3`>`@;{xnpxN8MuKMDE1w#1&eXI^VIm}7I-JwpG^am^3X(tcoQ z)CX+jVa&p~&6&UU{nTou)hMIkV?ztBErV@|x-6`N^}n%zGoX^fJp;|0b5pey9E~)D zb4L{b+l@3lXGmoSUmIz_`CTQ4dq$QyXH>NfTn#K_?20M~(hV&9Sf9!P>J2Oy8|c{p zqF3d(H|NM!+GZsk!i)!SGoP^uD0{&T${ahl8LZb=PLT^<=nuk89T~K}N=MYy5CC)B zhUJY;3k+Bs_QK69UQ~OJY(Tr%LtnX><=mL36T?gAPAEzHnkcPZYQ*psrU}C@a00z~ zcun1LPHpx1eErdy%`}y*zP&Sz6=tiyU6ZGHN7T=D7Jt)2)ca877haZ<(yLmAI#wXh zPvs?mD^Wi++kx8=L)?|M6WR`v&fn<3a~$Y-bwW$6n`Ss{bTt};h|4O>A)fHi*~J&O z6ZKnmehceK$zchJYVq#HP+ee#FRGO)O9C@&Zi{R7&hBPMc-R&XIT4x2^h+~jrEafD zyAnCp+XD+1wQ40U%WW>1jn)w!;M)FGHzDnenceI$(9JPOcbzC!=utxbl=UAPPXFXB z?Bx*Kqn`M)J*WWeR_a8`5H^vkMq}AnAWOTVKM1$1TCRfG}=1KS%0F^?e z`cnLTsT)%%l;D7%;GiHMY@kqTi#B!qFCY|U3bG2{ADHwix5NUgOh0TDWyus=2_F;+ zg`XflSIXlS@cl%R>|@VDS7WAt|4ecTj}JLASwS$F%o7QPqI{{JLXayE@-qcolbvj0 dcEUoQdRU{sCR%-}L|h literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/tri-left.16.disabled.png b/app/ui/style/olive-dark/png/tri-left.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..2b10323d56e3217435095b17d23aacaedadea646 GIT binary patch literal 533 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 HDWM4fTaT;_ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/tri-right.32.disabled.png b/app/ui/style/olive-dark/png/tri-right.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..04586bd5665a712eabdc1e7be358815c38b3c0a7 GIT binary patch literal 614 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b;vN^_<#bpwLxM7sn8f<6Eb0+rO43h$Ff~4ApW}AvsqD8K3*6lg^E2ob z&Q$U@`Er4Q>)}=T2U6+xZZY0p=HhXHH^-HOfj46<2N!e9LybksQm=R!w40I~xtks( z+A1+#P@cq~tF+f+LAAjZQNPa%)3h#x20mdt9je2?F!A5InM+>hC~`lLV*jXAq-vyF zAiAV~$GQG9`^8S~Jaz8;lRxLqH7}B!V`Av0xAtXbY{0VTVxB8~HDd$3XGh1}{l@go zBv+e5+^retL6H*Ih!V%rl8pQ!2H(V@lFU4Xpwi;({Icz*&&&kMtAgZH5=&C8l8aJ- z6oZk0k&&)}p{|i-h=GBXv8k1*sWy;dU@)`Fb}Nd8-29Zxv`X9>UZ}Tn0yRj2YzWRz zD=AMbN@XZ7FW1Y=%Pvk%EJ)SMFG`>N&PEET$QYuiv?w{1A)}NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_#sr=C+=%)r37(bL5-B;(%OnfCsN4FrzP zj}EY&;I%=~&^-3Xzj)P&5;G+nvLdV|yza`VwVQw6)#HJo`tQF_Vv7DZ?B6#jZ<@5t zBf01^KaNCK#Y;H6+i?8tc6Rv+&(BE=n+_UZvzL=IED{Xsdi&Bz?#4p#Tz-Csu!8m0%cSsLI>p?vX|?ltrxVO`7Fb5N+dg+q;rBHDvVPtZ?puQEe{{JA@Oh~B zT-aa9 zmF-p(4Y~O#nQ4`{HM~%7mmtT}V`<;yx zP?0f2QE5?fDnmv|Nr9EVesX?pZhl^|UU_DAW^QUqW+F(rK8U9ul9-pCAD@|=pBFb@ RV**e+gQu&X%Q~loCIIG{I8Xop literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/tri-up.128.disabled.png b/app/ui/style/olive-dark/png/tri-up.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbbbb210199cbb4dee283919016d6ec72c703ac GIT binary patch literal 1221 zcmZ`&ZA?>V6h5W5Ybzih6+}>X0b#INT8k*uGH+QCkQ5MG(KxxSrM4AlODWb5J_;i! zQ3lx{@-_XVjLnbeHqjuI%U0c-82kYNGyy>^j=2>m6Dl3-lKpbYl5^hYJm-0yoL_Hs zMp}~Rs=!qM;F*#v$|TXe(hP)rHQT?zNI+CVu@K;9t-DK3BRQ%_&J+Wj3@3e+0B^~a z`4vDB7hp;Tz;6Utt8eYxBOnF0!>LIkfNyI;c_d@%lMfUEY&gBrl-idwN^(gzric^i zHp&JFjinXrAbr%WDI%fd_>(`L9?E421Mba4U#{L0`2*@_IAon$Ec4&n^-3Da@SV9_ zy>0NXBO{MGHQz-$y80&KvJwg&ET8`>TpURhtpE8xb>M2VGB8QYI0jtB0xdtS&gA6NWV77r#Ns&0D3=u_?JzvW@W8rus8D(z{y7k`0 zJc!MBBgP=M;`JCp2=F=#h%o#d8bq-1GboFQ!7EXBA|5xRRP055e;{!suj1V8T@N6n ze@)lp)ESkG)cxv}julO%)FEh-*MjdRNS<8u6;ahMPWg)5)Grr(L=?5{l#dA1 zlZ)OS@7?%i9t~i~8g%Jg2EiL^mVvp*!tUJzwZ*9wp^)u7hR`Vj$2G=kI6nE*Ti~9N zV4?L!!{ryhvtH98BJmcP7p8G`BJpNlM+`IVq;n|DMjdBv->=Hfskqlu_VqBOy=_0E z`0=$moV7WT!B3xFjrr-Nw(mK+x%Z^E3a3qWb82ftD`%I!>R~)ciLNf?jajAQx|80`PyC+^4bKKu)PMGPpaXW^KaaC6t*>nBpe^w3 zyPDA@bn7iPk!5x5yVXcuu%UU=*XZ8ny9Kr(WD9*fN)iv~)f<7TQZaW9z4~LCYJPC} z7*Qk1DMfmz+8xVR76+%+*jF!QxHi21urIyD^>;r)wKdvH@CEw(9bI~Q)7cW&;!gjI z6YNoAsi4%VDqdAPdV=Z`vT=DFuj#fTgn!VZo>8eH!1;VK_VefO7HbsmXAifZ>a6i1 zztkFI;(nvB$f(vCKrA;HHCi;Ys4!P|?DoUHCQ=Vu(R1WRC0}7sk^np|kH_Y2Ve{f7 zTrNL4h99%-BXZz!+rRiA;+;UgE=P0Z#Qz6I`Y+a#fpsev_UeupO>%=0OeRy5Mw?rx zkn5FEI)kd^PeCAQivHJBWKbwUZ8Yln9F9VlpRdyvMwv9ZntWxBM!sU_tT2v5u2t!9 WjY6l*z8FzQ#vvs!O>{j$R`Cx%aOCj- literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/tri-up.16.disabled.png b/app/ui/style/olive-dark/png/tri-up.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..f2971d70d0c580b73df833ab1c0679df74651d01 GIT binary patch literal 533 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0x1U@f!;scZ3caSYKozjvacP?LiIOSJ}% zP8Ul}!?l?o{vV&i`GVQt*rWvCZSO43+$`8#t`=cYwPyRiJ6BlWaU@)tQ+_K>SRkRN z>OUuEu-2`ItQPrGwMw~vd{EfLpmgJ?@S4Z(EM9S!C4HFUxp__MhYu^Ra&H#Wo@L9n zcIAqRSMM~0AJcrwWyAmD9RC#yBS}%MPG+EcL`qyEN*qf|GV+TUd=raGGV>IIN{h4e z%eJ3BGZQGU3X)GrEJ?LWE=mPb3`PbBu8ABA6 z7A2=LWR#Q?Sn2C0=jZ0;=N0RfXJ%*Srlw>jf|Tonc={oUdFlD_naTNiaq~4M0JSrC My85}Sb4q9e0F&gdMF0Q* literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/tri-up.32.disabled.png b/app/ui/style/olive-dark/png/tri-up.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..f4505d1663d55f78928d198c3df0367c692b1f8b GIT binary patch literal 586 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 a=f`Iz=jX-E*O&m*&fw|l=d#Wzp$P!#cs57? literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/undo.16.disabled.png b/app/ui/style/olive-dark/png/undo.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..2654f1b6ba0fb892ed650b3efad54705662028ae GIT binary patch literal 533 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0x1U@f!;scZ3caSYKozjwlJzC#W?Ea}b~ z3!bVLig-Ny|DS_P#KFmBO32AeGVTw8jxRlaFIM`P&U%?oc{4xsIXs`e>we>+_OmbL zk2ki=zT+gA-dIr>I$4KJ?77UI7NHPnre{C4Ziv{NetI!Oz**M7%84vz=1!Zb{_)I; zpr1c?I)9tF@>botvlkY-tuS{i);m+pxK$769+48)h!V%rl8pQ!2H(V@lFU4Xpwi;( z{Icz*&&&kMtAgZH5=&C8l8aJ-6oZk0k&&)}p{|i-h=GBXv8k1*nKqDNV6bA6x(14d z-29Zxv`X9>Zl0e%1*kz1WJ7R%T1k0gQ7S`udAVL@UUqSEVnM22eo^}DcQ#T$MaB?C zrA5i93>hUQ1y=g{$@#gt`FX{9<(b);xv43ci6G_rAfA3mVqSWFd}eZfUfg_*2|(=( Mp00i_>zopr0KQ$aD*ylh literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/undo.32.disabled.png b/app/ui/style/olive-dark/png/undo.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..fa199fbd2ab2bfe8ebae53fc9dd9ef13d41008c7 GIT binary patch literal 649 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b;voRK~poDD=bA#WBR=_}eK5vkp0kxSsF6 z*cGAKv^phmp~wIK$xBKUIi_hvWOgQWn4NEJo_l2D%#^2xcF$_OV_cpm$6S7Q&6ef< zQa@@m{i6)V(?8YD#^@K2r4bk&M(`3`pitAyeddOC9x#cD!C{XNHG{07#Zmr80s2Xh8P%F z8Jk*}nrj0Y1_pdjb>^UG$jwj5OsmALp?=2{1)v5=kPX54X(i=}MX3zs<>h*rdD+Fu zi3O>8`9NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_z$i^{l{FfcHl^mK6y$+-7+#%(_)LxHya zg5mlioKmKNc|3;u{y!FQ^@-_Zf5gbIu)J#Ff|A=yS8u)ZWq%fX*?;}ZCEJ2Kx@ZTdzkV)uQHIf#ChNKu6$BvHnYI)t_*&%4>npfc%EYy^7KrfESSD;*Wsk;A)?xFj)GUnJIO_z3V>lz$CyR zQsNp>;#gXekzd5%n^;tmnWqp`TAZCbP0l+XkKKb%8O literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/videosource.128.disabled.png b/app/ui/style/olive-dark/png/videosource.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..82b999cab598476ab68e026bce52a9ccf362d29d GIT binary patch literal 1115 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;49Zro>!aj=nofDTIEGZ*dOPQ$pRl8Z+j*U% zx1^K|3+8)-MKViknHC5!$Li`KcjC7dniikh9yWDV2*vnHf4Kg#Y*jC1+~;e*{lgO71LZH;OPf_#S-$QqVP*NYH-wet`(6{)BVYEi zuparkx8~LNVvc~=KfAbA2ykwYJ0L|0F{_H}$AtpMyc3M7akKs17}J-6&oTyC8yE`aeXq#_Qac#srF9q%)ONk@I?37bwu_Ui z<8@c0Xz#0OoHHzTX!~uhJl(?RD9m1VbaT(f(s>z7>U^)dCig5}RTr~MwdTiTKZkIc z)OSnHe4ea$c=cubCXpxQM<-gJY;ab)wz5gmxFdSPWl?pRIN3#yZY&5t`}+BR!SfRw zTiaLg-1+j$&`P$d{Ex)kz%yt6_qXU}Pe1cs6i5BLvVgtNqJ&XDnogB zxn5>oc5!lIL8@MUQTpt6Hc~)E#t=oNMaiiQ86_nJR{HwM`MJ6IdBu9=nc11SsVSL> jAm#cXo_6_qbIF9Xs*~S^oS1gEzdW;Xh275C4!SJsZuB2( zjN^1?WZuQPCm{HwX9Fw4>H9GgrPTc*w{D7_b97dtuCskN!-6dh>m05>558GW`S<^5+8)NJPFcwhy4Mx}-6K-s8d2g{T9T1p#NeA)RFave5L8;6 zonN;7^qHAJc~y{nN@7W>RdP`(kYX@0Ff!6LFw`}&3^6dUGB&j`HP;3*3=H_5>dZmW zkei>9nO2EgL;a2^3P25#ARB`7(@M${i&7cN%ggmL^RkPR6AM!H@{7`Ezq647Dl&#B zDlJM*WymNgDX`MlPtMQH&Ce^=E6>c%%uP+nOav*{2l4bn67$mY<1>@<^Wx@fOaN+U N@O1TaS?83{1ORIpugCxZ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/videosource.32.disabled.png b/app/ui/style/olive-dark/png/videosource.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..726e0236c6c8ba27ec18cf196214bb06aee6709a GIT binary patch literal 594 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b;voRK~poD0I-%#WBR=_}fXlxehr9xSnU} zT&uy-$tJr0z^VWGf7v>tSzMH|a+M^xr`zbHh-<5EzqNDscLQslFTa>O`yvFb_Jrgu z3A*}p25W+gx!=d>d_~(nc8D?@J)q3zEZy(9MwqYW|C$K`=B2z7?zUf;Gt-vSd(pSK z@$83Yd0zj-?8A9)?E!89i^#fPrVd|q9~^mV-7slV`PwS}lGjcGp@$dmJ$27nL`6B9 znXCWHU8g>Y*CLF^1Q*847W6tdZ_*~VufK9_8C^wmnI4^c?GN;fNQrAiiDPL=Mt%{4 zZ(>nNW}ZS&X>oRb+4j?CW&-6^LGmeyC8<`)MX5lF!N|bKNY}tn*T^!&z`)Ab)XLOc z8^|y);Crew2Sr0}eoAIqC2kG%JEkZAHAsSN2+mI{DNig)WhgH%*UQYyE>2D?NY%?P zN}v7CMhd9N7^0}OC^?lOqokz3N?$)YKQ}i&uUM}NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf_#MUe`y-F)%P@db&7!2&iMX^IP3=KlWQKUY~$^N5%YOOySAC1tgDoo+`?Es9z3-SXU?x$o2OZF*yn zAkmg6@n4qFcA4kQL-(%v%n&>oeQk?aW`Ns_k2>5Jlk+&f@7p+|y0ZM(^o;skvuBD6 zUMk8t%{upkYwpyzb`z&la*r6V?}}R5x+c7}y5{@qCD*P>O@FB+|F(QlsnoiU%^Vsg zD|SEUQ&@0_b?cg&QyT94wRmBsywBD2x8`}-3k}*@v$ghcWi*;CJ!>k*`lW+!`R!FT zWe;Xee(T!k-YEO%FV~wE&KV6rkeMMJ( zZup(@otyQl`lL6`FB$Ee1KE0tL>L^E7Rj(Oq#QY*JE6kMXRWrr&7%8kj~iyHH?CaF zo%~DZdRrQ!;KueJGZtn?sC@~m5*GfsbJ0wrlKcG(854`o1w3=vbou`w1D?YM|IFrZ zxfDDauTRP5@bVg zep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt;w7MWsc_sSFtQ44$rjF6*2Ung9ZvAGiPj literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/zoomin.128.disabled.png b/app/ui/style/olive-dark/png/zoomin.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..8e6c44a95ad482de8d0239e0a0cfefc2b9834c98 GIT binary patch literal 2786 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/zoomin.32.disabled.png b/app/ui/style/olive-dark/png/zoomin.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..5a39e2386e0029c4a607cd27f8ecb5b9b4202bc8 GIT binary patch literal 951 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b;xax;{z{s7cM!#WBR=_}r;yi!TL;9IZF! zJt~%S+3IbRR&ZLz+`^UI|Nk$ocZk(ce&n7m!u{|xA4^f}lc!H@ITp1T+!aWMh-7e z_OE67)ztRcD*ceqih$*>j=X=GZN_1~N&E}r{ioYMzn!6d?yR@-^H0T#nbv+j({op zTcuSjnizkuwbHKQXgGsKiI`qmfWevuHkX};-#FVn4ryN0G)r*y?sLnfTQ{zAlGNHVCvx6_b!Ve5xhBT;Ee-d){_MlX z1=(6BCy2;B(T-=Ipy<55{K;JPkn^nFTxl8%p|EbL+K(o$|CR zcROo8+gv}Y{hFK~(|Vl=W5C00Q{woRYVUmL zk@?NA@vhcuiO)xKby()DznE+{NvP2C$=nH|i_gk?uQ=+P@^TWB;YPMA6;2(KHfa3c z+WO;pLCTBBdQD-q-MpMEa&z9upW5`siQ`K{x<>83zuI@5{!eDFXNY^XW$os~>8`*; zBvRrUQQ}xyl96A;;G0-fl9{IvR9c*!U$*`9nVCR&Rgip2Vo9o1a#1RfVlXl=GSW3L z)HSjUF)*+)HnlRf&;~LL41TPQDMitco1c=IR*73f=Z7aJff^)1HU#IVm6RtIr81P4 zm+NKbWfvzW7NqLs7p2dBXCnnvWDHSMT9lm1kWo@nV5P60oS&PUpI59`o|&DQo0^iD k2vV*O;^~JZ=B4MyXC~+8#m(240MyRl>FVdQ&MBb@06Uj^_y7O^ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/zoomin.64.disabled.png b/app/ui/style/olive-dark/png/zoomin.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..524d9f60efdb704c4acc8d4104633f2c7a3c37d5 GIT binary patch literal 1543 zcmZ`(X;jjA6#YRuqGqPqgrBWdj&HFruetXK}cv} ztSg!1!>j^fZuJ1@j_wY#F9G%XkH2oZH^_~*ekDsjmlwEnKBfr4f^;L4VGJG5n z){lF6*Gd!Ox4A27C*ID!yV!tS%151Vt)o?v&u$JJs!Ay+Fw=qy5GM?gBzgN2{9`9hDre$8;iS4=BEN$b4;8wWL6$>mGeYaebI%Mc&};8OaJ+ef@zW7q9=Ij7s8|*Qf0!^@{3C!?;h& z{E}v_7KV4cGkIY1>KZ%nxK8Cl=iy~5>)K&nQfYKd;je_!7bW(cYjA$;^>O}5!>PZ| zo5E`MdpB4=v2F|5f!f&FVaHJhEFfs5_T~M`=#V6JM~8CG$aG5TDU?ko(#d%wE{QZ@ z-A0TZL+2)}NuYJ*=%SkeF7AmLHmRh#g`^*}{KT`F~Lz^z#fsH=z=06?>F#w@3nJv1pxzYstQ2(E^hL z<8J&;dOmn*@LZSiOU1VQ<6@jHwf^*dw;Px;d1xrHt)k$?`YZF7cNEFrSrp5o8jh{k z5qHE+4vyqt++~~VjG8V#BhXyhYI(1_Th)|{`Xowr&l?ynq{WT+f`my+*b7tb!@+nH z76FF^FfC+GG4`aK|MKoM40bi|&~UWH^p_=^U#84_$%D-K;pth4Pl}{GYg|(4t~hnG zWY}M{-=Vse@fhBiTXU3f>FbH?_;kIU!{ZL+(-lp0?;`y?mgjeR)3q5 zvPJ6$9p*n?#h)O|G*%e}?}qQ_&G(ppSoqZVwo1&T>e1eh-&-B-dS)N7x_uFuab%WcJ*-;cX|GFBP>D>H=t(wzPwlzz8tj%u_Pwr@~7AGhw| zh_22;#T%{H&4bOF(pkdLA1kIM4NkX^E|}#f2w#$s|J*kl1um01sWesf)BhqGQV#6? zvPYYjbxuuR@WHFRvK@ZVPC?AVpCbQeB^`~q8Sz+F`Pd5cD7(}FxztH{;kk1;a*nE> z)@o@=E!+~1jp#N>CyG5Q@Yj_N8U_Qy+dr9T8BR}DtPOe^y6lQl9lG-175DsnT-$fw zw+1r=xP>2j!R?bLT$$o|EM4w&F0Iu`54y6m=9T@bwb%sI9(CRUYVP7s{}oN38eQ^A zqbdV>N_tXCfRq#?`1t#R?_?-CvH)Jj-dmw|s>IQEiM=E2A*+3?f+3*FC z5*Aa$wh@ZCr{56`ArbChQH+?y20W=$gtxV238SKf0*Q@`AIXnmNAQ`ea@$p8>%$aq Yg<*V_P!M`#6~;0HjWA_M57VOrBKSX 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 KVDaQM>Ds@PuE8Gw literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/zoomout.16.disabled.png b/app/ui/style/olive-dark/png/zoomout.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..0360b6084516e9d64c15c3a41815d46d77152d18 GIT binary patch literal 633 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0x1o>P(40Tg=S>EaloaX$B=ueXzEOLgl`$2G5uFBNBr`SNh}Xe-ZAzi=r1-HzLQb9tv^gmT(*+_Vo>tywIqFUP;FsCT_qV%O?9d%0|=1N7n z?EJFrr_am;%BzCpQxZ#3t&)pUffR$0fsv7}fuXLEWr%@+m9eRnsiiiMVPFtrSNz6;nkIzib&x@O{F#)KZ N!PC{xWt~$(696x|;t>D< literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/zoomout.32.disabled.png b/app/ui/style/olive-dark/png/zoomout.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..64e7c181feba3bc7577a34c13ce13f2607b35a5c GIT binary patch literal 916 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b;vMry{EZsEOIr#WBR=_}r;y!!J9C9Ie;) zT{%IEkx!@Vn%;rdKmY5w^ftKbXg$x!^|e=0UvjqiqNh=&`pREspC|4tf4BQ{nvzLN z6-&v7Mp4d3J&e=cb8AdReLtE{Ky{(DS5Pw{hRX zbY5YxH4SF5R@eS4uDMzAXYO6^A5-!_-TqZ}M0I)Eh088=Z!|9Gy+3=VYvCE0SN%Je zr3&qwI-~3K1^ox|F$EJOx3BU2RJ%eTBf`Rd%5p3Ar=1I5?z^;M)q^`*gulOIbv?4h zMTF&*;4{9>`kzFPznaR$oU^*N&uZ8k<=qsz(&d5iO5wRh`BP>TzI3en6w5HvAalyav%-3! zM>H5@ZEsC)VLNunw9rvOa^lOlcUu+X1wGTkAKlopT*~a7d{NRa`_)VTWCt@Jm@0Se z5dTi2yE|P%nfm`+%qe^vwouXhXlWh8>n~Ry&(g{`wfOI^Oo#Oq0S_kk=rXa_2y=P| zNzF5140t$KI4+s_`y}Z;i}Lx8MVD@pEtY$8q~^g_F`Gxql8WLjQ>8bhZTp@4acfN{ z*NzkimnCwH`X2&==H1FVdQ&MBb@0Ah%1 ALjV8( literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/zoomout.64.disabled.png b/app/ui/style/olive-dark/png/zoomout.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..3818d8e2aa8ed39cf41fbd9d37b06e67e3f6ba95 GIT binary patch literal 1468 zcmZ`(Sya+#9Q{BzDy3=ZnB`KIxF(2N=87c=k%p+D(kP1?ZV-#69vR4N(_F?>C~TQ1 zHJi%JvF5ZHWld61GiXkh#i(J6XjWrIF@MiI&BHwWmixQ+p8N8hZ!aY-#tO9r1pu%j z5u>Tl#Ltxl0_uQqDGBO`?5Nl%06J^u8JS23FJlv_u>h2!0g&tj;4^fR=m8L60eHm# zAVda$15fd5d>BN)S>%{#08Z^+frF4GkC-9=z*;p|u-n|W4CrVsB*hZU$6?N3MW|wX z?j9)6hZG%^nDb04rzb3pv8lY)G+#YF!fblgXsAY(&6&C4gD&u0bY? zT<|@YPG`|@?e7~-(w@9j54B8Aq|DaFo`2RxVM*P(?Cvy}vsfV)IFF7xE(tb+RhD@B z+PWJj>glX0 zdzQzvytYfWqQ@GBuvU_34dn#&FSO&J2G3sGQk^ zt2z*7N;j*adL50JX8X01o(O35sJzh@hyCXDM11q7hhF4H!QR`H+Q*Eij;76@mPF&{ z8Fey3gBiy*BbC+s)0kNIJ0pI4;pE7+>myTi&oE-c=HcYYJ#TxjlkqesPHUf3xc&u9 z*$)fqztYyvwrD#yCi@!CPb;QUYMi|D+gJKfI{D%%)%z)oowdI!U8+UEQ3l_^^og6U z$24Q0!MF?UiRIc4=gxM#RBA?V@b2LZ9u)sRe=X@bELf#>>TrRh$h%%s52J52%Y0Pb zN*CnDEtMA!Z~rFgb{e4w7hwlYUo#$DI~!GXa{s6s1O4E0;<#a7qOh4QKn`1pU%_2v zaNzYZ;#_*?lZD1OZBGDb;oLLRy)^! zCN4*$4V*;@+F!u#Ub$Q=Cx;_&na0!OP(q6XA^OsTo!bU6EOe^V1_s4pb3og1MX=im zH%)pIHTy`&i=<9+OSz*yD@#@ry5K_f)?}A_Pi3z-*J{@aIWZ2Y7Ip^1M%(11h&nu} zYE$opoFHG(8tLlVU9C3))z$Cx@%Za+*n`3!@6VQetJmtDT3mImPch9T=xavkjvwbm z!1>&yNzsQO1#<>7J;3YE*={N6uCyx(x{NwFwYKPI+?Mj9*&S*06J2*=?g`skb$Xl7 zE4SY)Uv@XU|B||>6y=>yKeRP?LThe%@>H4ku%m8J6==0@{F7dCtx;U~0eXIAaiS)# zSJFUB9Jfpywm8^b3oje!%h%%^6t%DI0(Ifs0B1_I^oL($KDk%lmg;QpwJWR^tb#{P zh38RQ{rSWsr5gTCvCZrDaq9}a_w4(k-y*ZBBG)|+RV~#;KGAq<uT6$=ynjNHknPN7R+??{%yzmL0gKPb&;OZT3%jgoChlzT~M*EVIictBhXJ`CnO{bqeQ|SE+51)`9eK<&eQ~E+K)NB`jw0GeL22u^*=}PrzpKGX1#x>_d}bOCV9ezakNzoe6S; zLS6_4!{!zga0>-~#hg4&L1qSrIVZ==Axt8(Fq@msVRH-9j(FBVc0eM;MW0#6*zpgQ C7jw`6 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/res.qrc.in b/app/ui/style/olive-dark/res.qrc.in new file mode 100644 index 000000000..02a2eddc5 --- /dev/null +++ b/app/ui/style/olive-dark/res.qrc.in @@ -0,0 +1,5 @@ + + + @QRC_BODY@ + + diff --git a/app/ui/style/olive-light/CMakeLists.txt b/app/ui/style/olive-light/CMakeLists.txt new file mode 100644 index 000000000..7564656df --- /dev/null +++ b/app/ui/style/olive-light/CMakeLists.txt @@ -0,0 +1,32 @@ +# Olive - Non-Linear Video Editor +# Copyright (C) 2021 Olive Team +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +file(GLOB_RECURSE STYLE_RESOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/png *.png) +set(QRC_BODY "") +list(TRANSFORM STYLE_RESOURCES PREPEND "png/") +list(APPEND STYLE_RESOURCES "palette.ini") +list(APPEND STYLE_RESOURCES "style.css") +foreach(ICON_FILE ${STYLE_RESOURCES}) + string(APPEND QRC_BODY "${ICON_FILE}\n") + configure_file("${ICON_FILE}" "${ICON_FILE}" COPYONLY) +endforeach() +configure_file(res.qrc.in res.qrc @ONLY) + +set(OLIVE_RESOURCES + ${OLIVE_RESOURCES} + ${CMAKE_CURRENT_BINARY_DIR}/res.qrc + PARENT_SCOPE +) diff --git a/app/ui/style/olive-light/png/add-button.128.disabled.png b/app/ui/style/olive-light/png/add-button.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..e827727cc06d28898042cdb052bfbff8b884a5bc GIT binary patch literal 1368 zcmZ`(Yc$k(7=GsxLro2}RKie%FcXD_-8C7xHHr*1TcK%2lguzPjLpzLbV8Q)sN_y} z@hDl20+OVn{8005$=9S44{90xiIPDb6j+(F7aTxs!w3_VT*>|Oql`z z*XqHb`$Z3`^4f)i&ZMUysRW|&z2uS_BISI^?M>pz&u6BMKGQG1^}JcbI_TNE&Me>H z+IyoaUjJ47hxu>Tr_atW-TlC^J&H?W82{+LMLU^s)9;-4b-=;mJb(84%L`6qh2WD> z-fq0xzP1RuMOGTm1k?4c$AhkcAge^oXM9?&2f)u*!xqbNY4V4iRmuK9=J{6VL zhy&(3-}n^QNIGmOV(w(Kbg{_9V1-uSLmbk#gfcj!YAb(0g4HZ6@)GLsP=^s{fB-k7 z4MS@6CQwfd_kwUe=hb_ zv84Vg&a2@F=WMl%979K3l7c)jwRM=~zGH*TyW+)jQ{C1s>yt9-l;hqNq=F|O<#LyR z>sf=b*&@$B@(Xs2qFO zoK1QuDTf;V4zR{G$mIzED&GvhcduRh($^}h3B2r17a~$HlqSxc5qRU2efR3?&g6_0 zSe3!ywU*7ByGPl!w`v10*`l0ImS-J(C3#L0`8)h1CY3k2s4s8if72_!l=ar~V(OBE zmT|Xx)6VgT=$}#vxsCU$++eIZ7X6ne4Om5!=?rOt$KZsO?QT!kZAmG#t%>-I=4h{u zj|IQ?XV}?Yhzd=0?g@Gr%Nv*-kbiyDe*2A$IzjAQ|N6ogr)iy`Y$wB(H>xRh!=VM* z?3g*=5g-B983=$O1O9*H87rcp7e?)BJXetgE~P)aD9z*e7^hZ>Inp%erJ)>IFu~8B zk!7y5F#S~8X)rP#pHjNS3Q2z>B3PbE=`Nwg$TDGCN1=!W=)WYkDc=xAjx(YLYUFdhb)q@Tjef!}vOJBtf^5ubSNzyD3hrSD>>(&@#Uo36m*cpmko; z`O1O;=9$ij9vm8r!IEQS6qwc?!9hcd`U0`hLUC6#9flqWSSN8kD4|D6P6$Q73>HcF z0sr4pS=+cY*>EbfRHDV28*~Ll}fGof>1FhIGk%O6our>I4zrO|20L5 zI9xa(k%ZGI6pk<~OehdrOZlPvFz#`F@Uoq<%qV`rf)HUKpCc3;Eik)?#=*nYn^C?y GDE=SKbTy9v literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/add-button.16.disabled.png b/app/ui/style/olive-light/png/add-button.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..8a81eada5365ea95ff573a5ed391e53a06600753 GIT binary patch literal 552 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0xi$ay(85-2p?)5S4F5-aa!{%uS&%d|8wA;(4>$KG(Kg zeY!z&yZ46V}`HeE73;rpIp%T-oU4dboM-_Fgg>z$y=(5a?i zYT97;n}a`i0`u`#ANCvj3Ubd{@NJ^}`AwSd)AyQ9N-QpF;Nw4~vaWZ|zi6NnMM_*F zN*qf|GV+TUd=raGGV>IIN{h4e%eJ3BGZQGU3X)GrEJ?LWE=mPb3`Pby9k+CYYZL3GtiAruX{`6-!cmAEx%sRynDYLEok5S*V@Ql40p%1~Zju9umY zU7Va)kgAtols@~NjTBIkF+@>mQF1CnMoCG5mA-y*er|4lUa?+zW_D(7YD#7zNVz_U fryr7-m!2P=nVg>&H(z4{P&k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b>z3{ci1fpwI@--OQOg$aw)&b`vT_xqAxe9(j2?PU@r4KiE~y_;UB zgg;40pToc)lypZWT!HzAL3kX)5$;pm8?yd2m^0)EmpVww$DB8v+2#`wYn_mhlo!1{ zFUf9OOHvK%)7rAF0={$4EF75@v zb7C6O9QPiX8?JC!+brnLPyLoq?*N9ozptHrti4a~=ZD#hkAJWoFyXUdJb79BaKBJl z0MKtDC9V-Aj-@3T`9%!AiA5!uc?vnC}Q!>*kack%ah>`+okObKfoS#-wo>-L1 zP+nfHmzkGcoSayYs+V7sKKq>wNRcr_QE5?fDnmv|Nr9EVesX?pZhl^|UU_DAW^QUq lW+F(rK8U9ul9-pCAD@|=pBFb@V**e+gQu&X%Q~loCIA38(4znV literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/add-button.64.disabled.png b/app/ui/style/olive-light/png/add-button.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..6a6caf3ff0628bf3301074a390f0d443121ed895 GIT binary patch literal 872 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@dBrQfYR&%nTV-P6S}B;(%OnX%c23`E-Q zZ@C*4c;Reg@ab#ajhp^9{QZCWZ?mZ5F8+YP<059!QL|%nHY|(JUhFIRB<5w~oadRd zCS7Kmp!m4HePzU{L{X0S2c&cFyH9_`V6*1S%)R1T1y=*yE+}*M+u7~3nHnW7A9B~hn!b>q8V^UeE~RKak?V&{{UM^znmWky!%`7pSx3Ui*p5ZaZ#dS;_?o5%#F zAO|iFM$HKsC)r+Q_Ln4nc$;gvKtL~+{quE$@CUaP7Js?>&qFFNWAk3+;6? A00000 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/add-effect.128.disabled.png b/app/ui/style/olive-light/png/add-effect.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..47acbd733c38d17ef58259d4c1d3fa1ec052b42b GIT binary patch literal 1759 zcmZ`(X*3(?8vYVntu2jKQi|5vlBBq3LM64gS851JE0)+IMG_HfEg2n?Vq&SSwRT|) zcW}{Vs1nAQ(NZ$1CGAyOZLMX-Qd`oAbI-Zw-XHhJ`#$gUKF@Q$U*DVMNpMwFLMQwP2^m9VKGQl@;@Wq8IY7 zN@3c?Z(E%C<^gK9_39eegI=C27V9KbzJHvjDO#qJAXW&Elts!*qRv&aN&LKK!|g#M z+)*Q|`3ppzBpa&zu~Utd!hhH6JnXF_+3345;=ekrvq37$Sv}X&P8(B<%25{^GmiLr zV*P$8nO_OSbHlUpdbfWNov0_^IskG1a>%XkF_1Z^EJchu?ODm?Kuo$HV0G7*M+r3` zDr&M^&Z3%o2&a5YZUhgPoQ`QyjwQ;goMa#Bce8GzV*Qu z;{H^Y^W0A8ewXq!WH5I^l-B1no;>?w$|rK%2h>|EtBfl|Hp3qE#f&3&E-`%S#2O6` zbNV~=SC5aAJkb7Q?kHzhij7;tUD_KJ+jOUfhHDgSGNba1-7|9=&xR8NMWtN_EWFqG zJJiwqU4Ej3rf{7`3084S?RD%DVz)Mj?*zC5#DMnXD*u!F#h55VTskx zxQsgtm{9VI9$B_Ck-muHa(xG*DOS(KN!;v=f#9a(^okf*pHKV;W}54E_};m3MXdG- zoYuz9y12BvoLRU0q5ufIciN6G$eYYH#_Adb~)Dt{}Q+oZMZ+@eUTOGO*Hqv^agU*{@y2FB? zU)>?e-(OL#%vw-%$u<=%9eS*>LV_2rF^mKriH94Pie)rkY#2?p!Au2HY6P+_7GL6O z(HZkG912G9tjFBfb5moZ3d$0XY<#{rCBL6%`ZS-BPxe&t97JJF zv2Y`hXEZr`Nf@8hfxqf_$gVH^trBgqmX)5N$f}TeR{gw2qRorUJFsEPOg!a*3Fs}J z+A0*SL2e~Ge{B<3X4PDnSJG3v0@oGi>YIzF4vq#6P4ZL+J)a!)?yK{k*-pR?7QQx# z`qQG5*X=Nf59=XTQ{=&w>My?Pt9KQce4p&{9Ml3LTgqPglBuN&Z@t0 zuF3&fhS^F|S4g>rTWx>Q9N0jxZ3lv2jqcQpp&3Y2a%9)QzV0)N#$Db|4JV@WZGUaQ zhUEoyS0N$6dZK0;0SMFVW1-hJ7H%HI-3uJ90C&X68?ry$9!Vlp6m}dp)r7A3t6gBr zbXT2*IPI*fDCxaue(I8a#4d#LfR{M^a!8n&tI=_S%&wI7iD#R z_<|nxnkE?iaZ(@8w%i-znQ6Pbl5bZpj>NDk6KE3Q|+owU78U z6@4zQ@d88{zjP5CVv_joK~bB0Jxoulq&4^NwLrU57oS~lt`@*Ljo&Xk+ZV+5{allO z#h|t%{~YAZkkGG$OIe$-BcHDYf}r@d0_0ro2dg@4huyXbP3MNF7R~C{3f^=)K(8+R z9lnwr0U;{fLYQ;s0kLhpz30caRZHoQ$AGc_5)P&^&_1X$8o7tX!SA0h&8t5#OO~%; zkn-FTHOvKN_6`?$wl>)*En}N4t-Qf6D5ySEWhXG?wOsGUZfNB%Rkd2p);k%wmP5kw z#iPxNZdLU0#q=pz+P7WR!hvn&b$XZNy8@TH!U!t_|39#mzN$JWZatXkCHzf#Y+)Q{ zG6x^WiD0sU2bImCGxWUTVk4RH51$U+lh6!PZNdZ`(EiBB@r_3!*6VYgl zr8VXh`lNI~qiY=M7XBv?%?zc7C;k7xSgcs@HCg`K6vqw;0}&h!3xh(1Fr%ZHj96p>J(3r;B5V#`)I%_56nn1X}k` zlM)gTb=HY|!4X{Xn-#n78Yv-cLu)Ve9zRXeS ziC08-nxGO3D+9QW?t2%k?tzvWt@w3sUv+i_&MmvjHhGhA1j6 zN={|SC@Cqh($`PU&&|!xE7mK|%+AbBP036IDc1+_^g|N!((~gplk@Z9=4(sbP0l+XkKv=_&Z literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/add-effect.32.disabled.png b/app/ui/style/olive-light/png/add-effect.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..30190f0d41db53af128a0022445d5e4796b59774 GIT binary patch literal 676 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b>z3{ci1f1_nl9PZ!4!kK=Dc9rKzUcx2We zl2cw}v*7iY3+i9~AD{D!c@KXF%c;VZ1$>$Tr>4a&IDU@x^r6FNPKX`w3yA-~DX!re zx?b6!cHtU!U90V32OS!i7!tM%=bU{|^yMtRsJ1nCUHoYgP{LDlFSAlE zt5aM@#)xNysS3yDx&X$4D|2{$9olO@|KBX}xc_y1=NR=>4IPh~C+DA8P}>!+WWcj} zTE!)4F30Y$zf!Kk+@ZZsL{|tfPpIfneaFzZud~{>{YL&>QG+#Mjy?TbTJLTbPz_k< zkod|}@=^JZXYCb5=?Cs_;!JCt`;lvh#?f~?n?!!hW_H{b{o|~?z|Lb^f9$qhupxEM zp&#)RzKZNT{jHxx?){|@&lFd&IlvGTDRGS`aV#y#$S-2>O)M(O%u@&|EzZs_+kX1Y zOrX3fNIoU8B-JXpC>2OC7#SED=^7a78d-)I7+4vbSs7Sr0~rPee|aA*L(!0%pOTqY ziCaTYK$H|vgCxj?;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhK#GhZib{);QyDT! zN(!v>^^@~+bMy0x^~y7|Gjmf@G7~|{^+7!Ski@+7{P@h|{JgmN8WVup89ZJ6T-G@y GGywpgkn^Ab literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/add-effect.64.disabled.png b/app/ui/style/olive-light/png/add-effect.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..1c44ba104f787b2ab386fb12ec502f7d1ab57d8c GIT binary patch literal 1049 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@dBrQfYR57gA*>EalYaqn%!`TSc361DRW zGsUuM=E#^$RhwG1=+TzL|NcMbv)$-@C z>A!zIe14wqLwl3M@mU^Ck%D4826D{@AH00QvQGQOhKiqt2d2lJ6KT<5SbsZW!PM&udG*bKm(EjKG%tC2ZVg!do3&7k z=Z3{swJR)g!G`l186UVk@7c7JgH2=w+hqU08$_;z{8sULpeG$X#nb;2<4=>tzwZ@C z80$>gtf=6dUE6c*_xw#!uit(2-^&?zDnBDwT#ZM;=HsJ9MZpKIxVB5L+1R!#WA-ki z#ue%(?oV$ps9c=qIpYYcBHpitvI;qr$&vA;h7h6hfn;={Ewn64;GXN-&nLuYOamkk)uz`UY6J=8s`((({mF|}Sl4W8T=t%2!R(@~f!mio{`y7Mu07&z${kzYS!*1ou990P z`60tP&|_a%#9XeVe@(JC<1Sv$Ec}$Rq)svPOKBbplk~l+U-y4lnKK=>EI--EKVRlu zUQMk=&>ZHhedi`R2-#g&(z>0YS9-Da(_|ZGrgN(I7#a4LGemC$cEXGQ!F;`Dr z(cy9F%jcdPCT?FERHuEpAhGiMsRH49hHnZ!e+~NbtGdWB&Z9>9-)AlnmM7aE-dlfg z?}O9wt2h5-Sk6(T%5>X&{+;FDD-`x}U(=tpr@URh)=*R6)V(?8YD#^@K2r4bk&M(`3`pitAyeddOC9x#cD!C{XNHG{07#Zmr z80s2Xh8P%F8Jk%dSZV_q1_pn5A1y=Ckei>9nO2EgLr*}I6i|aC$cEtjw370~qEv?R z@^Zb*yzJuS#DY}4{G#;P?`%Mdj3J6ji;`0rGD=Dctn~Gh^K*0a^NRJ#GqW>uQ&Tb% kLCW<(JpGWwy!8C|%;fyMxcM3rfZ7>6UHx3vIVCg!0Ig%LuK)l5 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/add-transition.128.disabled.png b/app/ui/style/olive-light/png/add-transition.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..400cf3be02d4d73f41542b4ad22e4fda88dd9972 GIT binary patch literal 1755 zcmZ`(dopkyzpL4#?=lOg;pU-*Dd7g8=7mghE zLTh2P008ad?cuLP{(5atQ||PAH(iyW7VSoI1E|f{UX4&!axFebIAj&njQ!-7KcL)ano3&ml`ICP|DVrKxACjlW z8x<^U*Ghl8$^%e8{=3U^C8+2d$@!fhNqe`)oB0E4$ z3ZaK(m&}NUFYzob)6f@EmM_H@Ub~npYi=s}^D*rq=bVn>%@@YTcssj8Hq}qXf%#uj zkB;>hbNQc*fcln!58T^HQ=3$T1?e{X%#FPYJ6Bv6K8US4Gvvbw%o=e`GsfOZfxD$^ zcI);Mz(Rj8VwGpKd|9(2~h`=``_i0Z={L!SF@i376t?`UE(H;)L9#q82^ zm~g}l48EJ!Vl;F5>#wN@??LT>%6>(GIhCH(V%+2ZYvfR9-{%t>Ob@Dppx@Hm@xUo5+c8JiP;-A!(RxjEf z5VGXnotHcwN`jhrO~t|VZi(uT{=KDYJ?Z^cM1yy&Emcw-u*T%fIA_l*%uYVItl9By z%h=|f6?0Rov6a(a+o9af>`S@dfUNVry{vc2ew6dzmB>umB<$JpvuRBc^$q7 zmw7B+Hj+iHxJei-grJ^}=Tch!rad_zc^`z-X{b%i_AFB>12e*dpI$b0CM`uv^GAH2 z*Hu1s3yhriGkt;h2uiMigYKfmKV8P#iu#AQ!{`32uw5wULFd)YJ6=*9_-FcJIi8_Q zb1YWF(Z`-<{6_A}Uv^6^N|%#IIHvY1-f~D?G%pRj~7esJR(aB4U#v7g%jYa1h(xIW*r&}L*|}*CTR5g z%c}F%AgR7Tw&(Z^pMOzCePlOTSG%X9_4I1s#Vw1iF}-4aDK+o)qr}muwm&YJ8C`4c zd#}E?r1??fJ&Oy&rOdS}POBbZbAGnPBCz79j50q~y?0#u#-9r-#smf10`p-7+7mFz z-RL1eVKlntEFO>*K?mpG;cWi_;DDv+2n+au6C*gyXuhAINVB6N2x%#Gir1zp{OF@^ zj<^3N+xN{#W`99ehtY`X)#$`4Dh_!=#njnaq8o$;M}593AJb|LO(K77K8L zZTPDm>l%vh>o(hNe7y+zeDy|6FAJ;W*E30pQ0Xn4G(-VK{9dz;_(?@=Cb4YN#NQnD zYHCEg~6NgQ`bxs;&z_?t>#vFqo5C zQx~M?+)Hs=JzuC@_=0geaaCt2|DI1|^Vu)-Msu_TuXh@qrf*rXlsr!1XlJHg?9hUu z>N5SN4#ieO`(cW)qA8_x3TtjOwJhEg-`C`MJoJNKk!-;9?0M-7SET%Ak-?|5WrJC4 zzHe8j--7qI|GUUj%!;nR+xt7dUZ1`OT+d*x8;={qWCJOJ&80KU{CS)>=9$L6-@a4o z7VG-S2yPUC#*R_~*eT~G4!;{`x1Ws16ZY5>cH^y-2Ry#grTYDU1>%_}>8BF^e_$}u z^q4ZRb^V3_<|%GM1Um{65)y3aj5rQ0f)!=MWJedvi5R76&worjHZ2NbxLg*&)|SSM wk7qJCHVO1NdVJJLdc?ZjcAeRhBN)+4DxJn;gqK-fQpUl@^RUNV_Y>*=22=w6TL1t6 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/add-transition.16.disabled.png b/app/ui/style/olive-light/png/add-transition.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..34a64e8308840c1978914472e799988d6019ec1e GIT binary patch literal 603 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0xiYI^>s6ex7c)5S4FBbTN zRSYlLgVb5X%1-sIi}s6tRg%Nyu)?ld{m7 zS57W`*s{cuwSeK*%!&JgzD)0)f3#ZSNdy0t7a~iyZ>{_?m7T9)-P6Lf&lSbi%e2q# z`M&u_(7nf85~no|E?}Cl*6_vO{Y!qAc9-r@|Ib|G@%o?on*)b`u?ZU|?lzW@Tug4P+P?EU{ny8bw2HeoAIqC2kE@ljOsJ8YDqB1m~xflqVLYGL)B> z>t*I;7bhncr0V4trO$q6BL!4s3{g~Cl$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6a jQmzl;>4zldrRT?ICggTe~DWM4fa6s7n literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/add-transition.32.disabled.png b/app/ui/style/olive-light/png/add-transition.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..e188a80934d3a21342ca3bbc78963536986dca88 GIT binary patch literal 744 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b>#5^!!gL0|R5Yr;B5V$MLsQ_vRlm5IA~& zCnxh1t{K6ajvgMd)?fb1@7^BWEZfN9?7D;}r1ZdbMb#}w&atn#^Jwzi@1OUIYcj6W zu`;_T5o~bM^%k!}AFunHjroVx2~T18!O(E;X@j@%j6UBl)xTF3DT-%W9NOc!CX#F2 zDaQLQ2kaJC+3s);>}_?NEXVMj#q-6feQBI86t|yzaHB>4=&HDGQ-OcN{4%SUJ?Dw8 zO}CzZ|0%yr!TrMYw4|knxfI&@9hi;Z|Gt?!Yg$pW{k>BHtuB3YL=)Qle)ipaBK3cf zrh3E@5AOFeHx57gn(#I6+;?vW3#VtDhi&C@?|II)IGOVxn5{VB{fs%=bcByDY+q)z zA!z=)$7~F#YJMemg-aQZy|VeN*P#E;qpX+hEd!I;-_);Dx3Wxl7Ll5JB#a?9a#d~g zPSyj$K8L>jdcD6>wc(3u(WT}8o8I&(@K&yEj%NJ9xa>pCsaHKr_kf`;QsNp>;#gXe zkzd5%n^;tmnWqp`TAZCbP0l+XkK_{taG literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/add-transition.64.disabled.png b/app/ui/style/olive-light/png/add-transition.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..0d02a590a05512792c2fb9e604d055f9ec486b85 GIT binary patch literal 1070 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@esnx6kD1!|h>>EalYaqsPnv-!6i1diU< zX>kbhVc2S(h5#1>AGgWW_+p*rB$G6uqZ#n(rMAE;dM=EC+Hw6eE@GsW6aLSrl zt6{srsyx{S@w6Qq{_^BRS~D>HVZPXOTspu*>0zCTd1}G5tu~rZUB2nR<2v5n${%y_ z#&?d?s%jG%U&aM&tI}h3Ike8&+NdFuAN6~4gu;y2x2lqd&xeTYGw@ce+#FM?engLB zM_P2t8x^|%fgOfjvl|#6EP1jjnoDx>mAx~Ax}GVV+xFtnkA;SZ>~doSmre;V-!s3r zkLk^B#(+a?^Tm%}6#uHY-|zj}MN36Ky?ivqRj^EJQS#PnE&JP=uWxp}JpZHgCg#s_ zC$I3Y-+0987Q=Ga$fW++70DZaM88`5D}5=$gqoekK~}%th%BG4!^Euc;MaoseU~z` z*o0*EO4z;=Qa$}a_-6O@yxUq1^XFM9FD)_LJxNZ-#hLH%%U{(Z4Ij*Yv^Cf?2)o!n z-{*eWqRMMw)MqP6hm!vH3J-Rs{cX#98K_i!(dGHMP`!%88DXur+%8H^e<*6Q`>LDt zuhNT&lkX<=KHb95Wc+XI^b++4lZC>6%2xmCoqiy^efslTXLBprR)x%6bhhWphKG6E z=EwmPRPXM+eNTB9c%~MK{M}Z4g^@vZlX!Nd9zTQf>7DF59_L+C=E-jGjnzwMm{p)( z^r9OWk2h`_kS^OYX7I?@1UOnOuHf_t`Q}Ur6n2pMGU@)MJ1Ve3PGjC+4*JLPoJ3y zlvf4GrzDo7S|t~y0x1R~10y3{14CUS%Mb$tD`PV&Lj!Ff!@yvP{qol+8glbfGSez? zYq**u9}d(Y39=zLKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IXpdw?4qSB(|RECU_ zk^(Dz{p9@I-2A*^z4FZL%-qzJ%tVlKeGpGSBrz{NKRz=#KQC^+#sr{t22WQ%mvv4F FO#od`v_${_ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-center.128.disabled.png b/app/ui/style/olive-light/png/align-center.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..71aa6ed976b3bd0665364e3bd81a9c7b480d226d GIT binary patch literal 937 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;3@Y4TADnp%)Fk2Q;uunK>+PI_Sxk;RZN^uX zc7$=U+H&a5t9tR<-fMmC$7M|&0ggI;?`KE8DN8fA_*{EDuxwJsw3BMTyMabJtlY7T ze_FEro3Xn@pabMx{LF9oZiXDKRtQt z$rGPCIkDYqe}ytLu81=#iFZjUk$d<3tLxN3t*ebgo~c?>^55 zM{-|fzf#y@Z-4Lfky}^#BIZlr_GI`qUp?d9_wA_y^_+_qqq^axjpLtpA2kzh zd-UG3wPWQ0E8pfK-{SL}lL=^)ibm|3XPk#XEDNsaGr}g{fB!FBYH}ybk_YOjr-6UC zgbCQf#1QN;V*+Dh}hax*YL}4n!cZTb$gvdE#qH?FU%MC1tu1qN`z|G z=zkPH!@*vm_4f<*1@Z~ZzZgMuLtR591Jodp4hQ=OWv4+}G^WQN_4yeXdZ%#{kS9{& z8d2g{T9T1p#NeA)RFave5L8;6onN;7^qHAJc~y{nN@7W>RdP`(kYX@0Ff!6LFw`}& z3^6dUGB&d^G}Hz%3=Eh&*2JS|$jwj5OsmALp;%M|m`WKWK{f>ErERAdZMR9cjr%8*e~QedU8pPZkYo1a&#SDu-jnVXuDnFvy@ h58~;EB<7{($7d$z=f%y}m;lty;OXk;vd$@?2>`EoX@vj) literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-center.16.disabled.png b/app/ui/style/olive-light/png/align-center.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..9998a0fc93b9acf4c17dcfd274cde3c199abf0a1 GIT binary patch literal 446 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0xi{`%m|W1x_(r;B5V#`)v~1qKO836U)l z6@@42>I!;0CvZ+-c9UQ}t2$pkrrF@dT&|8QKZB*qQtSZBqP6w z!8fs}Br{JTsI)jczij*IGc$qmsv!B4#FA92 zs10No7%+LPiAT|po1c=IR*73fv8V{h>5?EDg7ec#$`gxH8OqDc^)mCai<1)zQuXqS z(r3T3kpe0*hA1j6N={|SC@Cqh($`PU&&|!xE7mK|%+AbBP036IDc1+_^g|N!((~gp Xlk@Z9=4(sbP0l+XkKpVfg+ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-center.32.disabled.png b/app/ui/style/olive-light/png/align-center.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..3e6584c7d97c7637b37aa22358bc36b890107be9 GIT binary patch literal 509 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b>#j^}(6PK%pE@7sn8f<8P;IFTX=1o^@e*e)w@pnPlqSX7wM^*r-^->X%JXicGzV-i*vv^SbfmiS03LV*|=d(J1 z_KK9aMwB>~mSp4?G597Hm1O2A1eF$N=a+3ieP$+5UKJ#tl30>zm0Xkxq!^40jEr;* z40VkxLktY8jLobJ4Yh#`0|O?HHSs7Ka`RI%(<*UmC>9j~`CJlYLvVgtNqJ&XDnogB zxn5>oc5!lIL8@MUQTpt6Hc~)E#t=oNMaiiQ86_nJR{HwM`MJ6IdBu9=nc11SsVSL> jAm#cXo_NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@eszdktg7%24A)5S3)jqufI0xu?dYZyPp0 za9bUz_uZWN^AUF`slD5_si!;c$aXTFtS;5^X;)ris_{>C)43wMq6huHTMFPZeGS z;_InDDgQp1J?P5QmOt;-G_IN>aQ3gr&BLLygbltkGR$wPWBBV}U&-*7;TI#rf%Ojd z4Rs6V+e}~r@i&mm(q9HdwB{QuO zw}xU-5m1mzf@}!RPb(=;EJ|f4FE7{2%*!rLPAo{(%P&fw{mw=TsK^+isI(|Kl_8^~ zq`*pFKRG`)H$SgfuRJq5GdDFQGZCa*AH>rSNz6;nkIzib&x@O{F#)KZ!PC{xWt~$( F698k(-&_Cy literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-justify-all.128.disabled.png b/app/ui/style/olive-light/png/align-justify-all.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..40c21cd8be240f9ceb254ba11f0104970cc5a53f GIT binary patch literal 842 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;3@SX?Es+ik42(NHT^vIyZoR$bn9XD;(DpEY zjcdVL5w0qMD4VYr{{IiI%I!86O%c@UIQnJY$t3Ssr^(+f`?}A#D5rg&%)sEVcFpV7 zrxs^SwgyT($@|#PJnwK|_3b_KbsHJ+gLRsp4rY8WdBXgN=_dn7 zPUUK`3>#SE*OmX;IDR%<`SFDLlytn3yn|gsO~VQH3H$}3pBUfGQj+f}^LMvX(3`-o z0F-kGvZctvufN#3C;bdO;HrNRXuC*>Yeb1-X-P(Y5rc1HQAuW=LQrXOc7ECR(`RM^ z?)FK#IZ0z{p6~z);u7GQ_~Z%Gk`x&`2A|FfcG)urSNz6;nkIzib&x@O{F#)KZ!PC{xWt~$( F698q0MA-lU literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-justify-all.16.disabled.png b/app/ui/style/olive-light/png/align-justify-all.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..4166f8e5ae12500b34596e7edf6d3edf693f2e3f GIT binary patch literal 435 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0xi{`%m|W1x_dr;B5V#`)v~1qKO836U)l z6@@42>I!;0CvZ+_4m7`TmX~483m)E8@z2wMszpj%BT5`gOEU6{7(yEr+qAXP8FD1G)j8!4b7V~C>C zqU2PDjFOT9D}DXs{M_99ykfob%k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b>#j^}(6PK%rny7sn8f<8LQz`M`!~CJy zcAKB?4v-ZIkWD#XzR>Civwr0d9a-jY=|w=}MM_*FN*qf|GV+TUd=raGGV>IIN{h4e z%eJ3BGZQGU3X)GrEJ?LWE=mPb3`Pb$uV+CYYZ0h7m?coYq} z`6-!cmAEw&i;93eC<(G5I6tkVJh3R1p}f3YFEcN@I61K(RWH9NefB#WDWD=_h@#S> zNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@d>vRfh@fI^ErT^vI)?!BF6$ah#lfaU$U zX;1sa73>fEulL$zBFOLYA}GOwRl{rM3^n7colUVVeo}%z%D432&Wekf>BncI@~oh` zPUJ?|-Bh_RZ$k98HeEITeE5-T+GpMEd`Ee^>%BMUulvcmw&B>sjkaq=PdHxM@Mns% z?CncOpS;`lqUhW57YqA~-ez+!H1I!Q{=r}e^d36n1Jm!9RXb;}By9t_R;0u=qQtSZ zBqP6w!8fs}Br{JTsI)jczij*IGc$qmsv!B4#FA92qzz;k7#J_ub_hj7ZhlH;S|x4`PJj98fEpx0HU#IVm6RtIr81P4m+NKbWfvzW z7NqLs7p2dBXCnnvWDHSMT9lm1kWo@nV5P60oS&PUpI59`o|&DQo0^iD2vV*O;^~JZ c=B4MyXC~+8#m(240MyRl>FVdQ&MBb@0GB$wZvX%Q literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-justify-center.128.disabled.png b/app/ui/style/olive-light/png/align-justify-center.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..0a1478d5ffc1da1fa91e9906a60e4c795c09d663 GIT binary patch literal 939 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;3@W@b&6(GLnxs5k978H@y}jj_&15Lh_Rw=H z$GWLbj{HvD%jJIkulHJ?`*B%QM}VWwvhQAOLe{-( zetP44$}6{j=c>9Uvc~=K&sW98>FSrmDZz zR5$-w8S!S@tMyV54X;!We{ywkd;YL4UOvRS#Z6-~cuPFxl=}6TjXPnQ zI>)!)x4Z6boL1Qsuz&w|)(vNbTYmlBtKU#KPvO_QkK75f)jRf8e_^_@E$H!kx&P7$ zv(!8GSN{>)kh{d~zHJ@1#4}E(zyG!^l5g?(%+d%nowH9btg@+K|NgZs{fERrHvYF? zH|5w`xpqbdhn;ndEAoE^x+L6l2Kq~+#5JPCv9u&3zlgy%v8W_7Pa&wZI6J>=`{^?? zf%2*#`IN+xRIB8oR3OD*WME{ZYhb8rWEo;$U}bD(WoWDoWEdDsy}q{$MMG|WN@iLm zZVgYmSWf{pNP=t#&QB{TPb^AhC@(M9%goCzPEIUH)ypqRpZ(583aH2!qNubeIh7%! zq@=(~Uq3lNH#a}8Sg$-YJ2N*mB{LDETpz^K4@t~R&yUYc&d-aRuQ36rox#)9&t;uc GLK6UOuX+{$ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-justify-center.16.disabled.png b/app/ui/style/olive-light/png/align-justify-center.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..2c8239baf9fe4e93569414362e63e7cc5ec1cf66 GIT binary patch literal 446 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0xi$!>{s01D}Px;TbtoKH?rV33fM5ZNM8 zQFx-RuAsMb0_T+GK=T8485lG4e*SqN)#A8Qnqk)!9^OMUzH0zAij=rUlsJ}_WaJky z_$C&WWacRZl@@2`mu)|NW+qTx6(paMSdwa$T$Bo=7>o>zjC2hQb&V`T3=FJ{&8!TK zw1Er*1LFnT4xwns%}>cptHiCr=`UX$P=h4MhT#0PlJdl&REF~Ma=pyF?Be9af>gcy zqV(DCY@~pSj3J6ji;`0rGD=Dctn~Gh^K*0a^NRJ#GqW>uQ&Tb%LCW<(JpGWwy!8C| Y%;fyMxcM3rfZ7>6UHx3vIVCg!0L4dwMF0Q* literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-justify-center.32.disabled.png b/app/ui/style/olive-light/png/align-justify-center.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..a2e4b57fc4670ad35bc170aea7f5e3dbbeb6ef62 GIT binary patch literal 509 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b>!O-4f{l6w2{*aSZV|{&vzv&I1NKEdFf# z6F48eu@9NUY1F{IJTNgyfJ2<~SUA_e&_4&Sa~#-r(y>I%+jhM)Q-eym%p#QwO@d4g zXGO|4U9tI9BQ}klJ3_9?)FK#IZ0z{p6~ zz);u7GQ_~Z%Gk`x&`2A|FfcG)urSNz6;nkIzib&x@O{F#)KZ!PC{xWt~$(699hTo)`cC literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-justify-center.64.disabled.png b/app/ui/style/olive-light/png/align-justify-center.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..ac635fb1378a5d14e727cdcc8a103b0d11517ea2 GIT binary patch literal 617 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@d>vRfh@fI>GsT^vI)?!BGn&38ya#P$B+ zWiNX~C+HpctABK+@L{GYGnu*ieymWG*l^@Xwc8TSz1uTiSi3y9|8Pr;_(G3ghtD-i zOD@;{zMbjyA@^Bqd$)aE9^lxL?Zn%yKC7i`XX3-B8-6S|x%hcTz5w?INy*ulk{Fkt zUi{&hdA;9p0S1N#%pVwkFw_8Dg<$Qd^Pa7~=iJ|COtJGO zoc$|wRX%^ZdP?#BoeuNWuay7q z^OR2kO%o|`jVN&}Ey>6)V(?8YD#^@K2r4bk&M(`3`pitAyeddOC9x#cD!C{XNHG{0 z7#Zmr80s2Xh8P%F8Jk%d8fgO=1_s6pwjDyzkei>9nO2EggVSHWI-mwgkPX54X(i=} zMX3zs<>h*rdD+Fui3O>8`9NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;3@W@b&6(F27#M$ex;TbZ+m!DOE<%rTLd?M?gTm}YUe)j zY037JS4#hE{3`T6;=xV%)c0oZ+v9T%oPO~6;@Q1lZ>`_S`{?@FS6|n}@8q0XUonmS zwQBs`C$IB1-d?poD}i~|a;DSbf|7IFa&OCqsMlDQ6~CT(?9sE+ACK~W*gWZ6-Ey;! zo4chIf?ub)EnRh4+F(;$a>y#Ht&H!|<-hp9eD$ULz{RSGhCqhkjc9!%t{}`C^!DYyFtuymy(xb;zU5^lKso~_sOT#`Z+?SebB)7>dim%upqc;e zezHY8V|M!c`-ybI9DWbG>b#!~Pd2AduDq5G+Wa$c&y71EcZ-y`MwB>~mSp4?G597Hm1O2A1eF$N z=a+3ieP$+5UKJ#tl30>zm0Xkxq!^40jEr;*40VkxLktY8jLobJjkSRc1B0p8_m-h( z$jwj5OsmAL;YkPkPX54X(i=}MX3zs<>h*rdD+Fui3O>8`9!Lz#t(hA+klH zqVPmrT|sZ>1kNeVf#wg24nJqVK0!3#9UH@$D?Gfe$xHtOb%~U?MwB>~mSp4?G597H zm1O2A1eF$N=a+3ieP$+5UKJ#tl30>zm0Xkxq!^40jEr;*40VkxLktY8jLobJjkSRc z1B0p8_m-h($jwj5OsmAL;YkPkPX54X(i=}MX3zs<>h*rdD+Fui3O>8`9(f=vJb literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-justify-left.32.disabled.png b/app/ui/style/olive-light/png/align-justify-left.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..efce697ad51030206a7c79f2c02c2a340ce438de GIT binary patch literal 500 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b>z5)0}w?D3t8!;uzv_{OzQTybT6CEaxX0 zF$fEMlkYNMWM0D2ds`q<&tc;F|NkHH?{j1L=F7Lq@aC_|yAv3e%y>LuX@gjW2gBY= zXHH&QU0x%4sF~pq^ZOrKXKXL*cLx#i+%{)yfBe1AZ+Krv*2DDEJfL+VC9V-Aj-@3T z`9%!AiA5!uc?vh-;4C>nC}Q!>*kacg+e#d->;K@wy`aDG}zd16s2LwR|*US?i)adKio zs$PCk`s{Z$Qb0w<5Jja$$*Bw(B_#z``ufTFxw-jy#d_tL*_pYiDVd2N<@z9=en?_o adVYLna(-Uie2ob}?F^o-elF{r5}E+0xuGTi literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-justify-left.64.disabled.png b/app/ui/style/olive-light/png/align-justify-left.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..c112d21ba0b888184658e5f5bde66177dea4c318 GIT binary patch literal 603 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@d>Wtuau0fkO^x;Tbp+AC2&b*AI$;FoizHa!j-DKLHW$Zf}ij0&(v)F276Aviy+q&%@Gm7%=6TrV>(yEr+qAXP8F zD1G)j8!4b7V~C>CqU2PDjFOT9D}DXs{M_99ykfob%NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;3@UuBT^2bE42-`#T^vIyZoR$b=*{FPa^RzR z8pk?MfftS%Hl;6q*H2j|dM`vkP~=F#uJ_S5FV^gv_49w<;v;)j@?QVj4RlLTYp}l0 z??RQs7rJHN>;5Y`kbLK~nvPw0y3B#-^xrbaE>^$4Zo}63IqO^9mGyT_d-qpQRe!G= zfA_)f#7$AF?q?ll4AGbD(^tA=U2^^PuSL5KE&prq?cU0%2J^l}^DFcf?fRCz*;8h# zTm#SE?U`P_%lQ{P-|HTnWmU?c_?G=|aFx|x`-Jyc#uH2gotcU)jM>GhYNaQ}zW7e)|tl6R0_5cY!kO7*51gQ_a4Uk$&QY8imA zp<_z1H4j+hso+22K;^!VFS9=}-^T%wzQBHgeTC>RhOhH<$6+1&jDzbgS>*$ z(>r|3AdL;5cGNOgt=5mxd&Ruw?ml~q)%+Xe?=Q9Yc+b3M=U4X3+6L3}{}fj8Z+Lc7 ze#uwHYc;={TkHfYe+5pkEBx`}pH-|7OUZ_t!BnC}Q!>*kacfZ2wFahI21$?&!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2 zNC6cYLll)3C8siEl#~=$>FX!w=jP_;73-B}W@qN6rer39lG|=Q$@zJ4 T^ED;_wKI6S`njxgN@xNAL4Rag literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-justify-right.16.disabled.png b/app/ui/style/olive-light/png/align-justify-right.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..0c859530c3e7367b5348170a5401fb3a941a4058 GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0xim1)kr1{Bitba4#PIG>!Lz#t(hA+klH zqVPmrT|sZ>1kNeVf#wJ9Ht<}y<1A{0&(v)F276Aviy+q&%@Gm7%=6TrV>(yEr+qAXP8FD1G)j z8!4b7V~C>CqU2PDjFOT9D}DXs{M_99ykfob%k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b>#7+GUXg6iWAWaSZV|{&vzv-Ub66mh%&h z7=#7B$#)qrGVkEvW%bpGbYpVe`R(ifvj?wp9N2Zjt;}re+vA*^4qdzXBDwA`3ko@` zUa@=STDSA=iB$%TFCD+sh#cYawVx+fa$VOx?(2f~m&fyMb}(pO(2q77si7z7kF|3J}@o1c=IR*74KqOLVCh!`Y6HU#IVm6RtIr81P4m+NKb zWfvzW7NqLs7p2dBXCnnvWDHSMT9lm1kWo@nV5P60oS&PUpI59`o|&DQo0^iD2vV*O g;^~JZ=B4MyXC~+8#m(240MyRl>FVdQ&MBb@09HMlQUCw| literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-justify-right.64.disabled.png b/app/ui/style/olive-light/png/align-justify-right.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..3c8ce3667aa5ea1742f5109f772fddf2d046209d GIT binary patch literal 607 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@fXTDvTAfI{ayT^vI)?!BGn$ahFVz%_kC z=B~#qOV~gBb1!^;tbif)c~g_Nf|g!_j^W4sSC@GHZZlEo=lEkCbF4J5t;FVy&Ycsi z)jRj=ZqTb)l6hfct<6%=kg8>83~Vnh@%gq)@m1n4_1TkZo=HDpz0rF`EILjh;?v~XzoY%5P z34R5U6TcqT|K^~*scyv=2kk|5E515t@BP~#$FSapLHk$L&IwZULE#}%;u=xnSXz>i zU&P>>SX7dkrw~+HoSk2`{q&icKzUV=d`eNS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;3@ZGedO3i`F)?|%IEGZ*dVA-fHN0xG`{#2oFuYiG z;mg4q33VgB<{O*i9?5gt9BqDc=vC?eZr+Mld+)brZi)M?y4~^7rYM{FU(~}_e)`^D zl)m>#w{-2DGiKReqkVH6zFs)=$<>AJ_`kAf`4IIQJD%XzQ=bVf`~2`GZ^vY_xqqW_ zh1Ao{9gbZ)ea0(vxp_ju-eYS*O0$>`ov*uKzjXEG|IB>Xy3crqFYiBau4-cB%2!_m zBes4QVBuW-YsN37Ew=aKPM@e+IaBBUwXX}0EcV;VvDStyFLgW?)D$G`uscS4{eQ=#Xc-rQW^gH9N4zUZJvn{_NHN z8m|1U{m8rF4Zp|T`{MT*9{+22w7L2-~G~Gjpy@J)Q`%lHr2wGkup$;vRJe!e>5VpCIp0$MBO8!f22x zye2^l8JpUo4VWeg+DBvp)wkM5M$uqQtSZBqP6w!8fs}Br{JT zsI)jczij*IGc$qmsv!B4#FA92stsfq7<^;z z@Ild#o1c=IR*73fdz8Tkpaw~h4Z-Bu z8ABA67A2=LWR#Q?Sn2C0=jZ0;=N0RfXJ%*Srlw>jf|Tonc={oUdFlD_naTNiaq~4M Q0JSrCy85}Sb4q9e0B-7Zy#N3J literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-left.16.disabled.png b/app/ui/style/olive-light/png/align-left.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..6a7fd73df6755b01fa70cc5f64f6ef0ca7d540e6 GIT binary patch literal 444 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0xiYwfbg0Sak*x;TbtoKH?rV33fM5ZNM8 zQFx-RuAsMb0_PNFAM={J0^Z1j4LcGe+L#&M9N^(~y1Yphs7<8AHKN3^v?L?Hh`~3p zs3bE_A*i%CJHKrE=`%Bd@~R;Dl*E!$tK_0oAjM#0U}U6gV5n9nO2EggQBiA(3=dBARB`7(@M${i&7cN%ggmL^RkPR6AM!H@{7`E zzq647Dl&#BDlJM*WymNgDX`MlPtMQH&Ce^=E6>c%%uP+nOav*{2l4bn67$mY<1>@< V^Wx@fOaN+U@O1TaS?83{1OR#5e!&0$ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-left.32.disabled.png b/app/ui/style/olive-light/png/align-left.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..a566a60ec47c1dac3daa1ef5751f4b62b6f7c188 GIT binary patch literal 500 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b>#7+GUXg6iW7VaSZV|{&tEXUxNV;v;Ndy z3~>%W|1Z|if50etYLe)p70et@%WgO89=^?SVAlyZUaitM$2nOYq9XW0rDh!DVNED8 zS##xL`r-dg`d|o_~Cs@~8i4X8FXw?;z{T?K-lzBHW$>trID6jVN&} zEy>6)V(?8YD#^@K2r4bk&M(`3`pitAyeddOC9x#cD!C{XNHG{07#Zmr80s2Xh8P%F z8Jk%dnrH(V1_l8I%|B2yh*rdD+Fu zi3O>8`9NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@fXKlO5ejJxXT;uw-~@9hk0zQYOvF5*d% z?<^QUF&6z_yu@4hCj(zB7thKcDk~EVS!af?)p;0s+R0c->BIXDlXcx!mi&2|a|z2mlR z_P)|+iN{Ng!`>E&eZFb$D)Z>&`!19an3-jV9K;lDrz?)FK#IZ0 zz{p6~z);u7GQ_~Z%Gk`x&{P}9FfjPW-r<9yAvZrIGp!Q0hW03f4?qo)ARB`7(@M${ zi&7cN%ggmL^RkPR6AM!H@{7`Ezq647Dl&#BDlJM*WymNgDX`MlPtMQH&Ce^=E6>c% o%uP+nOav*{2l4bn67$mY<1>@<^Wx@ffPBf|>FVdQ&MBb@0L?GjZvX%Q literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-right.128.disabled.png b/app/ui/style/olive-light/png/align-right.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..03eb1c66ebb6ff8e3ee6674dce3997f8561e0826 GIT binary patch literal 907 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;3@ZGedO3i`G5+#&aSW-r_4baVx09nt+e70t zj=0GR7g_^$WL^CKUo%(x&PoL(m5zs7_CG%*d-n0hncpM(1dEU5Reb#{%*ep7lPfOljPn&F! zWy>I0m4A84EI)aN^VR*!u9UoDaJr@cYx$RwU-bvhRZpGE z7#JU{-*WBu@oLG6{HrJaWJktl?YO!!P4V<;g`8D0<8muB_w-D@x=(u3FKrH`° zOk45eb|Ns87#ITNwwF7s|Jrss@+U*~_4D#`rtoi&zpq+9VIKd6XVdIGPP0dRJ|nO4 zlzC0%GyY4T7_ZfQX6FPd-S@NkTTO%M{r)&%h@d7&P=3$0=U|nSfPyif*)xHHaX*`% z09E$?IVcI_Z7;Is0b6`3_>Z{S3;qnL`TrXJ91~w?-|&y&7jp}UxWe_9@m2b!KaakA zeEEWZh5iM3hkAy;j7mZ0-U3qt5NP;+jGwW<{y=igFXk8g9~?olU)V3mKd55>QDD^| zMuGMA!wd`yV)hqY{uyXd-Yf^yD^lVbQQ}xyl96A;;G0-fl9{IvR9c*!U$*`9nVCR& zRgip2Vo9o1a#1RfVlXl=GSW3L)HSjUF)*+)HnTD`)dn&Q48E~<_@HRW%}>cptHiCL zJ<8w%P=h4MhT#0PlJdl&REF~Ma=pyF?Be9af>gcyqV(DCY@~pSj3J6ji;`0rGD=Dc ztn~Gh^K*0a^NRJ#GqW>uQ&Tb%LCW<(JpGWwy!8C|%;fyMxcM3rfZ7>6UHx3vIVCg! E07H&%AOHXW literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-right.16.disabled.png b/app/ui/style/olive-light/png/align-right.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..64128e78d47aff74f28f5e2cd432679c3dbc776c GIT binary patch literal 441 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0xi|J2I?GET$O#W6(Vd~$*UgM_4n$QFr; z!V`6M1-+dUIHxeXh3L(ye(|hrq5vPmk^?-vS6-T}0_qVdag8W(EG@~%FJkabEGo&& zQwS<8&dx8}e)`Nzpu8$bJ|(dv)hf9t6-Y4{85kMq8W`#tS%w%GSQ(pH8JcPX83qR5 z*gJesH00)|WTsW(*3ceh@Byen5@bVgep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U& zKt;w7MWsc_sSFtQ44$rjF6*2UngHJ4fD`}# literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/align-right.32.disabled.png b/app/ui/style/olive-light/png/align-right.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..741d3aec78880031148b216cb78865b51e1b734a GIT binary patch literal 505 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 Qvc+-W;^1jtbs#Y5Kc^3|3IG5A literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/arrow.16.disabled.png b/app/ui/style/olive-light/png/arrow.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..0b6c642bccf89e3fa7636870dd148d720bb09227 GIT binary patch literal 602 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0v6sBdNE2MV3^ba4#PIA1!!H~Wx-K-+xJ zTT+=SH$y%wP`DNS;s1ZJYR#ao*0?(+j}*;j%9**E=iEDe=74d0J`cm}MGwAsJ8a}$ zcBOUatAxr)QTeI6Z;iEyqHwin%ePx9Q}H?PfQF39?<9wZdJ)9T4#K~`Uh>sGh#-TlBG*JIrub8+)!pr=Gi zTq8;xOG`5Hix_+pi%K%{6oN{Nv-8WgpFT4aD6a~VPf09EwMs5Z1yT$~21Z7@28Oyu zmLUcPR>o#lhGyD8hJnHH_meK7Xvob^$xN%ntzp|Htz4i6NstY}`DrEPiAAXl<>lpi znR(g8$%zH2dih1^v)|cB0TmfT6qObwr!r)eloVL$>nG>u=H}-W>y>9_XXd7+WF~@? i>w|duA&GhE`SF>_`FU~kH6{SHGkCiCxvXk4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+4q-^$9*z`!`!)5S5wXG?CjQ@};GnbW@_`pqHWzTP-qM}9c8-YlrTMJOtxRg(oL;IUBhXv0V*BUT85tt) zdv6OKF}}bJ5v}Zt)z6(0Tr@){_O;tb0oR#_ z98KUg$9E_vadqKGpo*dLQ2n<&$iLFJi@z2=3e}l z*_8};)GvNrzM21qTkVarj1q;X_p5cw3dnp8<5d;j&?$Fk^U2?Q3#gzkjQiTj3&2GJzvEDmx`TT8tV!5W*WUQGVOnBUVSZ#wqRJFrg-MN$h zyFN>O6|tjTD8YwsW`p5$=8ZxO4ZBz;Zd}9j=(N(+$+KQu%K10Vc6Y&FhO5@qRO)M(O%u@&|EzZs_+kX1YOrX3fNIoU8B-JXpC>2OC7#SED z=^7a78d-)I7+4vbSs9vX0~rPe$KOx7h@v4kKP5A*61RqJo3wI)8YDqB1m~xflqVLY zGL)B>>t*I;7bhncr0V4trO$q6BL!4s3{g~Cl$^?tQBqQ1rLUiypPQSXSFBf_nVp%N nnv$6aQmzl;>4zldrRT?ICggTe~DWM4fE9EYw literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/arrow.64.disabled.png b/app/ui/style/olive-light/png/arrow.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..0b685bb68ad6272bce2ad4b1c99f03c0b2cc70d4 GIT binary patch literal 1243 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@ci>RVa)85o$oJY5_^GVZ;d5gUBVL8R@z zFcVYV1edI}T`GK2B@eFt*ZA-M?{f{wjyiQ$vpU1HIZu9bN);(fHP`vF$hQ3CyR`Xx zs?WW%~-u>jhfln@%pT#0)!`RQ8j9F&n=$wD` z^y*ATkCn3*bv>_Dnz`;3mq*>SwXs*VxQlA9GCavOT(x^z8G~r-OwZ8uOH5KS4jF8@ zo~Tuuc{3{VYrWeo5f6b!rweO$FW^<^T%a>|)vo9)-YkcfZGWw$Gfzxirg1~Y zex13N8L>@@PRDK(n=fOT@or9H%cR}W6C=82YJ5m33n^Als`wk$323z z4SiR#lb#uzR;{?UaK^gOORpHDdY`gepJI^Ov{u}Wb>gDp2qp#xm0yb`-?Z2yr!Nxw z7`Cvr;egYxUir7)sSPc52LvuKJF%>h|9)2CMY+1jmMqWqAO6l+{7j4MO#)cyEgUu`cD`ahX$N1UWqP+b~(0*4ThL}&W21Zi-2g@Xc!kykGB!<}5d? zRenY`gn~hu^>Z3=jBO4}H2S{m2NEu|-N;BT5`g zOEU6{7h*rdD+Fu zi3O>8`9<7RJ3sjd4z$!XIrT`F= z0hoyffLaQGzOb@6h=wjOF+N@%0MzI1c0ie$kP)5&fXO*!LHVy1Ip|OY_V)8snS@M$ zxt3}sr3^i&;_cxUdVKh86)$AiRrl-*9ZTk5=2#8;kT!P2kp5wF6Z>mgm6Vvso5iUf z?Z5ihQdSkKaBQ3lQ|xF1J4cSO)&zzp?6{Jk9~5=j=L>abDudg$RY+&WJ-LF_a&^mqWv5HOOa^2kqKx_(-mn2Q z=WsLc{oqhUtB4di9%DQ(6pT1`Zl_I_$mGDj@0m*o*P?a(`@6>lPbu1gV*HN2M|a*) zbjRZ6oXIAeP35X}J!dKRiwwfmp}Cl;Zz-=kaL1@acEuwGU8>B!rNq*-&&k@PYTB2? zh))r!!q?;7E9N!Wf_rUG6h-RCUnioMPu7o2{|Tfzylg?_)ZH-GCH)ZqCZSn z5HZJS95Js)peA@{Hnx?tiOif&ktX-*yV;BMhZUdMG3MQn0uFEmk zw=mc^hDt%#{}5i=z~yAXu`Fox$2=Pwq*+l|gR3kIiqZ+u3!Gn+!U;i;tJGUxA@{@` zOHSUox7H?`5gEGXPShQVzHV7Fl6vf6z}+FQjnf&c8s&-e!ht&Xmie--rm_ek{^o(U zH>F-dv@H|smOZ(o^}@t+Us2N!B=YhgFwPYfYuqb_Y` zj&=CVb+B2vQr!gA24RrNLx~lQ7EB=gz3=U~uS3Si#@q46FhOFuCd(i6w#v+32r!W+ zR-XaYr*im*18#xV`5TgH+D39GueHEQrK-*3f!xUaHh$}3Kr-^##cR+P^iL@?cWs0r zS{S5@fBM{Ta&B#qhJmQtt)*30nqItMMDCz#enD(!yYO+K7rFN+O2bhPI0|k^`VHp| zB7Q^6;*EbIcn~5}4MMh@{YX!^kUNM~1v9ogilTo##ddD3Cdr~w252L z_qjkU7thMZ(3H@HJ(;kZ7)}s~fFDZ)bCXPi#VI^N>b)mDXk>sr%6%*g=1|!p4hq15 z?BHNa-e>D@Ae2m|?suZ@bGAksGMQCcri`6`4SYc?H!khJ4a82fKTw0A@;p)cwJxmiCeti&GEiJbvX~)41 z5rqhu%KyTTL)+H(%;&I_=VEYus#J1!PtO#fi$qFXBT5`gOEU6{7h*rdD+Fui3O>8`9k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+4q-^$7l6#DP!;uzv_{Oy#pS%(}%TF?82 z_&Cmbuqa@KVaD#4zwKN2C$vf@b6;!CaA(=N?QG$~AMG>GXec$Mi@rPg^I6ezwF6sK z&Gg+v+nm&5x30B(=6*FhXVHmCF1w#LMgF=w*X-r`d6ApguIzcKz4!4vMg^WFj^?M& zvR;}0v{fpeyP{|>8&hlycgLxk=60F4j85@NIcaD1=rlCj7L+|&c8mFfRo>>#@&jub zQVP`?I&Gak`=9wYW0&q?NtMs8J@5DM#mu!_DD`W~@x!}bNtSNN`>vh)*#5Tpj$`~& zj~Q7rGt``uOA1s!ldzic>WT6IMutDD_L(v;T(Ow3xM}|u<9~+!v2otE9?sX-{+rSX z3<{AF*N76w(vpn)A_m{YqLR!!g`m>n?EJFrr_am;%BzCpQxZ#3t&)pUffR$0fsv7} zfuXLEWr%@+m9d$Xp_w+2VPJ6l{iKU18glbfGSez?YuL6)D;KCi5@bVgep*R+Vo@qX zd3m{BW?pu2a$-TMUVc&f>~}U&Kt;w7MWsc_sSFtQ44$rjF6*2UngE+_?y>*? literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/audiosource.64.disabled.png b/app/ui/style/olive-light/png/audiosource.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..176eaa9424493dde3b7b1802ecdcf516346b9e96 GIT binary patch literal 881 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@ciIhssoGB7Yc@N{tu$+-7+Mx_5?1D@mm z&$&r5T`ROJ*eac)-|_yxqeT0WjfM^$4PG}Bde$DXDd=46oI5GB}od2(O6eb-w zRWELoeoMO}RIlm6vumFDPZ;j;tX2O0OW>oQOq0RmeS37W-oIZ|Ne!VOgUZE^4wZtQy8wz%@YmIn!kWygPCUbn-x3589qD@ zOyixZBFiu}yu$PDPkn}Y$~HUxJl306bJ&yTfn`!R@0C;Qg?4uxl5YK-$S!2wC@Rb_ z$2;km3yYhI*a4;p2JQq#od(tp)&`>azhd!ZMTP>i8MhBlm1=nO^)b^!-^_+f?{#N= zxZ}VQx1>_@yMf2*wM)geScM#qZDVj)Jl}sN@2zzU82Qh$HCujAJnMaHd5fsa=gI{a zm&ukGvoQ2k|BdC^*LUprQ3vTohZ7B$wd$BS4nKH)v+b8c;_Ie{QS4MJI+zo2N?Y#C9V-Aj-@3T`9%!AiA5!uc?vbP0l+XkKL)TAZ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/beam.128.disabled.png b/app/ui/style/olive-light/png/beam.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..4875ead2951d9b4aed925caba72f10025b41af72 GIT binary patch literal 1728 zcma)7YgiIk8a{xRtYOtg)=Lu16kDSqNT!Jw&=JLTuvEO1mqbA&AAt~2OB}+8?{m{`k)Oz2E!3&-rtn?-U*k z4uEgA+YA7J2U7h)4Vbr4n~V%6+wBV307l6^G#>z3ingpVj13%}NDZX{aQrU@-**74 z8b*230A%0+n2iU3SP6hNuUZk}X%L_ZK>>aMG)i|649tv2J(LarvS6biMKAR%!_ZU^ zNTZm(f*`@pttArX4gidCfqp*pEX`caaHNK6)zf)Ck6i3KH0zEXbgg!;#|v?3EVi}1BT=~mf4P=hL~`Wr(Rqf)Dz$M!MO!ZU)DAl1z4&7EUdn4Wmf0yVSS<`6hsG2AcDn{F_Jhz zHu2otY$WER`>hL=DrHgrpp*cxeOwItleTH~y4+cdsan#V)69xi}%p;u=+bc zzOFvL`}FAHOS2#H3nXsHwnCH5dnQ*VRkuTp>TeceD$2mY*0H01z;&Vn*SAG{Zl?IB z7tDR0klkeeCL;Kq(<)88@Gc|#4rxVKB?^~k$~}w10VWtD2@4cg%#2Ilt)p&MPvN3! z$9I~ew&X2f(CSHUn zs#|DV5s=ToJ4!}!I&<&xPlnBewr>wFIeU^Ev3P93iEaWGx?a7^AiMYKtsn9IEMteW zJGxUp+0R2CjmWQwYpnZtg$iWho5=-;Ys)WDiQ{srs2&)9*P-m%ZX##(MD*=WL8a0ba9uXe6n<|IJ!=%$W1f z{IB+`x&G2TmeM*BF`jdO9$M!+Ts!r0(*=>LddTpK_UnghvV0;3hAzWFe9iq25V7c& zDb%Q&r@dr3vVyU?s1yRQ^!s1^aD_GfP>cNbt#;mUpbxUANKgYnjBaMy?`$bM1YR@V zl?E8cw=lu9klgke(Ee$<0#ZK-(Gq~bqdwXsk7Fw614DCp99y734q;*BHkg9-Kg^E5 z#U_MZ>`ltx4a)E|Q0iY!%P2!4TxnN4q1YhKBIJ2|TlwkhS8O^Cmrbs%TP)w9?n453 z>FLqYet@3oBmp$ys_i)wio>>)FbEpc__j7HgmD-Qy>_`4{Fr&03Vx=Pi*|A76E2sw z;=gcieA~P-CBtI@)4zOR8^U!omzcEc&CF&c8 zV?fA`+}m~JiL5_>Yp+Z8wz=6P;_Yv&VJb!1zFpi8R`Og810zyHfx`f={ny>6Xywsu zKWUF@o%TH+%sNII=R9rH2Mzz8elcd^{@WWl&it$S%F;*1i1&GO2_yB0!RNDMj~PPq zNNyBezDT!pDu2B{ZoPMwl8?7|@x4dfkqG+46kP4!+%n=Uzt|hqS$9t+2cf5kxpdpB zrL8jg!M73-^|9%o)ZvBKUH*lxuIXp@NctvN=?z3JBD@ER#yITx;gdHKsD{Bj)t|n* z&ykk6AFdyt(SGp;Nz!z$Jve$JDLPK!mHDIK1lk8h40vL$Rich-?PP?%E56GKR(LJl z>RElSTzuI8olk8l_>%MjjT^Vwq6%6cqix?xAwMPRauyPHdE*uoOAYGJVbGPO!2thg zIwlrrb|9v@zw(6eA`>fo7!H=D%4-Zn*+bov)5SeDcQ4EQ6Smm>f;) z^7I()6TPyk$FSP;(?>d;&vXn!e!XYdrd9$8V^{TVH>b zLC0+9Ooo6(Oysi+00?*j0gHFW65Q!{JaMlp(Rsh4p~2(N4$YkTk3bri$xh1t?}1m+ z5W^P$Y&UKQ<0c6*8GIJV%*=FRb5he289bH~m!EuI=V@m!?fthYgP+I(DFOkHh{Gjv w)6%${bf-*qDm#tEWHUDGxDAG*GdRiIBkV*jC$4UHu^|ouDZzftzVYIJ0prK$f&c&j literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/beam.16.disabled.png b/app/ui/style/olive-light/png/beam.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..ee6df7a4c13a06b029f5ed6bc6d11b6c4adebf17 GIT binary patch literal 578 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0v6EaloaenQD(_Bpn0-sr?tr{Hee^!1bTb93|aiuKAfvomv3Q!*1l%Jo4!{gA}G^!)hDk4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+62(PTQ4fq^l=)5S5w| zZ$4Y&5kBccvxXB#?f>;bPBRv{xwh(RPtUs-wlCi~o-f?40x2`uQE}vIpIh zRs?&mW;0`8oOj1}-S6NV#&0*>QtRbB&~0)%ZpP%UhjSvWW~79cEsn8d{_GJsQ6gGK zue5=2_Y&vun{Lb@I&L;>w*;N8uFVXTJ@@g^Wz##?ejK*$SUt(KPf*~f=kGxA)EA6* z)e9L5zP{9EJWzaO9dm%zme-{d9R4%hZCAM}t2042l%en{v%$MNYHT6iSEkEspQc!s z!LmyACd(%+exnqQo?9o~D~`)-;EyT!^=roc`eXa~1UTPT$)+fM``i%K$HdSYmFGJB zbpPwHfF(w^T_1R#-{Joux_`~Koi$?9&mYR_?tgIP@>AEjezS$v=X48~o{iY&Ul^vJ zpb|d$^Sv8$Q}TisHP38MdgNLE;B##it8`S7aHP@JyTITUDRGS`aV#y#$S-2>O)M(O z%u@&|EzZs_+kW~CFzgvrLGmeyC8<`)MX5lF!N|bKNY}tn*T^!&z`)Ab%*xPQ8^|y) zNSrY<6-7gCeoAIqC2kD@M-^`ZHAsSN2+mI{DNig)WhgH%*UQYyE>2D?NY%?PN}v7C zMhd9N7^0}OC^?lOqokz3N?$)YKQ}i&uUM}NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@ciIhsso0yPDDx;Tbp+L| zKMfpL^xZxosH?SQWz~s|?f?EK^V@!NXkiK!kY@^FpLFG**=^_0R?{_a=T7=^q1ON2 z+>37>-`%=(GxMMKN?TtF>qb?yehQoJ;A4NZYu)efyZ^mauDBv#I%UZU!LxfFh96{j zvBf1gGp2L(`_;#v?LM}wwXJAE;D4{w%~u)TMYe6tn!Dra_0uyM&aM3wT@rA1M!LGh zY9CbtRfhlXUL>0fmdiij%A2u9(n4>g`q%R|D!dO5o|SG{c5o8ohdNQAIXe6dp%#{l z-A%r>of189t7Ugp@=d;-7E|}}WE%LmOlUdm`*B7T!~UyVv}O0)Nsc%&-O710Bg2B) zZOt1bzF17ukvp)f-{V!sBkwpBwF4R(mjxYnssHq!i@~GL<7|U;JFkFk&h~5kcPw%m z0vF}kavxZj!obtOXu!aBfFVQX!y)$P1VOF#9@s!;hJ`GXsCw@Bay!6mDN#pbC;tNi0dVN-jzTQVd20Mn<{@hPphUQ1y=g{$@#gt`FX{9<(b);xv43ci6G_rAfA3m cVqSWFd}eZfUfg_*2|(=(p00i_>zopr0O8+}KL7v# literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/box.128.disabled.png b/app/ui/style/olive-light/png/box.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..99e72a822b8554d253a6c3833689583e6bbdbca6 GIT binary patch literal 1240 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;3@SnsyHk`I7?|BXT^vIyZoQrB*ni7Fq-DOQ zXw;2GUQGT(v(wzFimPUvV^QJ{a<`TEAW&u{#Gl(tVf?!2EH z%bb*!PN3lo1|d^&6HKpi&syCn7pZpd>(q0rZe4x*Z=%2c)OG&r4I9qB*c8&5H+8;V zdi&eEf5YE?4SIR&tDWh|YuUf9-Fp4_y}ti?_jc}Oaayt6an1~z-}~&IeEUbqCjQMp zg=ViL)6ZqC;#wCRx@Ot7jRJc^cKKGhF;pG24F7*laqosc))z}J{T=eV^P_N*A*`JZ}*6yt{)@BWP;r z8ZLXzpqFm^4%5F){k`s5>irUB_66rQH)q$B1vutk57`yS9N_Zw%hB44oA&z0uXwUI zG5F=Io@V~P>(-Yn%ewz)Q)%_`zpIpvJuRrYo5A>|zU}YgSl{0pX4>3+F2CpJ#(iv? zSs6W~CmiE&u(Yq7`dn?QP0asie;J-jSzqI_kp;3fAH>DDL^Z0nyu5G2s&!p;MQ!dq z@g4tqXD?cQ`}+AW8G#z#-Cr_)Ir#Pd2i=6|NM-j=h>MA{uD< z`)PH+MgEF^d;5=dRP?X<<@D|!BPeQs2~6_O(SXzQ5_aE`3s!Hx4zziv?ZLdY`}-SS&c7}E=Gw2{95X;d|LlEI zf4%?DsLBTN4gn(e;dlK7+CA$Gb{%@bwHV0wP$1XO3~^E0$p`vv7ew=B^?{_%!j*Z; z&lfLgtyEyhWWKba-v7hf@4t#}#w%1YR(8dMT{ukO7+e<8&?zKJI|AHG( zN69PBDA(vO?3Pt4ORT@J{Qv&;8^|vPG5;9kp4#pbUMyG!~mSp4?G597H zm1O2A1eF$N=a+3ieP$+5UKJ#tl30>zm0Xkxq!^40jEr;*40VkxLktY8jLobJEwq6Q z1B2-oUiP49$jwj5OsmAL;aP7WuxMbA1lbUrpH@mmtT}V z`<;yxP?0f2QE5?fDnmv|Nr9EVesX?pZhl^|UU_DAW^QUqW+F(rK8U9ul9-pCAD@|= VpBFb@V**e+gQu&X%Q~loCIFx^76AYN literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/box.16.disabled.png b/app/ui/style/olive-light/png/box.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..dd068b5610e81be63b536ad187f190735f493789 GIT binary patch literal 520 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0v6n%JG93=}H&ba4#PINv+bkgq|3$5p;% zYKwBo!A9Bl^;~SR7EPS&7Z@KaiCXWQe}B(114-sdALitIozTJ_r7IL+uq8_8!PP2% z6>qtvbFCA?e@WG^_nK7l&Q8U)VeZ>?)FK#IZ0z{p6~z);u7GQ_~Z%Gk`x&_Wx?Fff>Y;bjkshTQy=%(P0}8lLqA0)vu4 z5@bVgep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt;w7MWsc_sSFtQ44$rjF6*2UngDl3qW}N^ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/box.32.disabled.png b/app/ui/style/olive-light/png/box.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..bc5afb8765a7f6139fde8b6b2d1d9f1734d3837f GIT binary patch literal 591 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+4Ou{%W>D74Sh#WBR=_}i(5LQMt&uJJ}r z?>T#xKlrzFxxpNTy&@4RDdI;w4>%qBD1PSC^YqO}XY15Nvppy>3zuSO`*^Rtb^AND z^Gp)c7xxyf++6WG?~@M0+jTFaGZm!VRdP`(kYX@0Ff!6LFw`}&3^6dUGB&d^w9p1J z3=F1Uc-e!ZAvZrIGp!Q0hG)Hjz!+hW1lbUrpH@mmtT}V z`<;yxP?0f2QE5?fDnmv|Nr9EVesX?pZhl^|UU_DAW^QUqW+F(rK8U9ul9-pCAD@|= VpBFb@V**e+gQu&X%Q~loCICL#&n^G} literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/box.64.disabled.png b/app/ui/style/olive-light/png/box.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..61531ba72bfb55853e6f11956175976a0af9f9da GIT binary patch literal 780 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/clock.16.disabled.png b/app/ui/style/olive-light/png/clock.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..50927ec5ad0e2e47e13687cd856d8c9d203a2deb GIT binary patch literal 696 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0v6n%JG9%)r2??&;zfqH#WU;^{1=M4s0D ze~MQx?%VdjOVcPpxAgw^dd}{qtC_DCX*kV2c>2VT<=m3_>64$Rw71AS?76XZBIlZ- zg3F$Pn~Jz{&%e)Dy(S=1u6|$lXNQ=J;a>xT?nf~E( zW}1hGaAsZ$TWR{B{EGVOzO?EE?);N#OI2pF#j*Rm$>N^+@&Z$W0fTe)@uLB=K|>o2kvlg_SRwwi#_XjXp)cJx;Ezt&4s~JR{Sog zKU~~u^=kduB@>o*9ciAO%KZ37X7cuxI7L{b?DFl@kXXlq~KYeBIa3ATa6~BtbR==ckpFCl;kLl$V$5W#(lU zCnpx9>g5-u&wghk1yp1VQB+!#oXU_ont`Fkr eha~2u=f`Iz=jX-E*O&m*&fw|l=d#Wzp$Py8yac}h literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/clock.32.disabled.png b/app/ui/style/olive-light/png/clock.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..219c2322df519407e5d1a812ff30f5a9b2c51ddd GIT binary patch literal 1028 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+6stS4kEP*bs|i(`n#@ugE^gKq^0w9U8W z6l9-c_MpdOb;F`>@?ZY{=g`lZ%70ra=8A#VBF>ZFl+#NNr<%=7xO}zH@zDwJ^ z2kv`b{W`??I_mHeb=fcVYZ*+mp84cX`*`*3k*wOx#|}%_X82UPiN>eecqpFi>f-mCp7H$(-X4W zxLyQYYMS|E&(mC^{Hm&Hw>)0-95{DmV;$epSwcQrKS{XcS3Zw63wTj7?>U3PykBj5 zMV!9ZrvLw0ms_*_u7CU%)A`-?Rm!tZEHXPAyo!67ioy)v#{x3v?;Z`W&un_m8`_W- z+gCL0d>04LuKnWHSxY}XK7KyaE9{ zK5BY4%3cWXESbczedp<~hd=T2&3~13^mh>>Fhz=#xJHyXmX>7X7cuxI7L{b?DFl@k zXXlq~KYeBR3g5-u&wghk1yp1V zQB+!#oXU_ont`Fkrha~2u=f`Iz=jX-E*O&m* O&fw|l=d#Wzp$PzXaio?2 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/clock.64.disabled.png b/app/ui/style/olive-light/png/clock.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..12e1309c185114a058972ec372e5157fd02f6a28 GIT binary patch literal 1734 zcmZ`)X;czu8+`${7Kh3F#w|57M{_}hNI@%bUs5Ue6%jEJ1wxcEGb|_VLq4skT#&SJ zLdGqbGP6cUEt4=c7s_ptW-7EXH7%z+W`k#b&5!TLv)t$2d)`0yocBC2$VYdx@n!&k zuAi^x5%t7xl#YhFgM_v)b=Npb2qXX?E#9(5)>Px26yGC(0Azm)052baRrQHC13)Gc zfHw&M;K~3nU{&5d?4~B5i2**I0MrRAQEIe_?bi@f zuzUOKqRyde>2pw2s10xwDr5vDGxZ}SRG%-m~NVHYSLO?aG%VQ*tK__kh8ULds9H#SaZq% zx+41f7!?V|YI3ZXBrGTn6j{F?X}=NP4Jy2{i}iZb0*kiIPyUe)_WIWioP1Z#4hycF z4BB0&1I&j9Hkqd}r@{_$CPY00pvczbNtQDlG`IaW`xYo;$930V2p*Dt6#m+w6J=`g zhwIZB%eqbF+A9s+L)E=fqmPo9Dy)H6u)~bfjlNpj5MpxYseK&PhQI4Sk>9Ok$FChT zXm){toZ)W{Y74CsWbjX9Ly<~uTkmlRRisgP?H{PY5o1rI7qq1-t=BMf230BWJtT#z9cD*|9AD$FB2a=`5vN{aP;WG> zfTc=|E^YCNeyYQ!+)X`r4wdlZJELxa&K)P$TsR|XX3G+hC>tiwkkQ$H*1F9_@P2?3 zep+=IGc0-*>k+i6%c=k1*}`yZ6aCszKceudY54)`k-3oKs~@IEE>35D6pwgSv-Ygf zVeX|2s!^CgH+~;T!H~YhFU~~tlRho|yg1`PX6*;~o3g}rLpej<(4{o@yD2Xox4eQ@ z|MhbXWu0aTnVpbdqUP9xoKcJ93#+2TdaohXm~K3(Ed|H8j#o(mhjCl?u7&Y)Tw$q177?h<57~Tzz@dKdb$6cO&kkS zvK4D>5aa#VP$JH4Tgegv3>>dd8p-$clwHzno)|m@k|*iRb!drc4ywtsU!&2e6f*2J zX{t^xJ@%TT;1H|PiYJ|iE{gI3<`5RvmiS$j7X6x?Q2d9$7}nUM$gk0zbl~c@OZ9*c z*P*r>wptjc$Dl7rue2xQfl_~0PaC1R)?Or3n%T#So`Fd3d*dlUge4KD`%K42Rs3eE zgs+gY<@(^s)XC4{2DbxeEtD~wdfkBs&Efa@<=Q#h`u6>o!Y?XOAwaI)OZ`DE$<$&v zboaUIVg#T=gQo`Nw${45m7bo<2HOof8)02}xI@MuKoDG?GqI(vLxM1A^A*MTTKaU9 zEmvJ@${pUn6a*#mYh0R$aZ_)P4=sa_sf0OFEY`ux?tj+aMrxT=lr*d8f8 zd*yfUKPOVLWgT5>+p6TK?6fZ}>q}{0O|&e;YB&o-QOMNw@q)&9%^W~UsX1MQ^?a6Pw}OtAyv@gTTOeyh0JS;hka)T z>3RC*mzJ-O+jw7XxG?EVgv&1Ec`NMNCSZD(Nw-u_JgtgH&!UkY;+mgEJ2HH)D?P2m zH>d9no%aWl+1Y0yE!&F}k1Ocm3a#vl##+>l%XK0If+9|ZC?f;D*tt>0&wX5Q=O)y=_w;QTMKWI_U_t;$y=$g=!FGq$bA|8kzlwfi8^>Cb z5wBzpN5W*uLi?-a`9q2ahuqqhNu|F+%xosz%30dy)XCK6ctvsunVb|R8w8Ts92#Ti zk<1J_Gpn`lak-ke+TfGO94d~&rm6=(AyFs?q>}>*8;V5Y(ED&sSUdHCL^{>}?(#1~ zIx~rueB%Eb@T<}4PXQQhyb!`n=5WbuD&TUt2pWT)K_RoK2qyceaNf;WEkgez%4Ach zAcezW;T#<)%=C07BLl&u(P`<_BpP``?zn**L&=PzOcIU4WW-n5l&I~%&nw8Y$vxrB E-)%Ybwg3PC literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/copy.128.disabled.png b/app/ui/style/olive-light/png/copy.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..9fdd910a63165a68f2e7a4b1a8338c5105f05f56 GIT binary patch literal 1010 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;3@RcOFAjTM%tWr(=uEkml1TBp&dy02 zb7pfYdL3JOCnES~qD4XJiWeL2NtOxj*}YbMzt~IAX725K=VxbD)J@1q|9aTxnEB>_-w#ipKgra>T(!pHb_!#R+4}#{w@a!I zwC(#`pE7%DnY;#ruES!6EevNDytgl?J;+y4^Y8zC@%`*D@m{72OeS0o+!sIspP%h^ z2tM03ts?gS;`5JUBetKruXx~OpL}Gl*e_#0pA|XgZ+T48n0I`Ox$MNu5?{ek9$mul{I%yn#yRVc zo&J1w|5^8k{=NI2mHf^ZR`@n6mGvLDMgtQT1PwzJH*VguBCCD1aXy3pTxOmA8P7X* zzn4jnC}Q!>*kachWvE3pNrK@wy`aDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$ zQb0w<5Jja$$*Bw(B_#z``ufTFxw-jy#d_tL*_pYiDVd2N<@z9=en?_odVYLna(-Ui Se2ob}?F^o-elF{r5}E*FG=ZG} literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/copy.16.disabled.png b/app/ui/style/olive-light/png/copy.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..52827f55b02a666117848e2e6f9336486be8b883 GIT binary patch literal 543 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 QfZ7>6UHx3vIVCg!0Fhuywg3PC literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/dirup.128.disabled.png b/app/ui/style/olive-light/png/dirup.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..71e95866a78d5f6307992aca53648aa3f8a256be GIT binary patch literal 1361 zcmZ`&YgE!_7=QT-3Z%;^l{%YbUTP^IStyZ$VM!M_IJ6mN*n$FA%+c}!4sdYvv(AeMhshzVA&-;6Sm*+g6eg~2^#<}5r z@BjcePCPpqL3nPkXyg^qeqszy0&? zXJ_f!SBqjqI&KgI-RaWMy)0#7W%ScX%3BRST*fVa2U8>$4e zmO!ilRo(q&lNo0;v`HZ{DDQrgU`Fv?TBC5aP9f<-ei{KhJZ|%s;d$vp^EK;$%^HQR zMNL0eZ!%+HeOmz(3=Eb5j|gDaPaT058@a`5bUTO6P6|2zm^4jEzSl@717HW?+Qpp+;-YAb|}4$Gq9BUo@FBJUuHHtPudt=0V|_rzsLMJ`q7DA{{oT@OMet+=bW z*@>B|iwtkQ>!{%kerdYE3UFq^WtR5qx1P7Paud?=Jdzcv`& zTM$cgM7g{Ff8lM7Cz1!=a~D#ixk@!(E(B_|nk14GCP&Eb$P-#z`%~TGu0a6H2WERz^&4 zza0J6n;|~x?w3zoc5!lIL8@MUQTpt6Hc~)E#t=oNMaiiQ86_nJR{HwM`MJ6IdBu9=nc11S nsVSL>Am#cXo_k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+64|NdhGQ0R}Ri(`n#@wZcayAK%%wB4V{ zAtoBx5*Mr8G4b#J|4R=&3R>TEB5R@CnTid^md@(e)v112t>Jn2bBfUx#$A8vIT$v% znEdk3p8E67G(|?{2A{YG4vW5&NT{xu?>|v){ieX41G1{O*1urgz2r&qw^x5>ep;^; zbC6a1xL3T|LFEY#w?6S>WoJpzxG&Q^+5MsLodSjr+7>PCA~MJRa`hdo>YFmf$x0+~W{NbK*j_>gMPrRSyE7qPc zYj(C=7E;5Ms3Tk6G0BzFBsxI;-~!(s(F<}{^D|df+|RnLS3f~pacUluQ_??oU^s}B zxJHyXmX>7X7cuxI7L{b?DFl@kXXlq~KYeBN!1VW4^jNstY}`DrEPiAAXl<>lpi znR(g8$%zH2dih1^v)|cB0TmfT6qObwr!r)eloVL$>nG>u=H}-W>y>9_XXd7+WF~@? h>w|duA&GhE`SF>_`FU~kH70;8@pScbS?83{1OVXC>r(&# literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/dirup.64.disabled.png b/app/ui/style/olive-light/png/dirup.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..a9c4c9152ec4eed130b6c4929a68c446167a651c GIT binary patch literal 884 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 N(Vg5J>l~P={{@AU!M6Ya literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/error.16.disabled.png b/app/ui/style/olive-light/png/error.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..13292c7566f5747d903f080fe94e5e750d3bf65b GIT binary patch literal 764 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>|Or3{GO-fZ1{7&P6*rUTH|>?)FK#IZ0z{p6~z);u7GQ_~Z%Gk`x$WR-|FfiyjzIqRe zhTQy=%(P0}8vf1_2C8R}1lbUrpH@mmtT}V`<;yxP?0f2 zQE5?fDnmv|Nr9EVesX?pZhl^|UU_DAW^QUqW+F(rK8U9ul9-pCAD@|=pBFb@V*!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10;zoc^h%1mj#K3TZf#Eoq zJjuWSL_qE;28JUrHbn3g1H(}UhW%h!paP)aX$FS#Fz#WPVu%8uY5&0@KxIIUK=l{F zT%h{XE)7O>#8KW$NirBPg3#@>8tUO&DLo7~Do%}Ma*+8H*Si4JNYg31q zk8YE0hHLKCsOh_|?E9~LQl&+w<#FM^2~X-$b{aQds9&`C;@vIVw&iZ#_4rMaSoLpq z-<{lw;KZKTm9J7WZ9p~NE|ZZ(-+cHm9^Kkzo>fI z{c+Kx)~9}kmy??U_?orZVlH2mDP$@!X`EQ?%-GMwx{_nnAzfGfP_(=Kb6C#Gx+j>prKt zw0I+}z+SJGz%#FM7Dd^%Uz`zXTg7%DeDc-_la5~cJL&w=5`6{n!1YWy=VJ^m?^+Uf z-={%UJa@Ck=JKs?zHZ`~7L_cpw$N_Y-mfpuR7~2xFM3w_*W|U=Pj7pc+ZoT9q1W(MwB>~mSp4?G597Hm1O2A1eF$N=a+3ieP$+5UKJ#tl30>zm0Xkxq!^40 zjEr;*40VkxLktY8jLoc!jI@Ca1B1Q#8x>JBMFc$cEtjw370~ zqEv?R@^Zb*yzJuS#DY}4{G#;P?`))iii{zON{fVt z#~Bz-BB2vtHc;>k1H(};8z=%qr@$gW5~2X21;{=PQv(z^hQtPPfwDkzfT#h?26EvD zXwH6^;)`IzfqJ*W1c7EAfms9;2O@}35bY3?fzG=MHXJAj6aktB6ag}TCc{aH6htpX z94G}uK#!kgU|0pS0w@Bs0_a(YN(dLC5?L2e_7Vfbd9X5|I3(PFB-|D_0~odrtbe0` zR7pvYUoZm$tB9UFe`_QxtAti@2DnlA*DZk`%9o7(XKyqdG4aC$E5jJ~xkq zxSWEd5ethZyNs?hyRfXPiEz;OYM>h#7?Zr+T^Kr8Wj%l#&H|6fVg?4j!ywFfJby(B zP>{XE)7O>#8KW$NirBPg3#=FznC5%BIEF+VzB~P8^koNuW81kjA5YB6g z)nymNUPW#VU2$~w*H8Ul$U&l{Oi>_sx2I(^ER-=FT;e^X4;6os(&6XPn&}RrYX3+k8LgOW&uZaO=ecV%ewq@Om^U?6`#pNT$|-K6 zXiLG{nmZ4ePWxW{du)&DW6K{8QM^ zO=i7z;dOCyv{QPv>`BK5)~5G9nVFwhcz7vaP=ddu*thA*!uMXeHiXGPPrSMOV@=LU zWj-&t2HAqt%*z~e^Ry~8F8es%+U6vG#b(WgDN_#0q{yjd<}p;Ux3p{diaEY+_*l@M zW_!VMflY-}^S+IafyZCB1-MQ+6n4R1XSpQ*h$+Gu^< z|M&eXmzQv4DE+f^-*3N^`Tv~%pB#3cfBw8tVB3>tk0wrgsN1USYZD@`v|dMPhY29IehQWx4Sa;ub$~&o149X*}D16w`=})_g}ML z8~U|?lzW@Tig4P+P??A70>h@v4kKP5A*61RpkMVxbi8YDqB z1m~xflqVLYGL)B>>t*I;7bhncr0V4trO$q6BL!4s3{g~Cl$^?tQBqQ1rLUiypPQSX vSFBf_nVp%Nnv$6aQmzl;>4zldrRT?ICggTe~DWM4fxPvos literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/export.128.disabled.png b/app/ui/style/olive-light/png/export.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..0f86edf6318e7cc67f5dd8eae3b4f2fdf58a8421 GIT binary patch literal 1595 zcmZ{kX;70_6o$`7*a-@PCCFM?M1c^37)?#AP|uh6{VI6B8Y&38{mS5#X#(r>5ool+8^hhbME^-bMD+bbF+g3z4djM z=>mYhua9RannkM6R!3Jh=@JD^>haV7DnMPn-aJDC?X8(Up#cDC_Nea=z!!8&^cojfP50bgkLNP@jwN&SbuL%fa;?*M6}c4`$VJwSR7FWl0Wv5g>GsId;`3+ULqD? zYceuYa2Xv~?dwSm+uJ``(iyasYW&;pHz++hQ?=a*wso1=%T74W&kRZkHK*z2+V(UD zFI{n`%~+nE+n=%GhWM`Xs!vz6AKWkg^g_|EIJpCk9XnPPkx>7^URiTv#Rq_{+J!Rt zvw)={x!+v>*a24Y&ghoN?O{Y_UBdblUW~H;>MAbd(x5A!x)Xu$uWT!bu?%p-VXemIm+!_qD5g@*^h|fYc$H{i@_nTh zrbqVfmki1|bBq_%KL}>T{Kq#t+BNz3LEx~X@?RK zhhmK(H!;Jd1eb-u4Jo6@t_IPf*smhWx0-EmaeC%hzSsdI3(ccUYx2I_1&rDVPFpRj zzO^U`+YapmL;h_8g}A{=Mf%4M(NawOb*)91ndHJS z!#CpWba#3kcONC?l}SnLJi}INc(i^o1easWnzcqNLfVomNUS9g|M}44!A+stu4@-Z zkkZS$(z#< z#YBqgYfA1V#d$s0<|?#_xz)XNZ$aa-_Cf=^toNyqd^76C{_*g0#OFFoHffxYboO+O zlw3IP{}ZY9yN&PD+*@8sIW|qo9$NX`v9WReYq;Hy%)fWo^&&_vlw=Clo!)Hjt_3xI z&IdOT!&RkEOK*^ssbk*h^hGDD7kiRsEe%{vNAk?KnqeK?K#Fk$b4PECbU7~qxw8W| zDfR(+TtE}^7VVTf)35-E(OL0pAt|Xvt9yKa^-OB9mO5p{c+Js&Gd@+f>v*kRQ)BCf ziI(=T1G9FZLs2V$iTIa-bWZ*nk}wrD5Kk5zR2gF zXGl9!kt^K)w)!!LS9ttMpp~9nGPzEgbRqw6+Mp(wD>zCM`TIoOGnF%u^_Uz&d}J|A z5pnH_1pt4q{N~_fn^RZ+f?L!`um4(E^xU4S3l$X=?8jD}KART5edREX9?MwZMHf(0 z1qr-l2w)@&*j($-)RaWtp2p7mr%>HarN=P@EHX2hg(e^ph(u?Ct21$37=b``TSF$g zIidxDU`Chx{4apRi(~KH_y52y4YidhV5*w1mA6wMWF)gdC=}w^+{6?ngU`bAlH@F`0h>*vy{> literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/export.16.disabled.png b/app/ui/style/olive-light/png/export.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..62c2cf95ab460417403904d9717755dd9e60ef27 GIT binary patch literal 593 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0v6oAzvh6;SAar;B5V#`)6zgItFU1YGVf z>$c=j(s;BmYxSb}5B|#^jTaDM;a~J%X}|_Gxh-m2EvEa#O`FMUGUfZHxXCkqOo|Fy zBmV7u!!x^&$Id2CW0~D6!JP2Bzxtw=$6B9k{mlW%kAB=bZhF$cW^Mjib;n(QR;URb z&iQQDfBQwccQh}<^67iID>7FJvVB>0UQzSGD(h5<6;?h5A4I+iDY5>~w4L@w;daHv zV`=Fxo3xXzNLb9t@I3na{kPoC>rZ|eJUhSHdA)vruhA~HiJ3Y;zlfB$MwB>~mSp4? zG597Hm1O2A1eF$N=a+3ieP$+5UKJ#tl30>zm0Xkxq!^40jEr;*40VkxLktY8jLoc! zjI@Ca1B1Q#8x>JBMFc$cEtjw370~qEv?R@^Zb*yzJuS#DY}4 z{G#;P?`))iii{zON{fk4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+4Q?b!k=1_nk)PZ!4!kK=1YHu@cQ;HkB1 zs!GXHo#qq}6~$72;MDug8x;;VFeRO62vAbI=;CDPykpXm^yP|sUh4dwcfYuX(XDAq zO3qo;0NZ^cMZFhKWS*V2cIS@3TQVnB9_8#~WN5FPTF(=yU(MBHe(LLMj=D`hpdY{S;zos2;<;OP9TgM& zC2%xMWx>jSJ6SA$pn;qBWJ7MdOCA*H6TG#FSdOh=erGAeZN5fOeXK&U_`7%M{ z|NNy-wSDUD7+-pFmEljd?2LqEW^;DFW)MD~&3)E!+KG@Ro>XNeg@W|VQ@JXv?_N#* z?e$3@vQtWcQ)BXCH6~3#yV_?3(eW+sn>pWU?|ExH^?$??sk?XYi?f|-sXo}isIk;O zP$1ZU|?lzW@Tig4P+P??A70>h@v4kKP5A*61Rpk zMVxbi8YDqB1m~xflqVLYGL)B>>t*I;7bhncr0V4trO$q6BL!4s3{g~Cl$^?tQBqQ1 zrLUiypPQSXSFBf_nVp%Nnv$6aQmzl;>4zldrRT?ICggTe~DWM4f DWd07J literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/export.64.disabled.png b/app/ui/style/olive-light/png/export.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..2842a41239240fb3b0436b74a7dfa74d14a0f225 GIT binary patch literal 925 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@e&A3mJ02B?Y0)5S3)PJjFSk`{CNC3X`k$5+Y}**L>zo3ZgB!%{6<0QD9_X8& zaQ%Rgz)^pL>;#SzkJNXV8n7JsD7;2$4%4b1oNl~)jIn=Mmb0}tSk)bhYz{r3U3Vz3 z+4X>a-J#HC*9U)(7}qVDB(s|3f_>d12UUiDKaDqV%t#FEelXc9VR=5A+PBy{M?UPh zzg=cJpUv)V^6&4Rc(yX$uRBS3gP;cUh3j%B-rd;v@z=k@Gh^5oI%eHCas99x%Z1C_ zJJgqpMtsY9ZD@Y(BqIZZ*8cZDCa!z6kK^wquXU3+>+AIE zKX5H*zA$@l$Mg59+V|Q2&1>*n(=Pl>VlTtKsIPH#F$tIA|HRLdIJ$dTgo2F!y9bu; zN``{>%IueZ7O76KXsiAi*{T{~BHcKZJ4Mgwdh!2TsvoRb{@iCUU9x%^r^q)sog@p< z0{iVEecv}<`}Kjft$xnuJ=M3S0F#PHiEBiOV`)i7ei4IjVo^zEol^59RF+#5h|nnScF)9?c3ZncG7tKY!t#!57x|Der(NVcUq6{N~H56bx&xz z4OhrnU2-~_2MP-Pd#f+}-osAMf|;^LoEtujlj6`&}4uAlTT@ z$`Alx92yc3g&@3M2D(URlNu-p=(7C6{Q&r()aWA}gK#@WNK`lgIZlW#4}eu<1kVB> zfB=|J27p`vz*cTmTci&nppR060|2;D>_9}=25v}v767<{^+J{Yu3{oXeST(BJ^h0=?F!b}JS9oZTsZ0Qv!3IY!T|fSkbl7YPXSu(3F=}H zxyQ}r9k-A%dj85%OM5kUC0Dm+b8MtSJwR1R_DqIJd+%Gw<{OW*J5dF7bEU2W&Cc&n zfpfG`wK#Y%Z1h{3Rzk)jY5%g=%U|2YaG7U6A1G-Gmp)u3jgC>H^KGuZbF8{4NU*qU zFIhSmeEh_B4vjfGe3Twxrm%9kduxT|hq#taD{rozs?|wWYq`u>^uo}K_)YxVaz9i` zN5Nbb%O}=a<(ajvChuJK-u{4_T0OE*xeZ8`iiKB7+N?jsn;~K!7RcrmCFN`Psa_>J zI&9raPstyMyhv<8s=6-;1;E~^lh*o|w8kE}{wP>pPfPm{K7I|_m3tHg=O>bL%=Xpn zsyN4?0HB@}d;aN2>YA`@CO2!Y#{!s_tsjJu*N9i4t=0G+(Db_*Z`NHJ2EqD7n=Lcun<5A%JIL-?jG5EH# z0k+T9FTsGj@<&E)7@=k(>ap+BR~0n#RSgye;NF%PtM<|%GoZL*0T~}r7otJW;d?W) zB&iF9b_rI#mVaueRSiZ}R>qB`FN?Z`juf_buSW0Xuy0xgM%Wdj5Y#$@ahy7zjedzNv)m20M(Ow~5R$)F>2LBc- zBB2eBsBi}O?A}&4*^2p;9NrQwN<%-4Qn_!yAM9)dHpp2?*)_*QC z4KIofo;YMXJP6^C1!9pGOtc&CtX{kx9F&;ABc*qkrqp#|x98N)y;%DuPSk)aU(%sG zHE}tUFEbhP&270?{&oM-$?BRLZ@!qYnCyrs>t32@QZyt)5_-PBqQ@;XyHn#(p2Qmy z{rBGN%Ra7YFzq|M&h({RL$(oM`GIkKKLP(3hX=yxJU%s9S7_3C}o$GoE zozEmQcuWKU5h4=Zq22C8?`Q}jd+s3p7p;18JrY$>R10CxLM;lWRmrNiqI2jq7%q$Nf pJB^*eOkva4?Syqkh^A+M5ju> z{Iu?4`7gFRLShS6-qmAEJf!2C^JGmdKI;Vst0N@k7ivR!s literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/ff.32.disabled.png b/app/ui/style/olive-light/png/ff.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..534dfe2594b7d1e24962831d2ba4ef84e78f2f46 GIT binary patch literal 696 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+6u@Zp3t3=E9wo-U3d9>?EKIqP@GL8SHk z+-VsiUfP{6n_3RGs{LD2^WXggE6>*6kNqr*%|a$J9A+|{TbB2}Nw@s!6YIav&iDo= z*jw{6rpsP7bDdT^G0o5F7z0Dbr@6h;zcw7%`$0yI;lYZlul@EvyV`I>H0u9(_E$mQ z9jCS&*t;P=SEa*h@1MmXp^sKYon%=pE&C~YebLj7A0>t|cZ61N*iqz`@aVgC?FlWf zm_kLF%UkW9uHW?Zo6y_9jzyxo&d$l-pegMgBQRm&4iyRSJ&q3ED*Wq(zDLH*2sF#K z_|tFA%Ccv!&ApA^^^4mZ#MDmO1@GH+G@I#E=%h0T_s2b)*3eVwIsagIdBJ?KH0_xe zHFRZKrFV)ae%^TL$@70Nx7V#Y!YRR)Fu3`LO=*N76w z(vpn)A_m{YqLR!!g`m>n?EJFrr_am;%BzCpQxZ#3t&)pUffR$0fsv7}fuXLEWr%@+ zm9d$Xk+C+AVPGH~v1=-dhTQy=%(P0}8nRfKG=UlErERAdZMR9cjr%8*e~QedU8pPZkYo1a&#SDu-jnVXuDnFvy@58~;E dB<7{($7d$z=f%y}m;lty;OXk;vd$@?2>`Bn0~Y`Q literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/ff.64.disabled.png b/app/ui/style/olive-light/png/ff.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..7aef9ecec197d64b465c87189dc2858aed1e7df4 GIT binary patch literal 917 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@e&A3mJ02B?X})5S3)5k|Nn)5Fl($l>z+BmX?EL^B@-$vTwFaje5^PYr2kv)dR5x| zn{VDIHuM9*dD(V`1@g~htsck}m)BK=?(b+-fAE9V{&s{!eER*cQm-377RVQG+PbNJ z{pFdl|E87aKW=WXee-rrYlY0kC+%w*rt&{Zspa41lyRJ2&R3t+J@cvT?nnH0&fQlF zEM?Swf6BhlV|`!s`xU!7TFd|IGQO*;pL{1=o1-E;a;dBON#V6lrt&WCQ&nXiRs1ig znkZho<_}w`pVD`{+1rgXfOh48HuE9?l_P@T#Wj{HuH0 zf81i)@+8sB^Xl67pG;XZUbP*Le|4AphZNJ1Kc=?L|6Xuc?mXaY_amdS%&TG{LoCb7 zgq8RA&JpLh(6#xB#mA>LTOE>x*9&BnJ<8@bvHhqDG|Y+f<&o&00@pMCZ$9&f97m))#lc?DMDdHmY)F}g~(-ZUPwx3Aeb@lnH6bp{Wml9fkWX1?q9(tiIK2#S~g zWY*=AEZ@8;{0}gRh?KZSlsJ}_WaJky_$C&WWacRZl@@2`mu)|NW+qTx6(paMSdwa$ zT$Bo=7>o>zjC2hQb&V`T3=FJ{&8&=!wSf!+1L=reQ&BYJ=BH$)RpQo=#mb}!)F276 zAviy+q&%@Gm7%=6TrV>(yEr+qAXP8FD1G)j8!4b7V~C>CqU2PDjFOT9D}DXs{M_99 vykfob%CgDohd%V--gD1A=gjx=-BW@fe^VoS zBLFZB;QQ_+5ML@Pndq|3H@F0lV|jr*fSPm03nB`^>0UD1fx{_yUFkolh#x*(gb6;VbajR-^F_`ss+Zn6q0}d7^;~$%k zPk$9zxZkt>rPkxmD-kbM9>%>hTN7Oi?wr|ZpT9%X9Ji@Rf3_DJI9Z$ClOChJw>I<9 zca)1`&+=8n7u~1>83{+GUX2gZ?8;{DmRLV@GF=>=4DGk=e5jaG*I4uq-FDS3_hx4t z>U})&{R&@ZSr*N_F2>?YlDsIkcDG&jgAEamGFs99-wGm1*zk$r8>7C5v+LA z5lbnh4^%dq2rl4tTRpjU$SEBHezcg0Ghpi;)?1h8W#V+OHi$BT>h^_A7sqNJk*zp3 zH<$*(7r7rRn9529X(X~Wjx=-@DK+H!lbV*5YG9nyv{Ng{V-YFqXwV3qfy(X>bL5AzLZ01*u1ljak6_oin z2iw@;`r_02cMVjQ$2=qJS>8MF-1W`$UFEqkqv~BV$-n;KgRVb-zv)vuHm?&t_dGgS zyM|o-m&$nL{jufsnNtx4Q+hhCIbW;)5=~9R7j~MTUvyZw+=jVbj%d9fS<^a#LDxLG zo34JM+1}~yIC)s=R;0Pw)v)^W=eExulYWAUhsS%Q$W9q?PnMY9L5!!w;!rsRisYCq znZ8%4NI+BXK7Ub2=q^ioj0lr(#BvD%z-F=88(14RusuRpEROrv9QLMl#K2PLQ1cg|XB5_0Iv6r=8_Jqm(vq>oz zOCS!zQaDVe7)?q-lND}hvIJR@Bt|A$vNM+$Gendei$=-BXmVr;qkxD*fM1Yrhrz-L1P+nfHmzkGcoSayYs+V7sKKq@G6i|^dL{Vu` zawk4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+4r7}skH6guJQ;uzv_{O#r4d`$)t4iB3v zI;S%pjZLcgzr9d&hKEX4p}~d#b|ywm55qD6djuH-Be|dbJY~J=^S12@l_6m- zm}H;x{}GtL!@Q(WibY~x^?TM65)B7zzwc8>f1Fc&Tz7X7cuxI7L{b?DFl@kXXlq~KYeBlpinR(g8 z$%zH2dih1^v)|cB0TmfT6qObwr!r)eloVL$>nG>u=H}-W>y>9_XXd7+WF~@?>w|du eA&GhE`SF>_`FU~kH6{SHGkCiCxvXNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@c?3gdch85kHVJzX3_GVZ;-aW<>jLEym0 z$gcth$7Q%$qh2U~`MdCaKvhTPv#9MkS=&O0vg-<~hwHt(~m$?R)x3=VwvI9;dgyY`m( z;s4t6EtCIn9?(8G!JJ`_U{9s;0q%p7wlmz|ytYU5fY*x?~}U&Kt;w7MWsc_ zsSFtQ44$rj JF6*2UngB5r9ew}+ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/folder.128.disabled.png b/app/ui/style/olive-light/png/folder.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..12d71556be4db799cb9fc5aa5cf95c4b76a80ecc GIT binary patch literal 915 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;3@Vark$YDIH8FX*IEGZ*dVA+!mT;hq+sFTN zm+*d{g``otnNi)+N`Qxs6?iDf9*YEqci2v`6 zHD4a>s*LC@{L^94^|U+xe)*S;{{|M~X+cX=-Hq2c$PrMJs2f46lpec!P0iQ2s9<#&JmsaVALFD2t~ zQmoBu7bce{+qCPB8_r}9{FwEMvFm=3kA}m%Z|M&5%omt5*cPx~;BnwzAlV@2V9a3K zkj7BOaF*c z-rr+h8J*{~UVQzPJI^NX{$kYk;-a&h{W`tw`HY)C>EC&4ms4-Iq;l5x_&vW(melU@ zzkXVO`qev0TA(PKq|*6Cx}ZKf$<<>)4KRU-l(nC} zQ!>*kackhbYAy`aAPKS|I6tkVJh3R1p}f3YFEcN@I61K(RWH9NefB#WDWD=_h@#S> z=j-S5)%KEKUdx~6}fk~a=u(mqT}|@_WaEJ zcmDbFT%Y;D@`F7yGjkj(PqRCtvY)40hJ$UI$dQL zU|?lzW@Tie4P+P?-22}mjiMnpKP5A*61Rr+i)@wyHAsSN2+mI{DNig)WhgH%*UQYy zE>2D?NY%?PN}v7CMhd9N7^0}OC^?lOqokz3N?$)YKQ}i&uUM}& literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/folder.32.disabled.png b/app/ui/style/olive-light/png/folder.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..252a20772f0e959d053e445219e5a5b11c5fe66a GIT binary patch literal 534 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+637P)sdP^i_@#WBR=_}dA)xf%?3T=V4@ zESM~>P`3KV|NoB^IO-Z^2TVWaDpRxdmTCHl2?hL~3~G{$3~K7#Z;XoTW=xylz{C)0 zUZ@bhO>YrP^FyKC38b^E*ON*?mgJGr9EQn8}0i$N!Wk^3Ce zf9==&jWZtZTh=;F=h%)Jiy1L~yQl+nkVuJZM2TZ*Nk)DVgKuI{NoJlxP-$^? ze%bcZXJ!KBRYCG8i6yC4$wjF^iowXh$Vk_~P}j&Z#K6GH*v!hvR2#@JFsSJ0Uyq_8 zH$NpatrE8e&a39aKn;>08-nxGO3D+9QW?t2%k?tzvWt@w3sUv+i_&MmvylQSGKMHB zElN&h$S5f(u+rC0&d<%w&nwm|&&NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@c?*&_F@1`6Hwba4#HxcBzTMy^8!0&EXr zmMU~iY3N*eK@n(_8ZdIGPmx%N3oL zjrB4VuWZ+Ht}3yzOJ-opv(#~Y_ z>t*I;7bhncr0V4trO$q6BL!4s3{g~Cl$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6a jQmzl;>4zldrRT?ICggTe~DWM4fZ5GI8 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/hand.128.disabled.png b/app/ui/style/olive-light/png/hand.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..aa43d540c99428417a194b83efe80da6ceb70ebb GIT binary patch literal 2876 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 b^!)hDk4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+637P)sdP?NN$i(`n#@w-#+=G}4-a65ly z){Y}Aw>;JwLtg*yD@q zHUz$H_^#q`Zu;$_*p@Z^dpJ%@XzWm!70tXZ)9J!)x&0hJK1AKp;Arcq5npmt`yhkO z+}rZq5w)}GKGbOKbR1n;eD$ z1|Nn$DN7IRpEq}lf5VoL+T)o@2BBZ$`Cip&2(XMh1UBx&4mX)g#XnF2*q! zG8j92XVQ6H&;G*0X7SajH}=#P=gwjN-@Up%JZuK*-y+F^sMUKXi>x`HJRyF1&a~y* zWrS+3JY4F^Heu4VvTL*dKhqWE5$;YgdE1q_#N9;a=Gsn1#gJOvgI%i}I=6V5WZx)j zP|SE#J>|3ho8SNRL^GBza6h}%^2XXPGmnU9uUFaba69V0;myWSKCaX9lbNN2Zl{#J z%89J;TEU;U?c`>c46nAIzw4hU{xU=;bAj0eT?W00%9?ra?jAbD{xKk! zFV>e$zjqRMX6FyT{5R9y-qX;1a)WQ>?}N(1k9) zkxqW$r0w~6k=0x0UdwuZMB&)^EQy}w!7I;P-%`|aYlE8BhqagI-Yq%*W%b+-Z54Mj z6({^&Uw(M$-{M^*k0X@2Ra6ui zU&P>>SX7dkrw~+HoSk2`{q&icKzUV=d`e^^@~+bMy0x^~y7|Gjmf@G7~|{^+7!Ski@+7 a{P@h|{JgmN8WVup89ZJ6T-G@yGywpu4}P5h literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/hand.64.disabled.png b/app/ui/style/olive-light/png/hand.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..4a63e51d5c1567ccf49b51ff327dc445a82851df GIT binary patch literal 1552 zcmZ`(YdjNr82%fX+=`lOZpkgNHJ6x6Tdq6JH49UsZQ95-Gih~P4% z;e?S}qz;vSr4@!;!XcN6Gr#lUd^#WA=Y5~|d7j_8yLEDY9vyWMvh!*i_vPTsYh zuxGh53gu6LcvT@Ss*(;c%F^}moNYl5x+Q-~E9~`NR1H0~HqV%ylR!827^ExdGK%L5 zUBK+87U*tUud&4;x44|au7H8+&l5Gvki|?F&|+5TWt49W?+yv^;V#q}yA5 zz9x55-M+fok6;eE)|IV!@QBBmc1dvce$@yWKXyIuMnKQdhWaxXLSsLkB$e0l{BS{c z252{sM1A49^r2=>1j;2$2GoREQP+AS)@&dE{dvhJj&A}|$4d_lrlu1L#A@a&7%M4C z0;pvY-^{ixpanpZ40E+a2##!BSI&q2_8igkc{R6W+oG@jBXZb@_YO6oM&R^0qmLucIJ zY`?AtbXHXsS?w%Pc~uIbym{&Wnol)v7-j~wJl3S?Sfk?kvIOJn`A5Vv>auyNEbSqm zk9OYn^R9?-684&sI-K{*Af#f|VR%$QTTDi2^Qg6H$?ki}yI^RB; zrci`s8si4=w5TjkyBU~CdRx<>TYI8xZ_7#=5E#7z#dxcStwO%wMWe6$Y6Cj$R?NGJ zycm8J*e#0_m%8B4bWlQ!hh<|zR~n9JW#3aUf8?6GU*luu6fY!{nUzUuGwPAao$Q-V zFg{w?`mOWYP?k~afVkAnoTlW&v5;GvncBi~$AGb`;%KTxUQ4!Eg(kfBON-?<% zbQKdrOdf@54bS*m%&Z}9FKC!Brn=9(oz2+Uq`3(JK zuH2+E+b)~PklIYmqSM|0fGdBiOzyawuIP+;{k|~oq2y(N-s$^uiU3+3_+I>6!c@uV zsS!92)DrC4cSt>%D{8F7*VlcX>iucZuTy^4S7;OxFs;0f@x0ht2N!=4dvgpK=$vwO zfL+^noWfq;&W;*AKhew%hy5WmgW|D0ksKJFqgcIEatUf;%so*Q#$8;SJ#s$Xu>9`? z8+fcI>IaVa6&B`sd8Gm;^K?I@;^c`xD-P(w%W^u>-d*0NxT|j5$Ev!Q#?`pZG0NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;3@Xwu!tVg(m=rx-978H@y`AmrFB~Z0cHcX6 z(lmbMh0;QbYkdCvw?DkpTXn-`Qx}gF2am;xuX}QCZpa+#_7j$;E7d>Gv75PV_HVb2 zj*b(>s#n?4FPF^WznphZQXysX`^&yM`eC>4+NYJJGrlhmTW)y%|Ga++TJuwvTO&2%X*yYtH`D@Gu*?Z^AK z>i(;Q6?RuX2|mu0!6?POfHgy>L2SWBhNy;Pqzf#wQQBO2Ci!32{H=@=W9269%-8$4 z*i2#5Y4ZomwmPp<6S(;_|A0~M*A>SneM$+GWx9EE<;wim*Y%UvFFg9_QFg9NO8Fn| zGwU90o9ejBcGsKP{qye@rsdD{Uw2*qk`7y)d~n~ApuejVFf|IY`!xidfh z{9X2a@=YZW_+(R1z326!+mG}5%>z3Ms_(ol+2rwb8R5Q zz~H_3yfzdKx%nxXX_dG&%=1#S0&0*1*$|wcR#Ki=l*&+EUaps!mtCBkSdglhUz9%k zosASwkugM3X;E@2LqmdKI;Vst05uqLcK`qY literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/iconview.16.disabled.png b/app/ui/style/olive-light/png/iconview.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..a5decafb86b75abcb68e8bd76bf97f163887bfca GIT binary patch literal 541 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0wnnji2+5Gd5+>EaloaenUvYraDU0xt7q zqnSAQ7^j^0zTcIrk4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+4PKj4iZ0|O(Mr;B5V$MLsQ9Q~Ue1X}k; zitzgCu%4f>Z130q|3&Ok--Y$s+yRNU$XaAbYcb_fm^z22mC$G6L z)pPLZgBqTahPBqKd2@MH%Ee#EEvOTH&e-e45Vovi=iB*l&-Gn5`>MrdwAS)(dl`^l z&&3!qOY7QexrJA6|GMC|cptHiCr!dABr zs6i5BLvVgtNqJ&XDnogBxn5>oc5!lIL8@MUQTpt6Hc~)E#t=oNMaiiQ86_nJR{HwM z`MJ6IdBu9=nc11SsVSL>Am#cXo_NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@eY<_EkH1PWdDba4#Hxc7FtA>Sbb9@n>S ztBwfiIrts;+kfZ~%Ui|;u@eF&8%$KwIoP%^=->RT)#s}Mt&g~Pyngug;@h5NXZWLf?|HSTki|MJ~8 zx7?8aex?3nc*VZspP$a$Ubk3q$=d|m<5hiMWxxg~FfelDxHG)AyjHyA<{pN9HeIKE z!{q#d-V-TtjVN&}Ey>6)V(?8YD#^@K2r4bk&M(`3`pitAyeddOC9x#cD!C{XNHG{0 z7#Zmr80s2Xh8P%F8Jk%dnP~$V1_qu9Q$gX1(2$#-l9^VCTZ4tIZXZyCB*=!~{Irtt z#G+J&^73-M%)IR4^^@~+bMy0x^~y7| qGjmf@G7~|{^+7!Ski@+7{P@h|{JgmN8WVup89ZJ6T-G@yGywppIntQ` literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/imagesource.128.disabled.png b/app/ui/style/olive-light/png/imagesource.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..bdd9af0c643600b50342147d6a73f37cfa9664fc GIT binary patch literal 1749 zcmZ`(dpOi-8-Ay8mcxp%hB6z5SZ10OhSp5$Fvv8a9Fs8yv(p@mF-WZ`L^)>Hp)5Is z_#(b8Q8bCHouyWo4otgTNOmP1 z0MPLvc?3Wx+$s$f=w&!H5g<^BBl;5oXfM=OQdOZDMI#0H18^D*=`sOWhgQNj03=}n z_%jLsd^rHd+@J0pb%Tg)(SF_@05s=Y;Gjv9OA1W{U}yGL!3yV=>CjT0@8j>O{u;Iu zSem{GmO`AWhmQv_C}rYprGMazm;QzBLAkoz8ll!xanmY0%yu9_@2-3-@v+_%!SV6;ax`IdQ+vCk&^J*ul+zY zx-t529VPY;jsq~8X+${sp!89oC_|S;jN|T*Zu*`spuV%>25GIf?WET9lDm?t7sgGr zr`q1L%xy875m#h8OAQtsIG|uTO)nUqQ@?b7{>J*JR@G?DUfP*j;VluBX?cHy0 zcx@vDKXv%(j+Q3DwtN4OlJW-$gd9I`@-Dp<6v=hSu_7a+CgDW6i@BqLuzU}k!oFe$ zc+C$WI;Z_RKkqHwh{m{D53kgO@OrO=m^#{vbS63WC(OxKhbs+GKW3ON+Bo)zBTasJ z2FJb-E#;z1zaU1Lg#EBtT}R82uOZOw`RHlZiUl2T^S&=EZ!)|8eCd+ZKjGAqSJkMj|U{=I6rFR`mYBio?0 zU*RrG>biy`OkG;}Rqa((!D*c=CoZ}*J}+?h?w>|OA|8gO)YU26Z6qg9H%OS*IOC)x z`JwD{HJPqmV{`1x8nM$tNsQi1e*~+#CQ`BPs|!r`O75+-x-RY0JFcUmpJI5j1r9*p z#YPKjtX6Ngpf+oNNp)p)#~O&HeJ;MS|EASsUlbsEHiQIQcB^~ob{W7ac^gB#2BiFu z01W=xo*o+V{IW3){_&>SCyRP(%q+YJyW(wD&t7cyPz7RIdS>2ZZ5r%)?#37DI7dvL zY7uS)BOdR;A_x;N%)hcw^mU;3pkHS(pNtLWNboj09*?>z3mtv;>) z^sq8~vtj0Cf8Ce(>x(igjhp7!H{ZCWp;XS%zay_dyd(OgIcT&eVs3c%jWcfpXFjLb zH{7CM_|h1l270(JG7nx7k(i=}*{gfdgY#MLIn~yk3v-Ia^%gUD&X9ISSksY&z385Q`r5n>u#hha( z07m>Hd3FeZ!YuIa)xvCEEuA45Zr4@=z&7}zt?B^0s4alv0k&F|qUrz&1^iiZzIGd> z)zAsPv^v<}|^b93<>3KN~0KzFUg$tH{aMjX9MgGsfOowqzds{v}jk-4Z=(*${ z3BX+b?U|#fNpi-%=Y;ZhM`qv)MN3v^?k?^CYaHM4PN3U+zc+sY?#!FNwOan$FZV5% zkP}g}6W_d&<&KT5xyDx=_SuYESsB_m==`R-jFX$>z1A)}yMHPFa*tse z4Qo8*L&*#b`JN$sViG@|!vp?Q9-qNR1tcXhIfBli;VTetwZ+F!`E)#uM~495usEDO zcCS6oB?ybf?>m6UIoUxC7Q19zb>SZd7AJ-goBIC^RlaCEWH8yf5Xgz;CsTQJker+qC+x+$zaiA7}PB}W^2L( cQQ2{vlMEV%9eK^B2(kkoPqIhrp{Vo!0pRiS1^@s6 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/imagesource.16.disabled.png b/app/ui/style/olive-light/png/imagesource.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..fba11787d3b84e35d88d7adc82848ed17c42bbbc GIT binary patch literal 579 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0wnei44B9VoQP)5S4F<9zFcvs_I90CXZPlG3LIM!umq_ zp9~9baxhLZmJfXFo1w0)P}sNo%6um09ezqKTdefIrkxjgw7dTK@!p4L9Od*F{`v&7 z+?XZNwXJKrQKr?4N6b5vw8JKNUrGYHUZlh|qQtSZBqP6w!8fs}Br{JTsI)jczij*I zGc$qmsv!B4#FA9208-nxGO3D+9QW?t2%k?tzvWt@w3sUv+i_&MmvylQSGKMHBElN&h z$S5f(u+rC0&d<%w&nwm|&&k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+6tBK%G}0|R4-r;B5V$MLgMP6r)w5O96( z+cslCs>Y;k9^unea zMzym7I2J|ec~`AB@>(8$zTdO4Y28n`2@DQe{Q470k0k8dz1QcUY&zrFocp`1Y>&(} zbvWNX)w&=$Op{?do6G*{13g`GlV+J3ocxn{DD6?NyvqELn&X~N7#woWpMN=FMgN|? zx^Dy@mWJFpF!RsN(^aQ+SsOmeDw*@|GWU~Y*zxsn^pCkwoCoxtD0TDz@Nffk7@(;u=xnSXz>iU&P>> zSX7dkrw~+HoSk2`{q&icKzUV=d`elpinR(g8$%zH2dih1^ zv)|cB0TmfT6qObwr!r)eloVL$>nG>u=H}-W>y>9_XXd7+WF~@?>w|duA&GhE`SF>_ W`FU~kH6{SHGkCiCxvXNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@eYUxeRj2Wl$yba4#Hxc7F(?Y>(E0&V{{ z%5ofUoxqV{xrAdY|Ap>*-@aB~G+zf?M40#OZ4Ly@LtPXfC||NWg0dW1yJ1vUOk{9)@9aGm48(vsYrj2si!>6$kvbOaeN+g!IWYC%Q%ecPYH+V=!M^J$yTR;g>);qP$C@|Et6^2x4ycCWX4H@SIP z(1F|_!z&T;OFh=jWY|#}viMfHuKD9%k}vZDoRojPS7}ar$FQE~VwYrqQgr532CjFpJ1(wW#Wyv=sUULe{bd0!=WHpOB7XeP)g$j!5{w%A$e`u6O%+gj?Z3=M01 zr#~uo-z z^x2&u+spVx=)vVPP4}MIvi{sZrnsZkdjli5ZvfMzNQrAiiDPL=Mt%{4Z(>nNW}ZS& zX>oRb+4j?CW&-6^LGmeyC8<`)MX5lF!N|bKNY}tn*T^!&z`)Ab%*x1I8^|y)crQM$ z4Mjt4eoAIqC2kG#ywt3K8YDqB1m~xflqVLYGL)B>>t*I;7bhncr0V4trO$q6BL!4s z3{g~Cl$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aQmzl;>4zldrRT?ICggTe~DWM4f2RflV literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/import.128.disabled.png b/app/ui/style/olive-light/png/import.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..45b2c29eff63f84ee8ab291bccc5c53f76976ea3 GIT binary patch literal 1586 zcmah}dsNbA8250vT#ii4`f!(q>Gw1FSws)|7_=MXMeok^F8nLJm34*`xS<5--21N zbO8VW6B100fKfPKCMfu1dR-yGfJzFW1OU)bVm3oFg1KWta0CT_G$+`X3&0fI5)J{t z#{w`M2LRy=082RMWZ{0W0L5?JLI&V!@oGHGOgX_(DFE2#&ljTP)yG7*Y0L|u1RB3a z*n>6854(q~fd^g;AqVU{qSi-K*ea4`=F2?DHH^Wu++2-N<`0!2saXVSmaq)kXey3i z><|?w$5ow$O~RKYy}ebr?|d7JJ+sE9_C9Y&GDo3M(fdjzNPfH;dyUsiw#mh(khQqs znz=HtCtOx|i%ISrsmln(PiiVM%87!!#`ey-s_529emB|Ui&fLN#hYb?Z)=ZxIZgIU zQ(Q@3237u4p|*H=e2FM(VlH>3wBa+PsgF7sxnwVp9c)Y!yf6~0CtV_awLkieKx4&@ zLQez>g}7D}r%#X)iWg085`HSL1wP~^6un7K33QkxuVZb!;D{`K+a@5IfzM`28!+P5WV zaPwY`4^HQXo4wi9%hK;R+e&K~&_mS5q76rz2Pk0lIZbn-!V96hQr1kHT_5R(2vXmF z)DUl4?^%68{i^{p)qLwoREHX!-{f%-lPyJiJTjJNrw>wqPWSosBB`+klb1`>nBSI5$j69)?e-QH=GLRPk7G)>{BRJ0qOLqi>k#|Gi2 zuJSbV+7Szr=tZg%IoD?cQC&qj@>xV#b3mi*u097#*}7UQr0H~#sg8)oPZ%qMlH?sE zr9r4Gwz_~Tz0oQLhIq%MY!WX`v&UQsKcrnYZiNh)E;7^kqi?_g2a(PXT|HsET(ct8 z4#}MMwNk{G59%$v1$hNh+k!p^PWQ@zRcO}{iy1zVet_UeByDY=Cn0vyIWID>`OU6e9Oio+eM-5 zRbAh#Uz>pKG%Pw-L%hV=t12o~-AlG=?vIH5# z&`^1vE-5bv=$*G{5DPuY)3!}MfB3{+C-q*wL|)cv~f6c(?sdAW87&Z>11Hc9@8EuEDx7?;*@@=z3iNA zx9_CZ|2ylc0$c;p*(F_W%x+>=t$w&-{QFEV$1q9kHSwCZq;l`tu^Sok8bQuwocLDj z;yaja8w+!;Nm{N#-C9g^)r_-Q7!hq4c^@TA!+l_8zlU~qC?vCTvoL#P>jc$OTBdO;D}lN;k-VAg(=gQ)bXhoIri%owHrScJDU3 zVrEx}|G6P-c;!qctG=jT+xn@Ik^B3{f88pvpLMOQu4Sm{!@|EU*r?N2r{CgsKe+Zw z<)zo753zNn)Jk8HNJ~FdO7*oNRcqU zEcQMoUGU!l1{A4+19tNhcChKZR2nxCq^732GLsLaB+xjCu54~n%mYkT;yxyA-tIQf+;-BEli0D$1a|V?3(lo*9E1dJC)aI` GJNhS-ptc?W literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/import.16.disabled.png b/app/ui/style/olive-light/png/import.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..10e70ae270ca8e46afe952d57d46b2d290dcfe05 GIT binary patch literal 616 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0wnei44B9Vm3&)5S4F<9zExe}5)J0r&e; zcAdyHlse?7q*nEj`@`SR>4d$&#u{=|*6A`j|N@_jh=IQ$#BLh=yEN3mgb?(=3nbXz@ z*Z04;>9+IW((7-5UKA;DjVN&}Ey>6)V(?8YD#^@K2r4bk&M(`3`pitAyeddOC9x#c zD!C{XNHG{07#Zmr80s2Xh8P%F8Jk%dnQH?X1_tlN=e40|$jwj5OsmALVV;+o6;OjD z$cEtjw370~qEv?R@^Zb*yzJuS#DY}4{G#;P?`))iii{zON{fg-7)|G literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/import.32.disabled.png b/app/ui/style/olive-light/png/import.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..34368eb64fedaaff10b1cb8e2f6ce0290babd709 GIT binary patch literal 732 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+4tX6&iLz`*G3>EamTas2HRNB=_(0< zSw3e(#%OFcG|Q9TG*6;>tqpsgwCYb$v8>!FPnb&-B#bYuY3#IdnSH~DE#}6jT4CWi zuT5XB=uBEPlYN(eyIixE^vpkw)A+QkZe4v)P$Lw^u$g~e*Qdkf3}Gtmn-)wC|9|e? zv3tk->>Rc{tlMt3v#@mGo!(Qg(pT&}x3kx$PSxs)Lft&IfIa)%1x-}VBQn}!9K)_A zKTO;&aNOY_vtf}?>xvn{pLG5(EIU=*_rZVP1Yk&ul(nC}Q!>*kacjt63cC!{APKS|I6tkVJh3R1p}f3YFEcN@I61K(RWH9NefB#WDWD=_ zh@#S>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@dt%8Wf#fSSZTT^vI)?!BFU*8h-$z|s39 zyn!l5b7iL{jFnq)~Rpc6TUBHe0n|BwvS(#hCIn)2WY`W%# zcaHD8C+SYS&?my(s`ja}YWChWG72|^(gkKcNvV3;C9spJ!{xS|z@rme=NU7+ov~@t z-XaFgp3H+fkNE>iuP~T8@CGmgsRQeoCDaye&X{tdHiyMb!=Phx-<7Al|L?C&u8e4O z5{yzdlzDae)&%y0XYFUdnf;^Al850-K;-mBafi=+$EI$P@2;-Bw1HDT<@eDia{3%4 zwZ@;A7~1lyd2`sAzFfXDWqZz{G_j1s5qD-*!wU@vX)iTTay8#mde{mEgC$$fC@J;Q@E=I}a(&4rKW$n{TM?Cw~6*u_}- z?J2g!&*uF3c8ZC?%->|Od&{-e6~83ZD$J%l-5x$q)i?Ed(O$)0*Y4ls)>Ei<|v%A&tFyUsi`EvT11aZ~mmbm^bw&;}OZH8VMb$ zA9qiGdj91lp|_aNS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;3@WmWCY75Q7#Kf$x;TbZ+o$f+2c7 z=Z`KIJ(VPznLqy5x4HLceNmHGtd=mr!`55;dbshXb27UVjb$UgUD9U}6cqfq{)nr1 zU(`p1x5v(Iank-*(7f5Cvp=!I^q*71<*9}CCBkq2&6af9m3x2A`A^!bLvPE^ZK;j= zdHv?ByzlSYZ*GtJ$SnW;uvu<&%iN2J`)06OWVPz$Ms?k=&AZB$ac%Sec_Nn`Ya3*v zHfJ>5y~R*Cd76&rofW(r-n{?Y?|CzN{l(jVdDs@PX7D(0Uyx`JTVTkb>yXS4)o_eq z3qvns2BQ@71tt@M3VsUCyjh;N*<{Z(HV@%j8#VN|GCop%8!>6hTfP7M636`SW=VEt zmKyAzHg{IljCX6>b)&WlG_T(Mb7|Lhhu>;87niAa_|JV^v-Q!I9|m9FEzjO4EA>U^ zhzQ%gLx=N^99aryDjRhJ)k+dcZSqobq4WUje}YiIE?iv#ErERAdZMR9cjr%8*e~QedU8pPZkYo1a&#SDu-jnVXuD lnFvy@58~;EB<7{($7d$z=f%y}m;lty;OXk;vd$@?2>{q=QTzY^ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/listview.16.disabled.png b/app/ui/style/olive-light/png/listview.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..30649469ca5e3d2e443e756685063ade11af4ad8 GIT binary patch literal 493 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0wnDKqv|0Sd)7X7cuxI z7L{b?DFl@kXXlq~KYeBjz8glbfGSez?Ysg>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+4tX6&f~6k6!%;uzv_{Ox2%z9s_!*ZU@3 zKH)3a4P4&WONSqOz}m5=zqC)ehyGZhs64czYb;qC0# z>31CKuQh*7U8=pacK>I))E^!@S9(PKT{`EJ)(LSB4@YHD{f*nSRWjyU|Fw~1IDJKp z?*(tx7NBEAN?apK97{_w@{1UJ6N^eR^Av(gi?j2~wx2#T6DY3=l21u2NwrEYN(E93 zMg~Skx(0^2MwTH423E#qRz?=uK!$;VWc<5)6b-rgDVb@NxHV)jg-L1P+nfHmzkGcoSayYs+V7sKKq@G6i|^dL{Vu`awNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@dt8BHoT0flyXx;Tbp+MN*!_~%|&7*x%WD=r*-fOFOfo=IQ+`|8K;i_c`A$8oc|MEY*VoLd=M;=gvZ zy!@!gkY|#WROFJ~5>edXF?xzv#PirH%Mi4{5wTlfEcFDcSc5AqTST;O-8 zy?pP^w!0nErv0@NZ!qxOY<$7=-sL&((>`a-w>lBb#z=9alY36T=lh!V%rl8pQ!2H(V@lFU4Xpwi;({Icz*&&&kM ztAgZH5=&C8l8aJ-6oZk0k&&)}p{|i-h=GBXv6+>Tr8baZV6b1~>1`AZx%nxXX_dG& zoGXn@2WpT6*$|wcR#Ki=l*&+EUaps!mtCBkSdglhUz9%kosASwkugM3X;E@2LqmdKI;Vst E0Fvv+&j0`b literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/magnet.128.disabled.png b/app/ui/style/olive-light/png/magnet.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..83c5e9157ef90917b6a3bc4af91aa52607e175db GIT binary patch literal 2391 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 Cgr=YX literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/map.32.disabled.png b/app/ui/style/olive-light/png/map.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..b6373ff0102c5148025f4313b679a4baa2bfd823 GIT binary patch literal 569 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+4R!&ZX>D73=U#WBR=_}eLl+=mPVTJO&- zT$MbXkMXbQzyBBG7j8)?a}@WU@4O;}Q`Po$P?h&2?)ST=dvk1PV_@&^N}3?_@Q#MV zWSIpUm`rwU_+9?@PtmMpcjX_ic=jrSaWmtcAKUaxKF<^^>ECsh<%iSh_c9BuV~qPB zOsdFBe|zu}W2}+(8MY64=Ue`m#q{rM-X(kQ$NZ`fWf%S%1UoZcQ0w(#Rq5bVobn-? zd77a9BoU>ey{k+Nfo>Klag8W(EG@~%FJkabEGo&&QwS<8&dx8}e)`Nzpu8$bJ|(dv z)hf9t6-Y4{85kMq8W`#tS%w%GSQ(pH85?K=83qQ=q!vs=(U6;;l9^VCTf=mB2`!)o zNstY}`DrEPiAAXl<>lpinR(g8$%zH2dih1^v)|cB0TmfT6qObwr!r)eloVL$>nG>u y=H}-W>y>9_XXd7+WF~@?>w|duA&GhE`SF>_`FU~kH6{SHGkCiCxvXNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@fDX4qA$a}sRJWdKm(J=0*3;|>ANS)NUyxKBHu^a@`;#LC9~SWUG{PlI66Jw z*_H}SsOXAhZ&bYf{XCm}i^u{7R*es{S+__UMxR$uXcycZZ_M#TtjvS^)`4f=?gdZh z?tCVy)&4zJdIlR;%-qJ)^%nK}8dEtu-u{|7|H86uyi**f>038$nPB^8Tfk{M-KI6Z z9Fa2jzx0|%KC7~<0)~`GiEBiOV`)i7ei4IjVo^zEoNS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;3@Y;Ptt93#Ffgw6ba4!+xb^nNL9fFO0>?hi zoD!ikb%~tFk!uUw@BcTfVO_b5BhJUkF}GXN|K6P?o!r@n{+GYeOMT|O>u#(d&`flY zyy&>^?zvZ2su@kavFL*8c9W3Pj%8u4M<2H@XV^4TPnY*@1i$N+%9{Vh3^!X-j_*_d z-#aV!n*P~hHQl%AMYdPIxw@!&KHl_3)}c%_d|~yE%|8#FT3fv%(KCAPOQVvnaXR_u zs#pyoBVSzFYj82NpCPRCtn>7DXaA_ZlsWLkrsS&K%SFWuliKudWiy=1lVQB$UL>?D zWBs!4eSWg??;jQFG}!yB+7Zk!f1&obb6aN@vlQ%8V+7>I?Tp*S{{y-0{?Hh0f*XCC+<=gC?J~%Aa}ppXv6^zoNvQZ%eI? z5PbU9{II*-?cJBxx2l<4WsK>*?N}aGEBZ6=`Xlr}1@ezQmCj>IYAdZ(0EN0piEBiO zV`)i7ei4IjVo^zEo-L1P+nfHmzkGc zoSayYs+V7sKKq@G6i|^dL{Vu`awy#!PhXcv9U4G zaYiF=_nr0Z`I7%O8yIMG{Ruy`F1qvMy=*n5wFys-O!@Wy@4@J{|ID&%R~Q*=`+2+* zRdP`(kYX@0 zFf!6LFw`}&3^6dUGB&d^HqZt#3=E!0EtrO)AvZrIGp!Q0hUxAST0jkwARB`7(@M${ zi&7cN%ggmL^RkPR6AM!H@{7`Ezq647Dl&#BDlJM*WymNgDX`MlPtMQH&Ce^=E6>c% p%uP+nOav*{2l4bn67$mY<1>@<^Wx@fOaN+U@O1TaS?83{1OT=Hi%I|h literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/minus.32.disabled.png b/app/ui/style/olive-light/png/minus.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..47a9a4810b8bd1131c00eddb07d2fb4964c9eae9 GIT binary patch literal 507 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+6v-b!K~P$3p7b;DGlbhQ7ytnC33#zv9*T<5HA{c;*ep2Gdtd z%;xl7TGJxP(BwAtXSr!p~e|Ch|lrt|szwdi&Q^-)-CdwjptfCQU zt4N7!M2TZ*Nk)DVgKuI{NoJlxP-$^?e%bcZXJ!KBRYCG8i6yC4$wjF^iowXh$Vk_~ zP}j&Z#K6GH*v!hH$NpatrE8eLjz%uza>F71m~xflqVLYGL)B> z>t*I;7bhncr0V4trO$q6BL!4s3{g~Cl$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6a jQmzl;>4zldrRT?ICggTe~DWM4f4rimS literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/minus.64.disabled.png b/app/ui/style/olive-light/png/minus.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..1422bc3fdf802241ea281cbc4df74cc8448070a6 GIT binary patch literal 618 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@fD-&;w{0}9>rba4#HxcByoBX^U54C@E; zsUlolT!%PbExYjjzkyJTYe1lrESKxdSo5QL+hkw;_1o3_{_k-$2Nw|d^4_I5@gd){ zq^<>J`(#umUXLubJJrt`*4QB+F~@xRNxSgyEtbmRN7NoSS_ynS_EsmL<%91rW`;lM zHzFB~AAejcvh={EjRy7%KeAOrE5EE+Vy?*=)OpA&ZK76qpgps>HtQCVwGH)~Hn1Q4 zuw-9WxzXz5<>^VE3_4^^ZhND{V6*Dt)u|s^uK)A=-ZQPD(|f1&l)w93Aufx)_i~cn ze?{xiuRu?Vl(nC}Q!>*kaceL%5C#RaB*=!~{Irtt z#G+J&^73-M%)IR4^^@~+bMy0x^~y7| qGjmf@G7~|{^+7!Ski@+7{P@h|{JgmN8WVup89ZJ6T-G@yGywpE<<>v| literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/new.128.disabled.png b/app/ui/style/olive-light/png/new.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..a666cfa204232a527de6b2b7607cacdb99f97aa5 GIT binary patch literal 1174 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;3@QqdF{XX&9;VwnGOmO;aBrL5}?0u4Ix`>%Tmyx8wB=~Q9eqiMhR+7F&%-4rAC za?#JvuWL^&Id-3yb%80H1HZ#@h8K)4K!(XOFJNDg%=@Yn8aAL{?E zU@*Jd&yi64H-n+;l{-^F%>IMhkMI5^W*%(cB>G_e{pyBIziinx*5A)=(E3`<6R>vQ z`?Ty=b?;J=x$-WDZw2wRcSTR#(QAJ$c<;V^)|w@!Lr+ES{w3FNab@s+wmVrhx7O`@ zK5h2rn(ue+PR!l4Wc@ywy*r9{Rz%-tRw$ZhH?w|s0kips`*Xxs%-gxtT5^A8eEgQs z?8$0ht646rsmo`Wb?rT;!{=Xn88U+RvopMX)%}MhJ>vEY+0VB=`{^??f%2*#`IN+xRIB8oR3OD*WME{ZYhb8rWEo;$U}bD( zWo)DkWEdC}wr<>yq9HdwB{QuOw+4nAoXkKCk{}y`^V3So6N^$A%FE03GV`*FlM@S4 z_413-XTP(N0xB|wC@L*VPG!g_DJihh*H6yR&CSm%)+^7<&dg0s$xH+(*9YdG?>9^}MN;}sT3Iqen_ zaz%2|0*hnvOb+3tq2Zp+-1`<)oH%_?LFe4Zo(D>X?;a{uOHM9`y1iV&l3~Li%^kO{ zGR)dA-}2*Gd5%i6eLFvWIvO##ZNXmG;(E=$0nG6WEgH&h>%qwx8Ohkj&kn zpb{x@jVN&}Ey>6)V(?8YD#^@K2r4bk&M(`3`pitAyeddOC9x#cD!C{XNHG{07#Zmr z80s2Xh8P%F8Jk%d8)^d?1_lnftCdhRBu8ABA67A2=LWR#Q?Sn2C0=jZ0;=N0RfXJ%*Srlw>j kf|Tonc={oUdFlD_naTNiaq~4M0JSrCy85}Sb4q9e00S7e@Bjb+ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/new.32.disabled.png b/app/ui/style/olive-light/png/new.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..34ee2b4a659639b4eaecd49d9830d7eaf82e6657 GIT binary patch literal 626 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b+6v-b!K~Q0Sqji(`n#@wZbAxtk3HTJJAy zVqLgJB-?Re;phMVXZu-+UtZ}Pt@3g~#@4FN9isOq$=vx}RIUhgi^p~gi9_q}wKg#- zuaEO#tG97{*EPqvBkilYvD3_^WsLXA6Y}oX3BOq2ny{gxn#+Ig z)Uiu4Z6~r>*EH;BIFTagpw=PIkkVA~VNRy~bvu?h&u{Hkw7c8$<<0HeTrav7AMVWv zstpXE&utY7XN13%FhCNR;0u=qQtSZBqP6w!8fs}Br{JTsI)jczij*IGc$qm zsv!B4#FA92>t*I;7bhncr0V4trO$q6BL!4s3{g~Cl$^?tQBqQ1 zrLUiypPQSXSFBf_nVp%Nnv$6aQmzl;>4zldrRT?ICggTe~DWM4f Dx}e&d literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/new.64.disabled.png b/app/ui/style/olive-light/png/new.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..b77637f03000ba070f3c5410846be1c4771b0f93 GIT binary patch literal 785 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@cyB4bP!GcYhVc)B=-WZZju)6x5|fe8DD z@6T9fb`Q>A;eB<7?y2*Cz3$Lht08!dtFzY;ac;YFID!@R8Mro{0=m zk4|4}eBdg{Y2c#WEl{Dj=(&TAV}j5zL6)yHPn=1=8x*4o#g;yBOX-*m8C?B)dmXYr-g{8a`$3FvfgjHTFQEf7S|S7=aDM*i%ap)jwxw|E zi;9%YeC^M+KU^8P0veb^7BH}CH~^UrNe&a$Sw$>UI2m2}A`f|gke$!-L3lpL2kH4N z7kbL~%xmA1^!ahMJfro#^aJ-Rq!oUB7G_|m+3{GHVcMmiJIannH=L9aZ(1DiILWB| zc=UhS_p3^de`hK<`kkTRICBl7cYT_rVfNQdVDyNTxJHyXmX>7X7cuxI7L{b?DFl@k zXXlq~KYeB~}U&Kt;w7 zMWsc_sSFtQ N44$rjF6*2UngCX~8k_(C literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/next.128.disabled.png b/app/ui/style/olive-light/png/next.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..9035ee9da41303b5da3a09162b50c35d7690426e GIT binary patch literal 1416 zcmZ`(X;70_6n%+FgG9i}5)2}=QU(S>Qi4b$wTWewEl5~JAcYvhl0?Wy09ihQqF^ji zr3e9~m0=K+NCj+BAXpX$mB6sIU?3tmhyw*ofwHw9(?9k{XWo71-h0lOJMYcBm(TQd z*U=_w0|0b9JzP#A2=9az2HAN>?$8mya2Y-f02&JMn`|snn@4+`^Z_8<649LpU>#|} zvj9L80Oq0qpxpp~AS`e3cSZ>GH(u^80MuSNWRFz4g&v{F0GM9f2~^?C5(jDGM4mpb zxHl+MVDX9FDePeYcCC84Fj%Q$^X23G!4n2~e-~F{${H>Ds$uPXorI1FQg9~fU)La6Xv8Fk>wNRCDNSV2JPO0u`{6o2MSpL$E?L<% zOxNLDr*vYW+&-I`xT%4HupVL{I7~0}o$~5IKLI3GmPta*%C&E|x&+^^lUg<k)P z2OpQt7B)GI?x|5#JN5>+#XItY(lhHuJI=gawl2%w{KYXsHCrBcE6onYzPzAJ2oL2? zv^klL=`$1kLXQEK+l&KbZoa3#t@-QH1qaKw7b<4lZ8Wh#Cc{LPsOm_Brx-nc{$lpL zOReG7>RO%-DlT&+u)cBx>KQZ=jwoJu>!03eHdHl7MJ470>7%WlzJ&HGpNy=a8ApqI z(f8aitOu)siY>B?U2W6dFKrsVoe4zkzXy(KH?@~8^cz)b3PX+?Y;9ECJ$E1g_5KIR zQqZF}=Nb-TLCy7TJu}R znXA%ZT-rVW`$K9kAe&Rj0PGH_1A#FM*M?1%>psSV%^;jDX6>%-4Xwps)B7I-g%_mo zf-la&r9c5e3MMEI!Z~A|5P>!b55!5aKi|;}!3+IODFmQ)hZg;cuyoR^v&Lhd7s9mw zczGqP%LqW^T0$6r7cVTy8TFW&6XE1W0GC}ZEQ&{kShs-J?YhgB3a2!Eid73-C&4qh zT}G5keRx}#SrAFg-gDF)Eo|g&zE>6jT7h1I^xf8WMs-(qfM>$yWMmdbGwi!OJfeP% z-77RW@LPs{eiI%2b$i1vI+eMgE?*fAZ*_7>3fC#Bk=k;pR9jfGh8)*BBM<%3@)#Ahpnt0b=;bTj zV0kC^Q$^&|gS~3%QY(J3Vhy=LzYICr$)e2~rLU4%hwq!b3W(ONnY8t&@74wf+7FK? zCyHU^iz5vKGlMbPBfQv1RPANy#?wuY&CcmLR1J!Mdb~D&+pwR}eBi6dtct3l6+m0#|G~IQBDbgP!AmuHY=2L~&WD?(;R7V;|? zh+IQN3`i6!NCH0WBoU8qeiBNK7oxds0pL!uytcP8!s4b^h=L&UIuXF`DBj7ZE*;sCK&Y{%orCr7h| z96Lc0SGM3xL`2koMNm>S2gHg*LK>MIEl5lh@RRMtym($BCx*w~k&|~SGKU literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/next.16.disabled.png b/app/ui/style/olive-light/png/next.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..5d4d850afb507ecee742ee0118514478321e83eb GIT binary patch literal 572 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0v+h>S5^3=~@J>EaloaXvX=frx>#hNxKH zH~)HpL#J|_&bqhXfP2;Cf5t{0+MkT>{^b^TG-X`W@qWD(vmNUShHj=~{%6b! zcQt@!bF3Weu-yrEhb;KQZY6 zm*R0@eumr&T01J=E}aT=wn&LFVdQ&MBb@0Gz|Z AZ2$lO literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/next.32.disabled.png b/app/ui/style/olive-light/png/next.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..5e633321004d90d8e215480cf9df65071ba4aa6e GIT binary patch literal 695 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=nV8DqMbfq_xY)5S5wu$se3;?yaa6Hao$jHzPS}Ui-C2r%o!TFLI{IE(%oHG_&MxvlK(avN_e~dPCS4 zSl&+8F5eCG)&}kC?O=oK0t%z%$x<7$!^OKG7>FVzt`Q}Ur6n2p zMGU@)MJ1Ve3PGjC+4*JLPoJ3ylvf4GrzDo7S|t~y0x1R~10y3{14CUS%Mb$tD`PV& zVn^%4Y~O#nQ4`{H89-ZWCm)G1lbUrpH@m zmtT}V`<;yxP?0f2QE5?fDnmv|Nr9EVesX?pZhl^|UU_DAW^QUqW+F(rK8U9ul9-pC ZAD@|=pBFb@V**e+gQu&X%Q~loCID@G_l*Dm literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/next.64.disabled.png b/app/ui/style/olive-light/png/next.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..7f7bc8cdc89fe4681e5cf97ebab09ee47f3f096f GIT binary patch literal 901 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@cyB4bP!GcYiI@pN$v$+-7+hOhr)1A(^t zg{$u_QhK4(a?1TGOBw5;r$_$(=e+aa+N3F~4tTZZhKq1{8Ot~Xgv9g;yYKt4*K%I} z@v<}_$q%1^phzdmZ0CRNwU@P)&sZ`0^v28=X|ARl_!8!PtG>*`kl0-QjHkW-OK(FszyRaO)S96(`Fal~UgwO10vdz5LK(4PYo1{9Pv+GKUcu z3|IKJ#V|E^a~!tcfBL5K6JQ|U^SE_3w4H&WZdGz+xdzjLHP#}G3{PJ2O=H+p&YsN> zxx3kwfg%5H;$>Ba9WBiX{(18^_hxLlT~n})`F-N{qtlKuZ1{11r2@lFE+&QR?-}mz zVwE_eymIANqa~8ZKL+IGOD7zfTaooBL9n6WcJFFqv(KB@95~A#2d2D9=WO`5I`6w` z_i|Q-qES6r5@ICATd@v^!SPP`B>l@>foCys18Hx)L=C55 zjn)1+9+#Oj<>&uZ^!y!lA=R-->QzYUA?HHzsc|51?kiU-%fhRL-VWPs2ARB`7(@M${i&7cN%ggmL^RkPR z6AM!H@{7`Ezq647Dl&#BDlJM*WymNgDX`MlPtMQH&Ce^=E6>c%%uP+nOav*{2l4bn d67$mY<1>@<^Wx@fOaN+U@O1TaS?83{1OOC$U9kWF literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/nodes_btt.128.disabled.png b/app/ui/style/olive-light/png/nodes_btt.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..bcb3c9ef8cdc46395fba31f67a3b224e8e267abf GIT binary patch literal 1522 zcma)6eKgcr7=C}lWQ^2=R%t~aHfxHBu%@Yoe2pT^=z|)@7&C*J!Hj&gX$Up7ZFG*$ z!juSw6k}1T-L!VmbV@`HRt#DR$B;_)=j>m*=j=KA$9v!Rd7tOG?>YCLdu85UZn}6Q zJOJp@+?{>VEL{qmCc5(N%cyA5j{wX4XR54_=vWoqX01^ zfVV*a&DoI=*YhqvK-5Deq;kLF8SJ+-)7^o!-RxWJ;j_3{HM*~OxB5~#)BJiE z&Vq44R<~07Rei19`1o4e69r$NO>-!W72MsKOTc2WyF#Yg4at6eigovb+mjLfPnVUW zLy^e}1xPh)x{K3d^g3sY-qdOL^fmeY-eb~qz2R<4ZCr)=&10;m4`!8X#WyFnlx*pk@(7)Ii z!Jl7K02BrmMm3+|;hDC4HOTd;M4)bw9t5cuQ~>0IKLTW=1_KfdPp0weHUDNBCGbv9 zgwDyIUCZi^gk7i=X0&LSTG#9r@KOgfq+z%RP?|cRFZIAZKuS+bL5|1ZrA9b+urO^y zD2c}#nY{R@OPeeVoXD60Zx_=q4w>SGf~)GWS$4UnYr%##rLwQ`qy^#BexIw75`~Gn zkJ+2(R-UjeAG6*5SR*%FD>U<5L`J`Z-irMdzkE`-W}20JOHU2!?Y&jw+FfRMK)6P9 zuvC@vQ2wc`)1H0~?`VE(5n~o`KZ|zD_FPvBD<5}Jv3rIWa%PXAG`*hGNnY_ze^tff z;XfuZk8UhHh_JSX+*K@c!2=O$&}Db=YN=%y{McLpHHx-tfR85zcQdT(pPp z^A2e}tcyoCSG@#k?jZ#D>sNqaJ)U|xevNda%JY&trBZn_{ho$-!!F^C&DFaS6RqGk zX7G7RU-VWVlOW}UX8NpNz-QuF+nTUL^ZXH4tLkgq#L&gT4(G}yLbdJb?&@r2uz)Vg zGh|pPa7y}Hm-qeoG)9$iVxe)UtJK}9x~REwmQuU$*6&e>gu;yJR>|Dd6FwhbjLYf6 zhbGSWPdD#4zw*S}<^^T$m^kQ(vYwUCsOo-na4zNv4=>;Ql;|RB`!0%MLG-(y<%MK0 zgK0^3Pkn0Rs-v8a$(D~moJ;VOtabic=*Ydmb_A!^YhAUP`^5-;xUG5wld2?;a{ov{iegAW3 z4<8g;+050oqIvTB|3ZH2`hvD9bTowqWIYbh$z7kcOh$ZC|NP?PjT{VBZ`OTyVsK^4 z29axZ2M$b`=McSM(Z;XLX0H~8zvET5-ZeioIlxQwsn68JPf}-vEy@@jlJ4AyZJDK@ zv`_WU_6A+2wWp3Be9%9~e&MT@J8RCTGG<<~2|nUusKdk4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=pD7tLzQz`*F?>EamTas2EQU+=>K0c%@5;<&sGGzyJ0R!|rHIV!Jix6%O__dOD4)b4n;L3ClZOq9n`gORSs(LR zZokLviiI~F0#-%Mwdc9TAn&?s*A|{545i_oyK-0=ZYXUP4{Muqb?&m$evV$7eimPj ze6O-A)@9+u2N?&>ywDA=y2G+?qC@n2!8^;QeiK)DYVPr(;<~vy&?Pz z9&x$Xze+Jmy+5UTeaHKhxv!-|jH-XUF@M7g3}%rM*N76w(vpn)A_m{YqLR!!g`m>n z?EJFrr_am;%BzCpQxZ#3t&)pUffR$0fsv7}fuXLEWr%@+m9d$Xv9UIgVPJ6m(=Kil z4Y~O#nQ4`{H7r}tv>m8H5@bVgep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt;w7 zMWsc_sSFtQ N44$rjF6*2UngIP(6>R_j literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/nodes_btt.64.disabled.png b/app/ui/style/olive-light/png/nodes_btt.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..95a8933790231513adec87fdd2fd4b798ee70c55 GIT binary patch literal 962 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 N@O1TaS?83{1OR6?6iomC literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/nodes_ltr.64.disabled.png b/app/ui/style/olive-light/png/nodes_ltr.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..a0fae6bf8e3a0fd1993738854c0428613ba79f5a GIT binary patch literal 962 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@eIwg-ju12q|Xx;Tbp+-Rm$dQ}En=*5$SNJ1pP+ zwqE}9%Spz6-xpo=zcoeERcAX-h>iYwI~_UJ31&|Y?E*Aro8*CPxg9&CdwtedRy97E&&*<% zZ^jck|2wP4;RWF;&#D{69i-T7{dmk0=QB)yc8=ltGrxwb&u7fFJI>FLW|$?hs;+R8 z<*bk4C0~98^F_>=R4Dny;-|CTo?|W(FYFQ*t+9)fY7g4=bne10sliJ+wke4`t+9-| zxBkEbpYJoeyw=%0WIuaWo59ELq}JP+>kK7pw`bS!Z_s)EOpihTY%b%yS<#FyHvi>* z&YB>%YuojE%$~d}7)>9%XPEGhbNbWB8+;7sOWW5cO(}P%TxxEt_2ZKHfge-Om@il- z|M||FRnr#nsRGlJNQrAiiDPL=Mt%{4Z(>nNW}ZS&X>oRb+4j?CW&-6^LGmeyC8<`) zMX5lF!N|bKNY}tn*T^!&z`)Ab%*xnA8^|y)5DIN+MbVI(pOTqYiCaT5hm9prgCxj? z;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TyA&N?il2aKnN=gc>^!1bTb93|a viuKAfvomv3Q!*1l%Jo4!{gA}G^!)hDwq8v z0U{`yQdu-2+5)u{5Xz1lRvOkq&=y4&=|}sc(;uDbkNeI$_ntF%=G}QWgXUtZsGy|) z0E+f@RCfgV8zGNIP8Q)d83A-C#hC(7m$h{@P!{34gYDd%0TT5QT{^%rlHyMR#Nq&E z0sx4406U^?h}|rZf=rO3Eft_ru+IcxTcYf|V*oIhHUgC;dB;SOo4NMRHk&6<7}&q> z37w&dGz_w*Qat0I&lUQ!wQSYerI_8h-e+}ATkFuA4$&(al9klV7SEqN3P$eRe?e>C zDO(zUzT-mc{5K=>Mn%Ua_x2?C+>L!O*@R!o8b9ntqxE`dlxhE16`7NDwvbmn+B?;k zA_>}gbalAm8l>nGl7V{HCe@`AbSvL(VOYi*i65am^?A#ETDRIh6*85CbH>@Dg~ zTj@VJy>$`9^e}O4M|c0s5JcfW4l_q}Bb52)GD;g;Od;M@G;^;8b$2>pJ+)Fll(YyU zbr5Qk4+5FM_X2(-)BwB!9~6jD^)kTSbVe4Yb$VcL z9AUE@<0*6B)b;HIU1ovhhk>yPI*OckauYE9WI>c*2K5OBpg0i-nR$fHn{AS1898Av z){yut^%#MuW5)MQ`HJp%X}`igjwTJ{?sBeLx?7QAv6P*EJTzoEvtWpF z>uL=~_d`n0PG=PNwq%5~Eq~esJMiYEQmHg4#kYb!`{qqo>qq~gG1m&domRMafONfi z@?IjTtcZGP3%tG(ztkp4rr(QseMc3nSk*f8=!sznNHic)a>Rv9kQeqyICVTr>XgQ_NuY)jL=vqE#`? zxIxKbZrYA0E!Ti6C2I*D2hqF0(|SRcY=|xfPpbt*G6szXx(W>j$YdEBY7c5*^=4bC zLvxp#y22g|>hWd9he*zGF20^bN_1%$ZNsNC)|-#l8KY-hJKV@t*hjf8=kp2=P)DAZ zj2fy5#4-DCcs#b>o^=A7uG0gkP$ys9HZ zhUtB2RqYkluNLY&R;X=m<1^ULEo zg{pj4`7qQ{nox_ZP*N{k9uK!flNSk1yK>)a;s+tw;D7vyzsBQe3AvxjI`>}`>GIdG z?nk{Hoh+dxC0S6MQ>$053xb!aq-TxXVV@wP-c>)xVby+;jDc8`(V1vr-gT%$l!CS^ zAHLl9>*Hst9p%GmX=z2ZEhww)^Kl-(rBoveNR4ZAic5**o?&yqIgrC;MecTwjR|MR zHFb97BXzxvIwO$FBnESs2!ILB#KaJH*wDn>6Ne+>j}q~w2ayX7SHCyw@V^WZYz8YN z;lB;-sRRLH(A?n-f|vZ=r>V@PCV9Il)Xg!{tU1 zjg5oZ5fSXj7$Y7loE5=jumU&a#v9DoGcYog?avBkNBR{TWFvO4w{fA?S_P#239++z Awg3PC literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/nodes_rtl.16.disabled.png b/app/ui/style/olive-light/png/nodes_rtl.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..5012d6c49bf361eaca170a8ba05fe2d28a0a2f26 GIT binary patch literal 578 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0v++8z|r4;0$y>EaloalSQhH(!&3z#LmY zVNQ+f6Ff|^9?JjtU!Ull+}dg)5|F`^Tv$<5)EWIY*{FYwLIAt6HiN*XYl;nX6d4>G zM4C9RuVh%zvFvjH5xOMlieJpb&es@+i;U%t6#d^U;9FX-7>(CzhXmFt#0HH?gtzyGV} z+LgyqH+iYo+nN35#}$ksbGK{&`A4M0HKN3^v?L?Hh`~3ps3bE_A*i%CJHKrE=`%Bd z@~R;Dl*E!$tK_0oAjM#0U}U6gV5nhUQ z1y=g{$@#gt`FX{9<(b);xv43ci6G_rAfA3mVqSWFd}eZfUfg_*2|(=(p00i_>zopr E09#|e7ytkO literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/nodes_rtl.32.disabled.png b/app/ui/style/olive-light/png/nodes_rtl.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..1ab8a3645b69deab3a423df21da2496de7f54377 GIT binary patch literal 732 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=pPJt(A~fq~K6)5S5wNo5jCV)I$Yn#J^PQ_n@E?R(14v%i^V%fK#H z8vEk5$e~r9+YCOlV?aAJA3{Pjvavu<1<>{~A$I@STZa=e2)A2PT z^-Sw}dyoJ9t2Q;s^7gN$Wp6@~n5MrlKN`Ydn^1f-ulB%+xeQMXBp4XA;|?sEP;Viq zps-`Q#H`hEs(zoY`A@jV&ctz|=jZ3_-+G$n6HWZDF+Eb>EAhi$oo##8_qWqIZv?+g z$>^CAoIiJ3)d82v9_E-E>goCVx&lmxW-pt_;B~NIf9#A;GSh4>aqKWI;%}Z+r#o$P zu0qD9<^?I8Qy;tgu5feS*K+(+=*i}rd>;2VUx_`qWTDOe&8=)7ST_duJZb223!42a z!|5wOL&%BhyY;z+!hx>04t{0S4lI(pYS4EC7}6pot`Q}Ur6n2pMGU@)MJ1Ve3PGjC z+4*JLPoJ3ylvf4GrzDo7S|t~y0x1R~10y3{14CUS%Mb$tD`PV&V-sy4!@xi&w51hA zLvDUbW?Cg~4apofmOu@XARB`7(@M${i&7cN%ggmL^RkPR6AM!H@{7`Ezq647Dl&#B zDlJM*WymNgDX`MlPtMQH&Ce^=E6>c%%uP+nOav*{2l4bn67$mY<1>@<^Wx@fOaN+U N@O1TaS?83{1OPd93RD09 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/nodes_rtl.64.disabled.png b/app/ui/style/olive-light/png/nodes_rtl.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..e79887b2e5e666628a410ebb1a9cd032850e81a3 GIT binary patch literal 961 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/nodes_ttb.32.disabled.png b/app/ui/style/olive-light/png/nodes_ttb.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..a0c0f86d77aebaaf6e551a39dbae15f858cffa1f GIT binary patch literal 665 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=osAT&jifq{|3)5S5w{QL|XQz zUsR}ED6)+&P_XCE|M>?SZU|(y=b4-m=?rKebY3g@V(Wry+T-_|CD_Cnv=E9FOsP>JVyjXZ5S@(2eiq z!&${QAq@_sMZdRFA=%3|Zh7nOJU-XvTOYTl4qa(yYos}B`Po!d+sTwm_rTt1Ig z;&^USr{X<7*_aEC%m4WPUhKHa+0H&wp!~%1bh)4#i5m9F0%a1X*u5uyfA?X*>IAjy zKd(<0rZgX3`^+}`a%r{kFRqpExl1f>JutVB{xjY2)o-TX61flVuXSToUHvyN>$Zv= zU|?lzW@T)u4P+P?Y*FerMA49&pOTqYiCe?bdh=eO21$?& z!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NC6cYLll)3C8siEl#~=$>FX!w=jP_; v73-B}W@qN6rer39lG|=Q$@zJ4^ED;_wKI6S`njxgN@xNAbv*Ho literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/nodes_ttb.64.disabled.png b/app/ui/style/olive-light/png/nodes_ttb.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..da2827cf45522cfd8784aced4f5c48083f72fa4a GIT binary patch literal 856 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@eI4}_*jGB7Y6_jGX#$+-7+hGX_22Z7f6 z@0NMFUYaboq>*dy*Z=>gI8AI?+tgmQVPcnt=d$({uN{qzZ&$oJ=Q`!)^!K(`WZ8ba zPklB0&An7L)$11`F729ie%qcUey3&n_8j?5pX2IO#sjH~lpBisbGn00Gc|a+ zx-(p0zP|A4CI$ziG=@FaYp02BzrRAsfu(~%P=U#%;g^-((Z4y%!&dL>yMD=7?YY&K zC^3drmhX8Od>rS;^oN~hbckD`ec5sOOX)WyBXeJ4k0 zue6_;Yq;}@rQGEY0&ADnT~eu9p9;g%7iVmDx)z%= z8{D6{wBEh>x!(65YrL8NpVPTtUe9zPeZq=A+zcg>8GpO~ahifCh9{CQ{&K%(%4Dnh z@5B(vrugsZ_Ju0V0{@d3?3xY!cU3l=RyebtX@O;P!2ea9D>Q+WR>Nz_mfzv$THblF zJ^bhYxnWJ2+07Yor47p-UM>v#P^We4P3STgWw+Secb953Gj88m%F4K9r#ClKM)7np zmV((`kYM2uU^Ka2*u8s;LW5a(rXvGbwHy0My|*?0MZLrJZ-~7U>r$g~9T>|ZC9V-A zj-@3T`9%!AiA5!uc?vNS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;3@R#dh97q^Ffh;eba4!+xb^mKZ2n~f5w-`# zbJn=NOt{7F9J3&>(PY^_hJXM26AU;xO)jY1^6gpFR_6Wa?uXLE?O)S=+h+cW3k{tl zXJ2}0$xnkoukDA|8TVXyGvV9L3tA3_yi-deeeRhiF}B%SU2}af$*cC;Pc<=zXGR}A z?#^q;vlGm{c<=H1%TWpk9!T2u28FIGOBUR*_T=xtS^h3p&iloEIm%e@ihdL4xHF<00V=b`IYQObr`YcJ{ZL$lrM$m_LW}UVY3D z_6%44AKn5B#J8|1h&XmL91=Le9I$;~uB^+fOO83n<@ZGS1*N%UVW-pwh3YUk`o?%uiHt7c}r zGl}5>>jGxx2OZa$x>zpkzu@c6{Kvsumgj)Ir;B_8qsgvcT8#`pv=?MqT^F}GoX5BD zI8*PkOxwNx|Kx?wjF{HQGC?4lzhI}n!`n6U+_FQ%&1<^zKFne`99QYXI`P{#$1_&v zKkYho>eziJ+ao{z_Jyptt+Z(l`aduC>b!d?9+D; zY7|uXQ_EPyQNZr(#L-~wWW=$cx=D!R!0tm8Og}a<%wphcP!nKiP!(WoP!V8iP!=dD zi%9=-r2oL_?f>J77kls1I<_rcsN*H$!bPIFuNN1YY>Bbl^pRn|B-f@G%S(a`zo#nC zWmH(yypCDo|I-%&4e!309hk<_pvN$m7KE(*buN2%^T+>Q*6@2UykNTE2_g!a1wMUQ z{ zuqo$_OJ=c;|t$iHD141^VAEf7i?Z&dBdvc-8G)63ZG_Jb&<~^HP79 zPhsYqvtQB-pG`8;iFw!S`(C>J?%Wr5v+pg`ExBkn+dqBzvD}8#I}cy~x|&jV+Vc6k z=Hk;_<~EPJ_xdki`-9WJbH4TFH0iMQ+RMX$xmTpbHKN3^v?L?Hh`~3ps3bEFm;#Hl z^UJoMJ~I<2uL_b+Ni0dVN-jzTQVd20Mn<{@hPp2D?NY%?PN}v7CMhd9N7^0}O zC^?lOqokz3N?$)YKQ}i&uUM}?~aJze1pYWzhmo}N*wO4 z=rNHJ*N76w(vpn)A_m{YqLR!!g`m>n?EJFrr_am;%BzCpQxZ#3t&)pUffR$0fsv7} zfuXLEWr%@+m9ZHRX#*Js2Cb*2u0hd|o1c=IR*74~m+88on3V+C5S*V@Ql40p%1~Zj zu9umYU7Va)kgAtols@~NjTBIkF+@>mQF1CnMoCG5mA-y*er|4lUa?+zW_D(7YD#7z jNVz_Uryr7-m!2P=nVg>&H(z4{P& literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/open.32.disabled.png b/app/ui/style/olive-light/png/open.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..c98e4470115f53bddbb40d25442be9aefbb83ab4 GIT binary patch literal 716 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=nXXZUd!0|TSAr;B5V$MLsQ4*D?}3bgH) z3@a1WH(^h|czjS8VzL}ZJMYB4kFFbWg z+H-!pi^|t4yfa$o7}4F-lgS*m*#`n&|p7ijNfToF@S{d>|b@l_SuZCDuc4zT3#E_jt+x2^uy+Jd-H z&WYg)JH@84bgYuSSk*hJ+vBJ8f+z1L-c6dy!tnOm{hn3qYZ5s6j=pO0<5}Th(cJRq zA7edZ!KF^S>BeW@e-2})eO=r*OLdFw-v{Tknspn#b?OYfWUr{Ch zS@eLopF@&wv*^z0z>pOwag8W(EG@~%FJkabEGo&&QwS<8&dx8}e)`Nzpu8$bJ|(dv z)hf9t6-Y4{85kMq8W`#tS%w%GSQ(oEkv5QFV9KYUcx%nxXX_dG&e3`B*0MsA} zvLQG>t)x7$D3zhSyj(9cFS|H7u^?41zbJk7I~ysWB4dc6(xT*4hK!Pu0xNy}NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@dd;tW6TVqjpr=;`7Zl5y|tOmBZCLxF~L zF|)t}4K93pg!r?3Y^px||Ig5`cC13UG3BukuT-hIY<|%7Yi}hm8HdDsQ4Z=W>Cyc4f!=Wuq-J;}odzRf;*F7BF)p3oyEmo(F_Kh87FeLi_{ zhxJLbgLi-K+EQ%BG&@4dQL3RgKwo~*y0u@HhqcU(KHf3mJHut}B!(X$4i$Z}X+5?mxJje^*-eS3_CH`)B8Bb(L*AXvZ{#@xwVL33nxqDiH(o z$vjQr5?%@wX-@Sl??c{nD+F-=5pX$Wcx-Fg&lQKc85m9&y!6wv@7x~Gn=G|t@zv{I zr#8+jT=kNDOV8)y(vuhj7?>OwI2afe7+4q>3tx8q{(p;kzbHfT%hnvR-1ofkOBr*- zN*VrMTFdEesh_~-oiQu?5`)3T=MLRR))lVg)BUTvb>Aem3v(ZYJbJa!#b{2Mx^(=} zSUZLfJgqKTZCjNX7#KuKTq8;xOG`5Hix_+pi%K%{6oN{Nv-8WgpFT4aD6a~VPf09E zwMs5Z1yT$~21Z7@28OyumLUcPR>o#Pqzz;k7_^?6x&}oN&PEET$QYuiv?w{1A)}NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;3@WOcW(ReEnx=ZXIEGZ*dOLTcpR}Wh>wTTJ zq!yRNqrAQ<;$olJpZq^vb3iOw!BI5DVTnR;#5uoLB9fDzo}DxG+dQ!uJKz7veDLt< z4Ihq;DNWy-e(U9avO03dl3li#YyHOy{hP%$?3F6F{I%|9_?;`f-`&rP>f4ClE;K2rSReTLB!8p# zAT5aAl= zF#F{?v!`08WDOQiuD7cECAon`rGd{unX!anmgnUM`L&?MJ|XAXZ$Fz>brx-M}ug_zc+YG zMO&`$?(^re`Y*P_{+ON3t=<0%CETj{`!{~C_1bVq=R*It6#sjxuQ}JVUtr9DIYJ6# zEyx~tFid2yV(4X|lajNKSbcUmCY{@U_^&>arl)xJBs z7Bz@%KOCz6|IFLsqvvI6&%K^smOQ;gaK7e#>9)%$jA{A%^W**0qg$u`Xa5qWSGy(t zp?i(Sbp4hHt9k~_KP@xniUn;0rdg2^*N76w(vpn)A_m{YqLR!!g`m>n?EJFrr_am; z%BzCpQxZ#3t&)pUffR$0fsv7}fuXLEWr%@+m9d$XvAH&oVPK%Vcb)`_hTQy=%(P0} z8iF3EEdgqf1lbUrpH@mmtT}V`<;yxP?0f2QE5?fDnmv| zNr9EVesX?pZhl^|UU_DAW^QUqW+F(rK8U9ul9-pCAD@|=pBFb@V**e+gQu&X%Q~lo FCIEUyp@;wg literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/paste.16.disabled.png b/app/ui/style/olive-light/png/paste.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..286803908615469e4e8e689f6cd9669211e94272 GIT binary patch literal 563 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0v+i8K7T3n;Y6)5S4Fk4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=pFX?9QtDD=$J#WBR=_}eLl+=mPVTK9L{ z;1YGTifr%b{{R2_j+>6#A1!EF+x+}ORPSDei$@olo4&tSTkEdyA$jJyEj_8eODeQC z-<OUnST6gEki>ZPo(0CDhK`-jQ^Pm?l+%FyRWu` z_5ZJD3}+g(GWHm?$4}3H#mBnL>{@WR)fJ$RMM_*FN*qf|GV+TUd=raGGV>IIN{h4e z%eJ3BGZQGU3X)GrEJ?LWE=mPb3`Pb&`L+CYYZf%4vY5-1vS z^HVa@DsgKFdZ4xhs6i5BLvVgtNqJ&XDnogBxn5>oc5!lIL8@MUQTpt6Hc~)E#t=oN zMaiiQ86_nJR{HwM`MJ6IdBu9=nc11SsVSL>Am#cXo_NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@ddHO&s{FfcHRd%8G=WZZi@V=fuVnvfBA!LeoJmLW@Nj*yZ*0y z`RVx#DR3#|G>ua9`r5YF|Fwub$sfd7{-F?w(n7x@FTrXVnh2<^7{=Vd;Y8nhhvd6n3?&rGa z`#iFma!c#KJ22ElN?apK97{_w@{1UJ6N^eR^Av(gi?j2~wx2#T6DY3=l21u2NwrEY zN(E93Mg~Skx(0^2MwTH423E#qR>tPqK!$;V^4@t8C>nC}Q!>*kacc;Aptc04K@wy` zaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$Qb0w<5Jja$$*Bw(B_#z``ufTFxw-jy u#d_tL*_pYiDVd2N<@z9=en?_odVYLna(-Uie2ob}?F^o-elF{r5}E*CAMeuu literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/pause.128.disabled.png b/app/ui/style/olive-light/png/pause.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..b35b3a51eb01436b49d8979864aed04a7a5f8dd8 GIT binary patch literal 844 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;3@U0H>?cfPU|`(s>EaktaqI1!vtCV(GOZsa zjalL+D_m#|*pYSdZ@kxSu5zsw4$dTtyA6+i8y*h+`RCf-{^gS|3OX1^<2#X!?%ac*4-=LuWbIBL4WW1;}*VK?bLKvAALRXtnJffr`PYV=HuU5 zU-PBb{CCXtA8WmyrpYg;$_g-U5nyZomv;E+yldIj7V^h3FVD7^%fIr@8|EdRpYvn6 zGM#`56?(X1r=B`%cVNMVP>|G?-Fs?6wakAr{BL2tz?#A5AiltoA-3TeLkZ(7`U_mE zYPj+0<*d`;ON%!1PxzL)4&*n59I%sZ9b!!DTeRACEGjym`FFylX9e}rZoK`|ND z&*A&ey2>@@%hB%JS&q-z-;S1!IXNaz}0+ z-OshXt^44!dA{+NnKhz$MP7RCwFH_hQsNp>;#gXekzd5%n^;tmnWqp`TAZCbP0 Hl+XkKw8WB; literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/pause.32.disabled.png b/app/ui/style/olive-light/png/pause.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..9e3956a9660fe45046c1d3daa664376fbd1754a0 GIT binary patch literal 496 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=pFX?9QtC=~DM;uzv_{B4gRUxR`G3%l@( z+QuLM-8=O+v_H~W638#4t(mv#?%A{hKjh2TpMDc&!{EB@?~AqKmk*1-7TnYQH&j&M zii{M$>jz2U83$Mvb8VVc{P?4o$D%6{Dqq8sW&F1Mm(tL6QSSp08-nxGO3D+9QW?t2%k?tzvWt@w3sUv+ zi_&MmvylQSGKMHBElN&h$S5f(u+rC0&d<%w&nwm|&&NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@e|HrP*?1{B)p>EalYaqsO7L%wDM9=Akm zg(Jr}mH00FmR}k@y^DFvO)Hj5rdfe0+CkIzZU3eIE6t^&1==hKW?6`pkUx# z=_g5!eG^{Sx&ciQDRGS`aV#y#$S-2>O)M(O%u@&|EzZs_+kX1YOrX3fNIoU8B-JXp zC>2OC7#SED=^7a78d-)I7+4vbSs7bs0~rPeSHHgdh@v4kKP5A*61RpWE5d*g!ypN= zAviy+q&%@Gm7%=6TrV>(yEr+qAXP8FD1G)j8!4b7V~C>CqU2PDjFOT9D}DXs{M_99 vykfob%OA7xsG##y#Bw)T4Vs~?^7+|Tt~_jO(8`SG0lITRhq zaUi*o0Kg$MguN9*&3qB?*e+goE(imB5-WlQ&`_|z%D2V1hahBY1VEM-=GzZ2hqW{l z0O@pqX9)m|Vt_?boq@Xn6L5RNIBbC0{H1;vBT7TI%K@ml^Mw?QS%g^AP7xXrZ1)7A z!ZNQ5UlyJKu*nK#vtly`&APZKHfs?93E%rBhS0t&L1+w(g#s;BP~>zxK|W)!ugaCG5>nLc>8v(#Mq? zbIlBQfZSWGS-;U?jG42rBYUusT1iA=&-V@PKY1joe`rzDHC;Hj!y_#}K0=kouWvL? z+Napna)aC}vZrl5vpzg>@r*fo4RN62H{yu3Qx{GY{k7hXv@P^y6*8i*v0`JoU?;_m4?$WGEA8 zHUN9}Sp&&3AE0<<_18@EN=Sd&Vh>?{yvyp-j04_ta&jOZ6`W&AJ#Ap%DOu+T3rt#O z%rNPiNh@)M_GIO-9*RubDqK&x-AxiC=$X>#PcuI;o3!^`AxNnl)`G}P-dTqGS~N+v zb^#a+HU;>Jr{rH9%d40#!a>tLRem}Np#&#)Hk_^oTP2P-Hy+$aBg?pES8W&U1bd10kU10UYMduhDO2D!b`>)XL5-g@64VaMNGjWKWf z6wEjec_WOKS2?(sv8pKiMBVFbLNCwq1*N=sl<6C!?oh^Qw0YA%L5%Yd7kRSsY7s7c zn`#_iT>rYBNRPLaIwn+&PCC-h%-nL0bKYG9b4&m5H}&S8&3mhU{MKzUO8ps22_EAvQHu}6GYfEHNH-jZUhGQ&N{WJ0a*|9FLtX4aE@Y(3i#ty4{4FLu! zG6KjAA%DU56IImG7Pa2%-Py1&TK+Gt+u+{p(zqF$OK?&I^AxOfg$R{F1Yf2Qr+REn zmrKx$=I)+TnC>~RC-N0ShCn970Q~5FeyixKSNVM&OQ$pZ*E0Oqdt(PW{m#sk<()tZ znke48@BION%{J_Z0oVB(V$i(`C0`~4rBdlDPL;?7e5ueEl_ix-ZE(X({{NfOWdb3H z6bdPWMiZbZDQK$PS1Fc=Q-q0P{=A(w&uFpy)FgDbSb(O+m#rwo;t(1f$*$j+@ZEn+ C2osk8 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/play.16.disabled.png b/app/ui/style/olive-light/png/play.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..2f5ce300f8d031725a5bfbcca9983e92fbea3878 GIT binary patch literal 540 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0v++h9Lo8c?X))5S4F<9u?$0uh755?VTU z-pv2^An?HQ!z#)r4*q-jx;})}r$9`d`Eb3UUu>mZ43|Q~Tu*Puwno8jQ6{4RHf84d z3hO^C|6adw_5l$1F#r8}D?M!k25vLQWBxwng<1)J{{O%EcRA1hLd_pP-=90IAF(#! z&$s#AAJ1-Q*Z=>hpvP>pjJhKGWOjzFehLP=tQ44l&JrncjVN&}Ey>6)V(?8YD#^@K z2r4bk&M(`3`pitAyeddOC9x#cD!C{XNHG{07#Zmr80s2Xh8P%F8Jk%dTWA9r1_oEZ zzWa!xAvZrIGp!Q0h9xV)fI-e639=zLKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IX zpdw?4qSB(|RECU_k^(Dz{p9@I-2A*^z4FZL%-qzJ%tVlKeGpGSBrz{NKRz=#KQC^+ R#sr{t22WQ%mvv4FO#l(ov-AJ} literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/play.32.disabled.png b/app/ui/style/olive-light/png/play.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..848be3850094abbf19075640680216507c7722e3 GIT binary patch literal 663 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=pR!G6Lt1_nkpPZ!4!kK=Erob_We6lp!L zE6{t0VUmKOit%Bmvo zhJ?BYngYMd3buQls<)^;_VB^R9SV=9&YNK|-J#+4-iNH$uNHBnoO0R!rGBLq>!ejG z8*Q>yJDj-vk2m9XGEjnbw!+2a@b+W%7g$~~C@lVd`gOmIdCDRShpCVE%zvf!e}aAz zqsM&r6)V(?8YD#^@K2r4bk&M(`3`pitAyeddOC9x#cD!C{X zNHG{07#Zmr80s2Xh8P%F8Jk%dTWA9r1_oEZzWa!xAvZrIGp!Q0h9xV)fU(UW39=zL zKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IXpdw?4qSB(|RECU_k^(Dz{p9@I-2A*^ tz4FZL%-qzJ%tVlKeGpGSBrz{NKRz=#KQC^+#sr{t22WQ%mvv4FO#l$z?Y#g1 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/play.64.disabled.png b/app/ui/style/olive-light/png/play.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..0a60ea5ce41a7b928a42a2dbc2141b5b70cdd580 GIT binary patch literal 849 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@e|HrP*?#=yXMz|+MsB;(%O87KV?8wj-h z_w07qGDSsal~zEIg~G-;7608Ium;?2S*jEC(v6$-5)XSzNSO6R+4w*5YwMq!H=gO4 zbl?;SZ16a?<@wUmRYhGZi*HMc@?E&|^q7;wd(D0GS2JsL`k#L|z4fZ<{rNoixR@jE zAO5s`snNC=DLXNi2d(?3bOwCBW_FC3b!mYM+rPsHw|-G6;b!>3zSf8R?1PY1{aY9q zc-Gm=v}zv%dO_5RZ~NzVZh5D2_eTQrw(qihw>%B#-voP0zEy0D3_8~B5Bu(9#82rG zs?oY$5-^>Sp>kPsQp20ej+PGBUM^r{IB>k=h6yKwUZVXCQw|1(D;ze985)Akc^bMB z8N{qim@ix@Vaq$qRPuP?iJ)s+&Cgo)RVU5YYtY>OXl73!GXrD!zo#>IFn(bOIP|tc z!t=K%^MxCk+v7L8Xs{?eo4rEYu-b%i&yuy>p5F{y8LsHNu2u10!o)DESjMwtj~>Iz zzUvGV);^xfobvX^9EK?$*3Ww*JKvnyf5qR3bP0l+XkKUtc}a literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/plus.128.disabled.png b/app/ui/style/olive-light/png/plus.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..811ab652d9a77b1196489d7debe3705b162f41bc GIT binary patch literal 1266 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;3@Yl!EfxSpm=ir+978H@y`Afuf6GCjExm_> zS7}q{sx7`u79qAzXE^`=zp?#Kv({7Xsh7e&1}$3V@bOE)*1a2!sin1--g_?5|6zB3 zYI6QDZb6`7KyZH2tY_!e@3>~MZtltOi>D7*?S9){A$46 z^_t7fwZ|6Ed~I^hzww9Z-o?#ZXG%A<$b&Vrm3>B$et`cDe8A#TVuifDH{2@+pXKD3Ol_0v(#xT)75z# z9*32##;mx-%{c9S9rvXba~RgWUkBs`W%wUmwO3%ndWVKGhFk>)>jpD{1+os(92fW& z@UmpEUtnX}!kod(c#CmMBg0#UTey^|rO%GpKhsSnsQJ~qf7#ogHUvdoidp7Z^f_Wu z!;X`4|J;?Wb`kQ)tFwu8sBzjDX8$rcapK7b#bsyP%ywEVD~@mX-}#HrnDxl=Ej!oe z-_P7?yxZScFY~VQxvST=e=n(WkLFxaD!TiIw@b(FXpR?cmlmzM@G5fmxiw5#$8W7X z-Lkf}{adiYCBE2I46ieEnDm;HYHO?gA73&GIz9jS*Q^+Z|4JrXOXQ+h{#@~kvD&uV zvb!OiyFUN_HU9r8fgT68UTD&4IkR5(`IfKI4nl7)EKSOhUc+?Bi*tj#-|B{oQ|9hJ zyxlm>`L*{<$@5GvcSwmliAmnvo@T@6FFtX?W^?m0jRcz=_q`Y<&U7vP^mpQmJcEPBT&Xlrqca}cOg*_gI;;X(n zJ8V4qd9Lo(_jzy6snlyTUDi*J?K;PD$42ah?cVd(?>?N$pfoRFpPTYS&vmWT2d>AHHa_nc< z&$xT*q47_PKhLcCgZMM_pP0G+H#u|C!>C5je)H$~+W(3iN;d8Iww6~Ek{|y6;#gXekzd5%n^;tmnWqp`TAZC9gP2NC6cYLll)3C8siEl#~=$>FX!w=jP_;73-B} rW@qN6rer39lG|=Q$@zJ4^ED;_wKI6S`njxgN@xNAS^5UA literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/plus.16.disabled.png b/app/ui/style/olive-light/png/plus.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..69c64d0b0bbfe6e687bd4d479108e4b2a9ce2b70 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0v+KW?!AD8kV1>EaloaenQ@vs{N9cv|*r z{3u=#mgCR0?f1X)TfQXtYejHJ?K#rDAu@0q`*VR4DKk7dR1^xs#hdIGH_p2CbK#Mf zYVzy8AMjObwq)Qw?b?*@!NoEm>oku;*ev%}>cptHiB=>3-}_paw~h4Z-Bu8ABA67A2=LWR#Q?Sn2C0=jZ0;=N0RfXJ%*Srlw>jf|Tonc={oUdFlD_ YnaTNiaq~4M0JSrCy85}Sb4q9e0LPfOj{pDw literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/plus.32.disabled.png b/app/ui/style/olive-light/png/plus.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..4c0fb76138a453ae7e814cd06b1d619965b37011 GIT binary patch literal 585 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=ou++qPxgkguLi(`n#@wZbQ`I-y_T>pz$ zF!~lSztr9H|C05N6(yRsj3;(zIx1bhkg&+`&(-)pm6^-!H9x#wB+Iz?f&=r53%3Hj zo(h(o6=hhUbj;UFQ}V#m-QG+KA__ele61Md8Cuk&TurBMd>*wzeg4kZ9A|uUoL+BR z`QWm{hV|hWPNrY4EOQR$6BzWkg`F5h-?D_EwU+q_*|^Xp$F*#?UR@r9ZU zpC%{kFIW2S^o*^E?S zH00)|WTsW(*1&W>_9sw-B*=!~{Irtt#G+J&^73-M%)IR4^^@~+bMy0x^~y7|Gjmf@G7~|{^+7!Ski@+7{P@h|{JgmN8WVup O89ZJ6T-G@yGywn?J;av) literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/plus.64.disabled.png b/app/ui/style/olive-light/png/plus.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..f503106f2cfd12bf5a1916858de906f68dfe54e6 GIT binary patch literal 819 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@e|k6SDNiZCwnba4#Hxc7GE-K;|n0Qagp4sWeR&;K<@1b*P zjAF0rS0|UQeJsQB^$`2c%!LbO7#N?OyK!5Bb%%DetwpEPg1GxNU6XxxuE;&@t}8bo zY_C=H%0F>S)FZO;jxq8YVvmvnOfJd5vS54P1YXftp z1xqs+&fPd5!7{b*Q^;>M@m1e)uXfi+w(#c*yklXQ7Fe2ge1g*@@psmXlK*sNTGa4w ze=|=s7>uVa7ef4+Sp*WIB>6l(y05POvP`tQwCpeAiU&P>>SX7dkrw~+HoSk2`{q&icKzUV=d`e`$NuNstY}`DrEP ziAAXl<>lpinR(g8$%zH2dih1^v)|cB0TmfT6qObwr!r)eloVL$>nG>u=H}-W>y>9_ qXXd7+WF~@?>w|duA&GhE`SF>_`FU~kH6{SHGkCiCxvXL zTjaeP_p0thUBcy@CYf=!Q%bnppL74|{&COwexJ|x`~7@A=Q+=Fp7WgZ_3_Zr+N=ct z(4l&g{UH>tB?eG=h2Qr*4%mlUMUs86j-#o~xFLWebCIlW#TkA8Hj{XhgTq^IjcHcyC%aKO?`ok6kd*$?|Uh-Dvb6uG7`}=c<-j z(cutDYfr)Lj<%~!&PN0K)0D}_)$aLM@*N2#dFil8=cB{Qf!nU?%l$WsTZN-W_1{01r*z8Z*ab-QMp5GR{%<)0bB5*LK!%7KCRiVae zsjjI@(JGNT2wl{>kcL1p(#_#=Vw)DM#4zHRkoRm84lhzuka4{Wk?=>+>87wWVp|Rf zG8}IKEW`1K!iit^PON&i+Q2R2A_JCUS54YK1-)^~ve;9jfzj6+#O+vKhfrdgs3%{9z4_upLNZ_M4JKMhzLp&vzS!SwQ6U^!GT4a) zz|XtEUOu0owCTbTM(kHH<&>$uMN^->uVMDNHNzesEHbP`A-2lKI~t!0BA0g(%5OSi z`zh04{adpi*&qLYj+7053M(mk@o=fZZ{bR_YlE)E*cau_-f&sfg_D%K-b`igR48;v zd1JA(siJP=R6ja%RNs10@|~dW%d7zpePKXNqB?KG^h8G?Apf#q&t?dIb4}7dwzgZ%QVQNe;dm_ z>Byk-bgvYvC>!W^(C1N(@Z9;lI8Gv<(Gz)0Hr}6~6wgVP^gXYDc=I(rn$Ba8q7oSp z03v}%+(oe8MRX1%5J(PtNV^HvP(dIl$7>7!V_Y@L-~bs6*LDct#P9_4 zLZ47BI_Sa`C4rN literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/prev.16.disabled.png b/app/ui/style/olive-light/png/prev.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..ffe37fa69c5bdf25780e25e54a3c647690f5a839 GIT binary patch literal 550 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0v+KW?!AD8ew+)5S4F<9u?$0-=Dk;56rF zr;Ao?aEJ(awVsce`LHEN^qiUA5BHy#|DI?11QCM`ht59wxBS!m=ElZG;iD`P0TX^` zA3xBc)3n5)ZEEPt{S3QaPY~IV@#p!W5<6kV|B9MFikm+&$Fcg?-QR!m!-R+SaoTcw z684??!92U^KF@x|p55{LV-sr*A2{%XH$UKXVVALRk=;fH26YdGuOT)E+JFueDRGS` zaV#y#$S-2>O)M(O%u@&|EzZs_+kX1YOrX3fNIoU8B-JXpC>2OC7#SED=^7a78d-)I z7+4vbSs7bu0~rPe#Z6CLQ8eV{r(~v8;?}@)KlUe3gCxj?;QX|b^2DN4hVt@qz0ADq z;^f4FRK5J7^x5xhq=1TyA&N?il2aKnN=gc>^!1bTb93|aiuKAfvomv3Q!*1l%Jo4! f{gA}G^!)hDk4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=nW-oAGt0|TRor;B5V$MLsQ{QVC(2pqjH zBGoGp=%m!u*!t~vz2ub)gDt)R)e8SOB}|vf>h-?KY7e`n{NCW??781hpOX{2aXM;= z^wR+L2bD8K`Bx`rT`1ahp}MsBS)ud-F}3}N)3+)gm1RqoVBN^@;IgmjQ&Xe){GV5H zdoD$zsoz@49ZE!JB+Dxcm}h%0^(2iIliTlsJ}_WaJky_$C&WWacRZl@@2`mu)|N zW+qTx6(paMSdwa$T$Bo=7>o>zjC2hQb&V`T3=FJ{&8$oew1Er*gE#kA_M>RX%}>cp ztHiBgZj+!fP=h4MhT#0PlJdl&REF~Ma=pyF?Be9af>gcyqV(DCY@~pSj3J6ji;`0r zGD=Dctn~Gh^K*0a^NRJ#GqW>uQ&Tb%LCW<(JpGWwy!8C|%;fyMxcM3rfZ7>6UHx3v IIVCg!00Kqt_5c6? literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/prev.64.disabled.png b/app/ui/style/olive-light/png/prev.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..0433014b420e12a112db6f1e1e613918fcc39639 GIT binary patch literal 901 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/record.128.disabled.png b/app/ui/style/olive-light/png/record.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..e6391580a95436b3365d702303511d3432153260 GIT binary patch literal 1362 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/redo.128.disabled.png b/app/ui/style/olive-light/png/redo.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..6f0e87cc43116065554db9cd493cb160c3cd3afb GIT binary patch literal 1454 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;3@TbXJMZiTS}5!3;uunK>+S5!a4AEPw)ebU zCmI^Ox9S;$^n3rk^8dg4t_yuTzJ4jtdK49@_V>cAs1rU;bES zC*vP(AMx*}>ifqvp3VSfCL9*GbQ>(z&A>&Hc;(exTnRxumpHu~L$waey)yA0SMERt- z7WgkIgV*&PId@jGh*+pEFxDtNGN~}PY8%sY7KW0l$C@iTo@*2Y z9Js;Nbw2RH5{B7aGNK9ojhmTrGz%gcWLf>VH!M6*$oPe8j<~~G1y-gE(Irj{OPi)} zEC`+;#TddBq|)H#xQZn}=7`zitTWqXQVPXdO5VPEq@3=)oRix^uCq8azJyXUT6LdHbLP+uF4! zzuVmVBhXcV{oj(`IqG#scvgh-lw~hvJ^OS+5!(sV!}9N)qVJu#b$kE`cdEav(TA}75VB?w=S|v ztYwV!{XM(w=&$(Gm;3AvWbj_#I1pX^akbpn7tB5981BkPX*Yzt-sjiAwngPY*q@7n z*JCcX+Dd3u)GEv=!ZBfF=;e$5ee{o0943uLRMf9NULvut~I;noXn7L(nds(oG; zzxu&2GxzS%h)F=-2=ps!*INJJJM!bH;XEfbfp|rQ7hT^MtYUdv*KB3Spm(!(eT~Jf zclld>G5D|NdiS*O^AoR2+$(Y<H7)QfLh`tYcLs#*WOpg;4AnHcogTEo~bR&R2--{t1;MdI8|U4zw<>vcXW zr0}n2`g`ku0ncG{Bvr?B*reOhN&0&*u~}UGMaB?CrA5i9 z3>hUQ1y=g{$@#gt`FX{9<(b);xv43ci6G_rAfA3mVqSWFd}eZfUfg_*2|(=(p00i_ I>zopr01J~>VgLXD literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/redo.16.disabled.png b/app/ui/style/olive-light/png/redo.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..1815a41faebf3c41c1e4ccc3def2a07af9d77991 GIT binary patch literal 550 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0xS+Sz$$FHmTzr;B5V#`&!i&vG>d2)Lc! z8_r?=$X_8MAZyFZzwzoZFVs%xHFg>bKl?)2=QT_>;xN%e?O*l3g)6i8%U*9RiGSF5$|3wYw^6IB z(o&6CtJvmB)y&i5T{b;n=`{^??f%2*#`IN+xRIB8oR3OD*WME{ZYhb8rWEo;$ zU}bD(Wn!caWEdD!JM377q9HdwB{QuOw+1d*1}UHhNstY}`DrEPiAAXl<>lpinR(g8 z$%zH2dih1^v)|c(6d6Mll@=wZGGvsL6j1C& literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/redo.32.disabled.png b/app/ui/style/olive-light/png/redo.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..97668024238b712e4c75ab93461ff0456cb50c11 GIT binary patch literal 690 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=pQv-8eg1_nk&PZ!4!kK=DA`T8Gn5OFz`2Z{25u{QxR*z4F=duEyOa9-?&o*AHDyXGLUY>W zmKHucS+Z5%!BkmK^@HcLYR0@*G0YFDv}XRT6YXa3-t-}S?>jk8p||H>&Iqj!ikLb> z=kCfa#x44lEusv|w9B_SZu!LF?O^Hjx2Hv&rQ*s~*Nq2KEbe(-crTDCuHOGAeA&5G zH|y5@zV&UEF6V*V-h1cDik(Cse10UoBq+(W|8kQ1jVt`KC->S~FU+;;XIr1j-ThYK zLTLfRm8ku1ve+BFuKoU9uy?gAi<|dWh70G9ep|5U{pmN$nvY#RG__=d2HTu#*ZgM6 zuD zO)M(O%u@&|EzZs_+kX1YOrX3fNIoU8B-JXpC>2OC7#SED=^7a78d-)I7+4vbS(zAV z0~rPe)ebwBp=ij>PsvQH#I1o#mO%=rK@wy`aDG}zd16s2LwR|*US?i)adKios$PCk z`s{Z$AVtOyMWsc_sSFtQ44$rjF6*2UngC7B|H}XX literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/redo.64.disabled.png b/app/ui/style/olive-light/png/redo.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..330839857e1cf078c74878ac8f080b1670fc0f96 GIT binary patch literal 908 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@eoc6Q#`%fP_++tbA{B;(%O8L|F{3`E+_ zziiMn+9xDv$RWgI829VHaDBU>MYDiuM@Qa?cI!BS=ht*E=-&OZ=)ElauIDeK%D5P` zz@T1cO8Lq#zP=lBx*0|PKe98)9)8)lZKn$FnTanfeEI%yz2!c!OW!+n&bc7b3*7-VMbRbPE}&3F(b3$#! zAGbaZ6TCfz?doP0xkhi^-6|g^Xf=K3yuo{ZrJm}Zbp9Bl-C{pBxb~kpw=OR%P?J~p zI&-r5J!OOSAD&yy*^;+DIhV6=Pdev{Q+qc@eVKf`n)Qd`;)~&*D#916{B5ql)N}d3 zZYHVi|1^cBAGqQW%t*H9eeOVD$T%P{-SgHLs}O!Fx}w zHKN3^v?L?Hh`~3ps3bE_A*i%CJHKrE=`%Bd@~R;Dl*E!$tK_0oAjM#0U}U6gV5n{y1PAvZrIGp!Q01}<3!DWC>PkPX54X(i=}MX3zs<>h*r zdD+Fui3O>8`9jf|Ton gc={oUdFlD_naTNiaq~4M0JSrCy85}Sb4q9e053aRH~;_u literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/rew.128.disabled.png b/app/ui/style/olive-light/png/rew.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..2b70595954cc14a72c6f2969cd7d1a217083f44e GIT binary patch literal 1446 zcmZ`(doM?G|T>+{bSGWIs3=^KHu{`&vV|tzBj|`7+yooKn(z( z;pXb%jUZ>OR1}d;w0(dzCqTD`-fcZEWLb-WxSMR`Ca%=lo90=iej-?6oU<$}XClRbAjvtPiIA z+J8$dGISJ+P1NoD`q%aI(2p;_HVIDNtTS8@k#zqMS2(rea~^hqxKjrfVcYs~t$AsQ%2@ww6Fa4Pcjc0bLa#J4brV6&Ah{S!^0yzgL%U+`JxGi&8P#b? zdA_J$+?&KRj`ekKTh#5TFkj|BiannCVp02Df8E9BqleU|$tNF%%o!;;NcecI={iHS zSMvx}z7@hn!9PMuMA#E*C&DNQ7Y#>3I1-G9+DY(E2p0pBARHNXhuX=oA(Tdu^Avu1 z`-P-w`2|%x=Y=-QJLPM@WokiUpp4nF>=oBYgv>bxRq8@7vbV=5z)|PeGLATmCEzpd_~ptN_qgt5&WL7?J}alAW~Hy_~`urp^+* zcamD(nIYBsB>^e_8R6Pj1xm64&Bo@3OQhyb6a>a%%QnPa*Xxls%0KyN1=dECve9a$^MWOOv`aYX2lR$#>RPCg`j9Rx)lrW>)S%idJRP9IcA4&=xlT8y;5X;fUIY5Door#JhLYkXzh&o~0#{^c8E_N62! zQP$fv@!g`O{YN;(?ZS*~FrsG&kbl%}^G4 zrK)iXTX}*fB`U^+?+~}Ec)nRfS9cRHpS5i z;UJ31q}iiT1S*+Kr7+A{L=ur49!3mZv!m7+$~Tk}Nj*&@P$|JTcI6^*;D$TqQhqoj Fvo$Jn!lO7%)008g60*^^YbsQQ0ZKd z{bJ7Sb-lZem@YC42`mt1SaI7Yk%^Jv)d}DAdpCVLKd=45&eg)^+*3}q*!|pI#Uysd zIIN{h4e%eJ3BGZQGU3X)GrEJ?LWE=mPb z3`PbzLf+CYYZLAAqqOL{Vu`awk4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=otuJ4UD0|TSHr;B5V$MLsUVzZkKMA#mf zcivhjn(Ur$=nt1Zuqfc5c-kzuZ@nofNFPp{nlSgAF zsOOyea`@cyYYp0lC(p_--1waAT5a$oDa*_F-%d006&dm@PrCDNR&TiQ+?_E}LR77E zzrpP9Ow%UapMBwO-uL?q)6#W}-{mc5X9(!Kb?L~vvQx|tzI|HVP~h*kd&h1!#&>!1 zOScs3I7~lo>8I0o%J|S@r_7z{E2~xgwQsRrc=KFZSa}nFK=v(GhCN$X`5hFhW_a8F zH#BRsI*DC-Ig&A2Jc=30d$Z&T(Ey>$L-|1Y-Pw=1XKy4X<&3_Xz&*N76w(vpn)A_m{Y zqLR!!g`m>n?EJFrr_am;%BzCpQxZ#3t&)pUffR$0fsv7}fuXLEWr%@+m9d$XiIFyt zVPH`0uwxmDhTQy=%(P0}8n|Q`q<|VEK{f>ErFVdQ&MBb@0KuRIs{jB1 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/rew.64.disabled.png b/app/ui/style/olive-light/png/rew.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..f66ae821c164e0b3602846d3e044b0b6df2ce9de GIT binary patch literal 931 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@eo&-K0025J)Wba4#Hxc7EObnz_%f!6*U zz1#&SJZEy|-g+P;_v!!tfI}ryQmoW;L_CZ;*X}8~#jtJ9r*EGYea`qDE$eNUebXTT z2rkr5`^2iY>qo=9t_^zc(zyRKey`MLUj8vKt9|{Q`!TgsKW%LP9`{Uok&~ne=13#WrGWAa}d92OzM*UiN&AuxKT-VRIWq!8(`$KP@C5!*u z+3#xp^gEA*(CJC``;!k$jp&>8VL$JmuScwT|8yU*=2>#s=Bde5EzcifAD(Xht1+WW zQNF)_B9~kHy;DClq&y28&V0W2f{*j3$EIHl3Qv`{P86N+DX>smTjA+q$%7tT9zP`( zgnn9KvM7!9#EBmg3>nsQZrfR%W7?@J}{FKbJO57UOWO1(pYLEok5S*V@Ql40p%1~Zju9umYU7Va)kgAtols@~NjTBIk zF+@>mQF1CnMoCG5mA-y*er|4lUa?+zW_D(7YD#7zNVz_Uryr7-m!2P=nVg>&H(z4{ PP&(jPdM$wN|HCPbGON}dD9Ha zhau-*_keen*^sr#kN9gh8AV6RS7((`32T1$A{Vdb8E(b>9plFpuf8bC55Mf$s(p<( zGc4m5J3~x+@{vX#_R@)!lwZs;e|=N#%YQE$q{=bI*|VGGhaN;Gz#QLMjWGMG6WUra zv=5)uM{kzLPloQ*qlGL~6=G|A$k3oQnvb;DLcJl(Km!-zby{|7$z3512frinoiJ)F z58VV3_?--Q+%ClI56*pMG~}~AC8o%Yy1UcLIG~`#pp9wVXfpEi`=MEPi#$*3xnh#} zYIgxb>-{RJf#oX{EOzGWY?*Q?=flrObf~%urC`i{MfBoSArvtg$nSgJlf=yC-+(wqZIOm8%5cx$Z&6t`cLYAaybd_!-QZe|TV{)p_1Xz}$`#Z6F zfce9ULFSVy>b$4#WdD9UXkQ`0^fcf%!y8E|dqgmD`tCaMRWy~~Yu1)yumh&QU0pCc zgRQAl_a3c5S_ngamUKsXSbd3uLfPJPTD|VJnX@ijWmE+`{7wq(f66A=b-52h5hZ)Y z+Vnms6IM!f^Wk}mOjn^Tzd8_pBx0g_O&{Z$t`5g{2*gQu4bJ6{>r~d2zR2~G+BQ)~ zwB|2FB+oT3S#+2vt|VS5PoPmvZ?J|>Uc%nYiIBc%BwKbIP}F3usLqh?>9)SzQflJo z?BLFr7z~(~8IL?$^%!@VycWyQVen#3iXE$N^nL!H(eLe;L|%P@(yyn`HuV`mQf+bCfqQP|Ldb|-lsJBVD8#l zT;FH4;7f7(=GbjNp2i!3C<^oZ{KB;3-!^g6RZA8~g(!{I`Kr)G75p$O90yHy*c=Mz z{t|3qm5PD3Y|`E29%M9Sm*%D2Z&s;0;LB|Mt*Q^)7YZ$`QyGw8OTXkQY1BwI4QND4 z;h3KxUjMU#kZq;2d8Y!;ng8)i}rzVeKV#am7mgdCiG*BhYFA5*Ypk|M;rkXwF|a zB;`9G%#!B)m!a+OM%}Rbj{M)bVXCK#OEtr$qinlz&BC)oe}uk1;FI#THq1%l&mAoK z(JWh8kl{8=$dTIp9c7v+w?b1JS#J}r5d93zMIN7u=wi_+fe?JzLJ=+1g*Vg*sW=;VJk z@P6HoM-8}*4aWu1A_-f_1&KsL;KlJ1IqY~YK_HANn)$>E747{?Bo=bGa7rYKrx1x8 wL2RrbE|DPN@p-Y_C?0!5PTc5-LF~8~K{$^ih&x&0s6_4H<-v0Qo)Mw=A7zNWh5!Hn literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/ripple.16.disabled.png b/app/ui/style/olive-light/png/ripple.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..ec15234cf21991f06b222eb04f44e7ac9b12e7ce GIT binary patch literal 595 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0xSKG*j~8z^+h)5S4Ft8YVTEc4?j!BFa-1TY`EoM zz_!`^=z~*k^BY#p+jiqw+TPzkC(Yd^+CKmP)=SJ4_bfM_-a6?F&^IC_t`Q}Ur6n2p zMGU@)MJ1Ve3PGjC+4*JLPoJ3ylvf4GrzDo7S|t~y0x1R~10y3{14CUS%Mb$tD`PV& z6Ju>4!@%IK`DP&$4Y~O#nQ4`{HLS_vUI)}539=zLKdq!Zu_%?Hyu4g5GcUV1Ik6yB zFTW^#_B$IXpdw?4qSB(|RECU_k^(Dz{p9@I-2A*^z4FZL%-qzJ%tVlKeGpGSBrz{N ZKRz=#KQC^+#sr{t22WQ%mvv4FO#sMl&GrBQ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/ripple.32.disabled.png b/app/ui/style/olive-light/png/ripple.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..dfaae7914aee3e77fe38bb62c721ef96e56a16d1 GIT binary patch literal 743 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=otuJ4UD0|R52r;B5V$ML&UZ~Gl`5NP{< zQ_0KKp{asVTqQ&2rT32)`&=GZbv$J9!{H%q`!yd}0 zO5Nn2XQowB`QU*>%O|_t-&=*JI2M`~#B?+62zzkE^{Sd#WY<+=y;mFuPt+PdVfZ+q zMp%(yfu@>x=bdTa1=(M?ea_yKr^J!bHK$qGEL;BQRCDi7xi4G8+GJ)Z?*Fvxsrb@k zm(TMD=|`PNO}%d%%Cyqe=TyM@(A`&Em=7dxU;Zm*4nsp+NyX-Et~rV6N$ZpSJ`28T z-R2`O*@`{l%Gb4VX**|my9-o{c+U8=b@zkTZAUs9KGqyyT*fRVY;ftR^!AI~h1H(n zhWlUr6}Tj0I!)Vmp4qP7`j_;X@0skMTl+8j_TIhBzV})M+l(TCamFB0;u=xnSXz>i zU&P>>SX7dkrw~+HoSk2`{q&icKzUV=d`e?x?sY&7k{}y`^V3So6N^$A%FE03GV`*FlM@S4 z_413-XTP(N0xB|wC@L*VPG!g_DJihh*H6yR&CSm%)+^7<&dg0s$xH+(*9YNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@eo&-K0025O4;ba4#Hxc7GY+5B4$0!Qz^ z30lc1VyeG`$kGw08N_ zt@plvt|(6v+puX>WXQj({$F;Vc4vq!|Fb@(Of*vN!B@`x%?%E(1Ml6L7VA2N{lLVe z5LE{AO^dUXHwZ^Ea3?V8I3)5}-{tPV$QG#Z=i;55hjo*8-(gA?i;c6J($#R8>wF;t z=fSs6Z=T%OS-bsY`kl6hBaJrYQK}4c#Q3jooy1z|%W%YSefTt+GwvrCJ#H~G++zDT zWmas%0+xUq%xb#sWqEo{Ob(g+5?f`a%$?gjf$_w~{wG&B61qJ26U*W_yqdtX7d&$}=3n!jx9igBHJuCI3ptu^T>fvD z{c-+K#iIoq(v$Ar@3(t(b?TXI((F%G3Md_CX^<@qJU`9!=)Q2}3$yo?ZL9g;wRykJ z@>N>=^SBx}Uits;&Eh+Y<`sY1%pv0Al=131)5&ZfNB@bltAaSZ<+9ls7~+pGh26L$ z@?>A3LhKzu2Cfrx@62ZKd4JQDL7?DzLATYaL%pU|2ew~!>)2TK;W0-+HE-v9>3er~ zY&O>oP?;MW{QK)2rU(Y^5BAJ!s?~2PMdk`OW*=SQ)zIf3&LMay^!WWp#%tERx)#rJ zjit?M-k;^b)F)En8d2g{T9T1p#NeA)RFave5L8;6onN;7^qHAJc~y{nN@7W>RdP`( zkYX@0Ff!6LFw`}&3^6dUGB&d^G1dk$3=Hm?Zx%w)kei>9nO2Eg!c%%uP+nOav*{2l4bn67$mY<1>@<^Wx@fOaN+U@O1TaS?83{1OUg0l92!a literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/rolling.128.disabled.png b/app/ui/style/olive-light/png/rolling.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..a7d9ee5301dd425be3520f98cdb0320d6c956896 GIT binary patch literal 1973 zcmZ`)eK^y58~={gMrUnA;l!4gyv1gs@;(tGVe-;d9Tqe5HrCc~iE%9AXkIGC;n5QrA-l z0HDa;9u%nZHUbHUGGkwz8&u$Qk{=0x-vnFa)J;&2i}a@W0g$#E(&YfK3PHS20B{HZ ze2xIX;R*mdl7tE9MXAOMK)}Moe0~JmVZsJp|-7Wnxj6&$P3c!R^+b2KxSieaaUEdYjhPxOWIM#3XvFh=`_#^0& zQuGQ!f=~qX+I{vx2feF7%7EyY0s4W7QD$Ry+9yG3Qw>GE#+T>j0)|V9(W2P*&wXx) zOB~ZjL>U^A+yyRh8%l~xuNVc~(Uviz``!0ExC7YrB>8A*ps{ECh)D18VeoXI)|V9M zB=M6jTCgG_B-fp8$D*ALmA zi$;kH8fz?6WH)m85h!S!`y2%5uWk4C4(rxd|v44pQ zyaZR#1iG^C4GssyC0ItPy_P}bU=V$B5>u9JgpnRS;&LveEd5va zu#?Ee-dz~*(vCGTuQ(`rH?mC5c7~02R~h`cx_jl}Nt_!-jkhwESu}s|gWfKS zY}~J`_LW)Rh;UQD#i&&^5iD)=#TI5ID)NN=2p_4$s{~6xFBeiI zLSKu?-@c_Ow@S8Wk3L;{5{h#~eq6J*o#n;j!e%=DXn_w2BHE`q26uSx%l`So8ih%? zkIe3|QYn*oZ_R@*H~sQhX0`wRT4#Uogzi1Hc;xTSOXVKjcCp%jYM$W27g4YH_WTiD zk}&eJ#@Q^6CuY7VA&MTOuhH#%%IXv9+FI$uPea9BD;7672Gryj@7okzsXAhYKYD** zcfwWOV_a7<7^--4I z{9K?Z*2he)35+e>9~GZC>s>I0(yCiB=ZCBF4ttLGd)Js!KQQ`~xA@_j5U>#PijOG| zeii(TAFc=P8>Y09LBz!dAFYf{pgW)7^3YdBJe|}2!b_r^VFE7Zi*vrfFBz@&mhi(h zc()8ifm0Ud>y^Ga^IJ=-<-MR9BRanb^En>s{b&@iy~~sw_+Y7jkRQ4~+Sk9l@TZWw z6*nEWHDC6Hbz1CfcvdDQEb3TcYX|IJlNJ?Og3+mg;B0@T#-pmW;NcV)(CI<$sLWdZ z782XULFmY%65hAl$S(I+xDrxobER{K5=&*$gtB`%F1i3L?Bi%>_9tiLh85AdXTnqm z!CrvE836oi*N7X>$GJ+LjgY>8ZnJ~YX-Yr?evvcd$@s=+eP)jS^H@=qMg5xP3c_rA zb;ki0cTU~d@g=E#qVXQ(`h<8tqOnjgZ2vq?3A90WA-l0uxMTcXlY2grIFH4t@tOri zE~zHpYbgO4P62tgO(Dctl^)GbeaZ6x*Mdy9l0`$g>ad}w0#;wFw=tWshz>x_Vt-y& zZO-H^qX!i*8zU&;12crk=1jMc_XpPyZvX4VD8VdN1aOv+3^HEvA5y?bxv@%~-5Xos zPwD@8(rx(JmpsT1sXOE?-_Q{*(Ep`OV#O!ZKA(sln!t+hOxFpD4V9p?wF_0=eg?n# ztCkGWoc@cmfY*NLc=Nckt`gMEFBiQ&TRIr@b$|&!^&rJDbjW;9w9N&ZwVt_q{5bHI zr!*U=o-sJZXhgUljC!+vaJjzurSg)OLR--5arWc7s#f`(7us2c4s`M~w(Y}+girHb zLzvyB1kQAQCmZ;-_u`|Ehq2Frflw z>8Nn}F%w!o)=Hr7Kr~Ro-kL5{-#tzpf>wwY+cS(!;;>_wEZ|3Fu^EXt3g>hj^Gs`B z|5b=L+2Et7Y??zPiv|@yBoK*K1RE>jfujV1gRQ;8-o2L4g+S0LDir>gA%Pjih)(_g z2F4$DILM&8F(HT<&E`^BG{EI@tr>}Nrz5FJG;1b{UNPsS2Z?O|5ph_NG!VmPCpqBp yk<5eyX5wjUE+dYSK#O8fH{|$@4u6!INN0vKBAJOlRGAe)c0l$#;&I14BKzMtNn&gO literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/rolling.16.disabled.png b/app/ui/style/olive-light/png/rolling.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..1da29b9ecc27b55dcc68651695905aa2034b07e8 GIT binary patch literal 616 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0xS33yf60TjCK>EaloasKE;YyTDpk=Fg( zV(;Fl@N};WJ14+h`2Rou#tjQvT-K`ebj{eHBxX}0EPUGb>du|#i}e^1rr!Rd3JJ~yDX83(a2EWOIK~r^kJ_Ddow47vhw=xq zI;%c4)C*jz{_N)D5PIh~`{swMcYOALCgSQJXTm7LYiWCO>a5+DOi#|37xF{z)1_&0 zXDolD-*=sFGwnS?{e1~5a`RI%(<*Um$UJMR0MsA} zvLQG>t)x7$D3zhSyj(9cFS|H7u^?41zbJk7I~ysWB4dc6(xT*4hK!Pu0xNy}R literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/rolling.32.disabled.png b/app/ui/style/olive-light/png/rolling.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..bff377900cd913b18bb4f0732587dfb96162b5db GIT binary patch literal 787 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=nY@T#(dfq}8f)5S5wAi?)PM{%kbwo#YONg=JCx&%f-N*Lzj_io?aF=_Mka z4(=a&R!q7-EzVu~ZAjCiAJU-}oN5bq=gg__p5tnw7Ct3`;X=~s-Mq1zmAQnENo;oJ}9O&JlC^z`Lv3kIbu<`#&x}4dii{Lr)BZu;SBosa>sl*k{Lb%w za_iilnbUunt`AryG^gnN6q~I)v4`UBIIN{h4e%eJ3BGZQGU3X)GrEJ?LWE=mPb3`PbzL9+CYYZ zfy9K~IVc)(^HVa@DsgMbJZq`|)F276Aviy+q&%@Gm7%=6TrV>(yEr+qAXP8FD1G)j z8!4b7V~C>CqU2PDjFOT9D}DXs{M_99ykfob%NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@d-0$x>i05x6nba4#Hxc4^FG5E5B$iFzV zR~N2mwKB7J^1kh1+*A4Czr1ZlPnerW^f5_3o^7fPmzJFO&b*vbzI&xW!I|<~YWlxx zD{t27|K$4fUg7S^b8dUO**cW63u;1h9@)0Xu4^{*^YhQYCiLLy&Gs3szRMl|-2v-TJq(9MtMrK(JpUCyC_9PbqB}! z9d+LXZvVU(;~?KTv!$nD+u`>qU#{5x>t(X|Y5Lb|qmPrea-yfhZO@vMo37+3i?W4# zhO043a%wVu_srKzjO!5j!r#ntH?Cy)@|vmxhpxT;_@PX1LCP;x&PRbSf`xPv7Ug&H zb1*41TwG$fZPu%8UmRw<)nl~jYWewW-rJ^0s!OuGUwz!&_aQQNxYo|Ix?Aw`O`Iv{Z*GxQ=pD(iT{%Y0VX|<}`-yG`LWyIMT z?!r+0Y1zE|>`A5i(;f7`_pE+8JAF=lO4mBAyA?*9Ju83yea^2rdsou)=c)l$x)VF( zg>~wWW!%%8vQ%9;@zlaXCWa55T8Xb~XD}qHFvSQlbZNX0{h`P7>$;2r6UUA%%y*@y zmLrB(mn{x^29ou|^*%G5uIF=7gsWq(2Df@IQ>l4~+4$-Xa5 z|4XOEpVi=EmRS5%u8;Gt@CWvms!0#uUh`jfk-I_3O6wVakJ|dSCl4$cr+>TXxiH)K z#f`OFqf1Y}n{xkI_apvkY0q44SO$dv6TL`@Yeb1-X-P(Y5rc1HQAuW=LQrXOc7ECR z(`RM^?)FK#IZ0z{p6~z);u7GQ_~Z%Gk`x#6%m&Fffpq&^rf3LvDUb zW?Cg~4Vh<66@VHfK{f>ErERAdZMR9cjr z%8*e~QedU8pPZkYo1a&#SDu-jnVXuDnFvy@58~;EB<7{($7d$z=f%y}m;lty;OXk; Jvd$@?2>>M~%s2o5 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/save.128.disabled.png b/app/ui/style/olive-light/png/save.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..9f679319b3eb642ae6fc9855996d94794fdc0d69 GIT binary patch literal 1250 zcmcIjYfMvT7=F*;00$VcAPOkdGOpX~#R5(mK)^DnSQJKvMY*)4g^u--a-ektSMD$s zG2n)X5fwDdNG4uD7J-ckPDLsX(SZyxa+!eKMImLU*{}WB&;5A6=Y4MZk}vs6_C^g>3g%#2I>Eg$U`) zu4+DdD|-52o1xTHMVagHUSYkW2HGs9E>CtfQgD`*$2@<1_oQ%Z?vM0$UiW57ihJ`W zF2^|OUYs?oQQRIk+2FabV`=rk;RA78S~1711Urw2D7g8sCuLnbUynjUZf%MEM>`94 zcC}i0EHA%{orf!x$Tt=a(%>{`#^bQ|U9@#cuQR86`5j&O2yC|>u&4_BjAEX2Bp&Nl zkcwzMjul7HY-t`j`*d1Ngotc#v*KN}O*FF{6&yxqVGyIkuzRX0cm_wnG9G6VlzgPS z>ACs+3x*+-@~oSI?w(5C=yUN46%io*?FY&+8y7atK#?6nH9Z>G+eKF znuSxAoR_F*ekh_h)#o6U#r^2Fm?~{S{|GeW=kkyT0VS0tEM2dh;ZA`y%cr@F!IJ`^ zrbsW&>3!6=->^2{(ZH_PTD$4;V;<_tR?shRudfq)uNiG6#$EbRhqv<<60Y^l8;T^e z>kOv6*6KytlevH$*S=~B_2)(2uZdW2fy?VV2R@7zURfZ>}xgzNKImn-L>Eh!gN>01-44cr*;chHqyZ7PEZ9 z@=UhID-?}~`l>LI6k@CEE-5N{Iyc0YP6o7ZDLnddgVO{aw0P3>3_?5qvcW{#qbBh7 zjI1sDHkbz42Zb5mBMJzFu!DGT{{N&^D=%Cyapi^9UOCIGDZB8K`d6*}^jwc_Ga>ly zV87YjQR$me-ET$df4&^*JGgOr=869$Y70@`acSQBO<;}4@ASY(_sCctZ;!2^=a%G7 zg;df|nD~%;C9&>AdDy)!tnfnN;0*cS?1<3)L~sU?s#F7Cs3v3zT69KwnliKL{)1Db z?{4&yg@lA7R!c|#HjB-sv$oOMelaW-$9p@+$M+L*VX<1r3cdbSkSmjA(nJ4U=xGV8 zAPbJh8$MS`35`%K0gXn(kSWsA#X^;Yp;V`wp7!5FhP?j?WvImxNF@jrhshKx<#MGW qouQGX$>fq`na~(#8W}T2s7O&J%EU@V!db5}vJSk^NNz(&Qtsb=RNH6( literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/save.16.disabled.png b/app/ui/style/olive-light/png/save.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..ff945c924d2e43e81a89510cea351192d2a1477d GIT binary patch literal 590 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0xSRe$R#2Nc@t>EaloasKRt-Fb%s1YFL? z#DAPn8Ihng%cJk;|Ns6{DqP|Ua(Oz78{RK-un<^~zU%6o*tb0lM*e#23~kZ+{9C#h zCNa(zlbKZ7Ia8%HGM@4JqS?iTdKw3{bT^$;{;<5st9$(y)r7~(j81%(Yxw{C--#LA z25Sxr+N8+qZH-!~(~`D2pW*A2STh>~-oxGwA2zN%^zvH@%gLTRYwO-c`=m9)9FVdQ&MBb@03N%^WdHyG literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/save.32.disabled.png b/app/ui/style/olive-light/png/save.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..7e792cf2945218d37d5d2ccc1b2b2ae7e4983d32 GIT binary patch literal 686 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=pG{?=2Dfq_xh)5S5w6D27EyXy|_$=4$18TQxo=m;Job8*^l-8|P_m9-g-=`FIRzZC47q^zXx1w96^tY(a zzjIwbs-bksT6tE6eD0l_7P_T06i?RXR(O=tBfwba%)#i)Qa1ZwZKmgjQ@@zs1xRt) zEfw7`Un8%vpYg~FRwK|c%TnKO&Sm{BwyVa!;wyts*V|N`By+h}SL8AmHLYts zAQG@>-b|H-1Ka*w7#LU?n^~EdY6BSt2K%13 zX`pDx%}>cptHiD0{4TpGKn;>08-nxGO3D+9QW?t2%k?tzvWt@w3sUv+i_&MmvylQS zGKMHBElN&h$S5f(u+rC0&d<%w&nwm|&&NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@d-)!%x`F)%RB_jGX#$+-9ShQIe=0}+M~ zd$JrwO2yRQ$X5gi+Ejh`UC+?pbRuu{?FF|MEnru!yceU}S-rl}JMfcV^t817X(vy= zp7P4#z`YvY^TMTTf<9SDb=^H~eV9Gx=InB{tQWt|7@pgAPdb#fh_Q38o>z zjC2hQb&V`T3=FJ{&8$pJwSf!+gMH82G*C3;=BH$)RpQogewW=8paw~h4Z-Bu8ABA67A2=LWR#Q?Sn2C0=jZ0;=N0RfXJ%*S orlw>jf|Tonc={oUdFlD_naTNiaq~4M0JSrCy85}Sb4q9e0Jz~WTmS$7 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/sequence.128.disabled.png b/app/ui/style/olive-light/png/sequence.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..7032a4a5dbde84c16ff4b562dbc0b3e18362a263 GIT binary patch literal 976 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;3@Up2o=7YKYO?oqaSW-r^>&V-*Yd z9t$6fa_;UaM@1Gg{$d6UJg~hN&*Gt9x+1E=S&7Mc^tUSCk-gi;)E~S}nC|A{Ime*e2@`R~_*`bMS;j28kJtQe%Y9M~P48DB7DXfVh!@UkvoUa*j% zgu%q~{1306MH~Dlev*>C$NXEwbJ~j!dNY=LSOven+3o0>er>bs-km!q@l~}L&+L1C zZL#N)Ss5>GJ50ZNq;8kM%;yJ_E?=6kpH<6fZQQv^i(5aAKW-6l;!tdvkoM?b?un)K zE3EzqJk?V0dtPzhP|xN#|5eL>?3D7T8=I^NVxGh3|ipS0*3(X41gd(1zDP>$#7LnKqDNV9?J$XDf<^-29Zxv`X9>{spOU z0yRj2YzWRzD=AMbN@XZ7FW1Y=%Pvk%EJ)SMFG`>N&PEET$QYuiv?w{1A)}CLi6_aPW$e&0z-Vg$J&ePp+@{%6RXJoLa5j5oVyJ zA|oc5!lIL8@MUQTpt6Hc~)E#t=oNMaiiQ86_nJR{HwM`MJ6IdBu9=nc11SsVSL> jAm#cXo_k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=pG{?=0tC{*j|;uzv_{Oy#DTnz?1E|Z;h z|7Jb*|Nn|>`UUxIJF?zB2yD@~SMj9JK~7Ohq>=>jZ7@>ZfP<+_{VnR zfB3h+55Ly$VeUv&jZ;iK^8n}&krLO4635b#jQk=7-^8Ml%shpl(&Fs=vhAnO%mm7- zg5*;YOH!?pi&B9UgOP!ek*(yEr+qAXP8FD1G)j8!4b7V~C>CqU2PDjFOT9 zD}DXs{M_99ykfob%NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@fT_C1kU0u*}e>EalYaqsO6Yp%lv0xsp( zkL|e3*}^~JxBSuASr3?1UIo3Fe9E`$te7N6%Ce~+Y?PJl!=BtU*>h|b*y)sZFlVIe_3Om#T#?)n?Jui!*c=v|Q#*N76w(vpn)A_m{YqLR!!g`m>n?EJFrr_am; z%BzCpQxZ#3t&)pUffR$0fsv7}fuXLEWr%@+m9d$XiJ3N#VPMeDKW8h7hTQy=%(P0} z8vX^TZ~`?*f@}!RPb(=;EJ|f4FE7{2%*!rLPAo{(%P&fw{mw=TsK^+isI(|Kl_8^~ zq`*pFKRG`)H$SgfuRJq5GdDFQGZCa*AH>rSNz6;nkIzib&x@O{F#)KZ!PC{xWt~$( F69A1^)>;4n literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/slide.128.disabled.png b/app/ui/style/olive-light/png/slide.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..9c2048ba414b8f5112e9d2ff97a8dbe0f905bf61 GIT binary patch literal 1655 zcmah}XH=6{7=8l@8$~LLSehWk!>A;JH5ei#%8Ez?MTm+aAqgSIB$xyd0r_OfI2fuT zf>nZ5h=U~v4k!V!T1Ty|B`g648=M72#q{I!^hbYq`s2Oteb%}6*OML0@HaQHF#!N` zdVtSHbR)B4ghfvw`K&j(umV~T4WLG8`jLY}F@YPfF$iGqQq-3Y@E)a*VSqRiz$hDl zatvT$>K^5Mv8p6MuQ? zi2AUDbRSyip00@#B6*j`{7mJ}v~KU;c?~>)u$U55&ReO|mGhR?(M#87K00D{_-J5m zOZ&c#Be*2bQ-|gl56xs{B=!0)95XOr*D$|Xkb5IaT%O+96B*vLF2YjO>$^^1lSf&b zue9{OKC{blosFBx49nfk>J0a8^KU%7ih8!l#gPlF@NYW}!4V&hw}pm_SFUWq5GD)0 zgSM^mT0QoolYM@YFrY424x^yH0cw5K0)5pSWUCoMfgS%#GGB=H%b#yN@RK@o@r9AL zO*5_Z&0n>89r3g9i6SIUcvVc2o3m}k84(EEFS)r z!ZdD^U-yY;g7Sf3+wsbd>5Ffsm;5|*KKT1FNs@tKwlX>4<;A`YJu+Pe3*JU<8rR`G zv(pPkdKoE*R|q0m71z+iEL*Lu?L5n>^|(>qU(V`SMjjnb_0_voGZ$Vi>1Yt^?(Ofn z)2K!Or_y+Vrc?~4jwUY315E!dr)FaH+zjocsH*>cWy+MH9?cH1zbTsEYo@97bTw*x z@_buZyoHeoJly`mjFYm~;rxBm#cN!_r#mJ8*mi5rn+0W4X3^^OjAYszXiSD_t3pOe z8=2Rthb@B8ant;UcFe~#MsY4dAIV9E&JWaT^Zq|zFU8`tUU2PP{VH*{7a&>#>ePCy z69nI%xzg63_+}mFb?JuiSL2q|t7(Im2^g5}De1`U+^gAwAZqGgyIO85nD_Qo zerg||+F)Ch_4u9aisoomOx;}7Wm1Ua>a+=2!u=P@1xxRkLS0v1C>UeqP&^@ZMXa!u zb{~$Lv5ohOZheZ@XL|SBTx=eJL8FMZQ)IkGKXsya(IGh46*KBI(j0Q(M~W)R`TeS_ zc&MM(qLUvx;KjaX@eSkg;EDbz0`p{xD-~C--!h8bH?sWQU-Q1!5-q!*=9n(Yo}S#$ z+3}UOCh4%X(Fl`Y<6wI}+{wP>xW`8%QgYKqQ_kjZnKs3!S74pK#2;o9Qt|O7&Q-7NLA@gV*0}D$h0MHb+av@2 z7!5f+Ch7}B(^H{(ZI2-=ZXJ%^@r5SN@#kr$9GCBGpv=x_Y)GG=JD7F53RG&lEY8@k z^|~;kpwnvebOAiGvnYM@;91Fben5_L$@->K?8uSJN#t`8IX?8D=SWHNo}8yadzTct&u&a-5UZ#Xcs6lRnj{v#)m)Q z4kZ9#=HyarX`g$;jO5+sZ8tZ+)v_*G`EhHjx}yHAr1PI}l;yXTkvOg$`rr8qU#5Z< zr-+ftAc!MV2qlD#adMG#cf*~#MX2sDtMfPtK7}jeqYKrca0Z{gknBV$eFbhXAv=!BN0d=gB(1i6?1 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/slide.16.disabled.png b/app/ui/style/olive-light/png/slide.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..c4014be38887bc56872058129e47c0cdf5b347c6 GIT binary patch literal 576 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0xS+xJ9b2~cRgr;B5V#`(2@yZM?N1m?tY zTuM}#=q7CQ|9^XrrQxlZhs{ka0(rU?tU2onSD#EvD^C;uAktf~nPW0z>C>%0OAb#I zIBHh5;^6cH`$XfI7#mK#5px%NZBua5`0dX{yayUisVslst|8*F&Zyy&>D!bGcXM8= zxtNtcK5xe_WV1T7UA2*a#gU^+tmUQ%t+0?}+p^H9O51p$tADH6X75!gJ_}F(m(BXr zy^T+tx$3Ij%_aA?$ygqFRBhl1bh=21Yeb1-X-P(Y5rc1HQAuW=LQrXOc7ECR(`RM^ z?)FK#IZ0z{p6~z);u7GQ_~Z%Gk`x#7rB=Ffi!npR*N3LvDUbW?Cg~ z4gZ2vIDr}@K{f>ErERAdZMR9cjr%8*e~ zQedU8pPZkYo1a&#SDu-jnVXuDnFvy@58~;EB<7{($7d$z=f%y}m;lty;OXk;vd$@? F2>=B-!2JLK literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/slide.32.disabled.png b/app/ui/style/olive-light/png/slide.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..dc6b7611b4ebaced59d3f972da5e7862ec99d77d GIT binary patch literal 697 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/slip.32.disabled.png b/app/ui/style/olive-light/png/slip.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..8bea76f77e65e41d47d7b0243440100e2e9203b5 GIT binary patch literal 714 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b=ov^05X`9iyeEi(`n#@w-zF`n4DcwEb7i z`LHYDQQ_^T&iDUSeh(*qIdJFAo27I5j!tV*+z7M`B$Ds;T_Cff?dK5d(Wdfy9j=l-8n8pF?3C>{Ao z&wthShX-4Nrc7p#cl6-Ak*x6HbLQ_IUkYyh{`A25!r284U&Nes*kjBm%DRX;zOj(o$-T?bH$7&--u{_4 zA2_Ak^nZMjYr@ATabSTWqy+Qxig>6aGWTc&@iKBd1F zJta5EQTBQ3IbgVol(nC}Q!>*kachWB)!z%$APKS| zI6tkVJh3R1p}f3YFEcN@I61K(RWH9NefB#WDWD=_h@#S>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@fTPd?TFs$FBf`k_}H_zY{Sks)-%6W z-OrzXcV^^)Q?CvLnZF93Zq+brKI{CIa+h~3x7)R(*rMP<)XV$zuNXV3tzPWeR({VQ z&G4v=Y}Ou|{Q0ZG?p$7(d#y>Qfpr6e*a3rIv9jy+FSG?M6z&l(+V41d*A=FRio5pL z-@489CHl3X-@=Ch)y1`yN?%`_y_|KcU_s$3_rKTXG5pdkS{Pq9aq+H43F2F1{U>KP zP2ireg`Htb>$trx?aTRoF zNStg}^zD@V|Ec?SM(5^To#p(ZlY{BN2Faa1Jsnf*IgPIgA5{8e$kAl?p?P z>>mH6ewWV4t&nK6Jh3u3K#@t>eTJ^M&aQoBGiN8UJd;@-s?)P^;)V(b-E945O`AB5 zHt(3h+swMJ=%nbo4-vo83WRF4W;q+ZYV=%D!>9PlJ3e5(|AR~nM|y@6q{4n z^M*IyZE`?$MF>O4iajrbUYSQvY8MDNkbKy9qxnARzWE=XuG)A^Mcw24v=3Fhz4^xu z?s52LE?W|%FMU#yY2D?NY%?PN}v7CMhd9N7^0}OC^?lO zqokz3N?$)YKQ}i&uUM}<3W literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/smooth_edges.128.disabled.png b/app/ui/style/olive-light/png/smooth_edges.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..5b379c04d14a85fee4963c26be753fa814ee65a6 GIT binary patch literal 2037 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/smooth_edges.16.disabled.png b/app/ui/style/olive-light/png/smooth_edges.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..0249a920325c34f66e76c556d0e0f62b1349edd7 GIT binary patch literal 606 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0xSKlxY#r0%Szi(`n!`O*o|-iI9o+|Iw- zWp*Ut?lo>Lt*Lu{{jcxj*VSG7Lm?v5X+u_?^*)ZXM{E4$4?jF(!1W+;QQyRCh9)@bq{pZSy8p9la-DCN( zP_Ou2!{i%$3XApS(YDz=W=H__oY6r98=3XbD z$3#k8BT5`gOEU6{7mdKI;Vst08>TLk^lez literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/smooth_edges.32.disabled.png b/app/ui/style/olive-light/png/smooth_edges.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..ffd7e2cd11c0194f6878ac6d39cfe116a1c82908 GIT binary patch literal 766 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b;T5@>=yc0|R5Or;B5V$MLgMqVt;^1X|BC z9OagZG~Jk)yK1Tb-~aoUWoAn!Uu-`mwoyrJ8-LM9p~BYb^TcP|yxVVVoY**N(Ua7I zUg@BXVvIYU?OCJGVq>y+`Q9fok0qVR)fk6}rWRe`?OmdG}>F*`s$Jx><03)=!tSD(X_#&P-#?Np0Sp z#$n87T7P(Y`s|7o-!;!(UNAensVGZPYWdsDh$_Yd?fo})9LV3xz~B&NDO$+T;mfr{ z>zRUcpr^yUf2IvCo(?ZHQy3COm@-bMRHg8&Vr5v*_^8^e;ho>xpoz-Mme`k`wJCId z#Sg85@lg4oUL<+F|RJ_oCQjY5@boom4Bn z<0~fJESu}V#ZYk0X$#-pOQ$}nFfx3<6@Ovnw&+TWpL|QICcNDE>2$)RzAlbTqgf~C zpSdcpu%xi^N_^TWU|filxJHyXmX>7X7cuxI7L{b?DFl@kXXlq~KYeB>t*I;7bhncr0V4trO$q6BL!4s3{g~Cl$^?tQBqQ1rLUiy zpPQSXSFBf_nVp%Nnv$6aQmzl;>4zldrRT?ICggTe~DWM4fRr4IA literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/smooth_edges.64.disabled.png b/app/ui/style/olive-light/png/smooth_edges.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..bf76d3146d5af0af86317f7b96518a1371a5928f GIT binary patch literal 1151 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@cqTwbdl2Woof>EalYaqsO+@BGUS0>}S9 zcE6-jy4P=&-2?^21#y-iSbzKzV&{wLa_DSe%GzkY((~@AZv`s^R3go1e`QuQ+Me_6 z4`SMl|THWW^nFY1?C zv%H(%{3_Fp)AoN2Z}A@}E0o#dqVxF`!9)CugWsjcz{Asd^^}+TYnK>6U#qWrF{XDB;%D%zef8x$L@^PEG z*L}+GmeI^+WoR&%KJmnf@XVg7I1BS@jlhsUv17kOd~3q(OE>tpF)%E0NfF?ZEjhCE zj1&Vyip(3$n#KvIvW*+oCO3Ya7_u?o`(K^aj0&e(TAQ~fnj4rjIhq^^4{~9!yHTg? z+~9fYx{!o7Jm)%r`iq%z|JjE`? z>T3eZ7_1v)5AYojahNE$$E1pzm(fFzcb{advNJ;%!wxsbn^#ymnX>-tGapz{n4HBF z8up@>XU_qF12eT3aH#h(?%ChGDBffF`MYfl3^AG|390^4ECJKh+ZXGeO_<@uWE4DY zrNaLG9YTL=dl(z)nv#ziEYvrWeElwnNx`dGEQD3kk)^s>eqz|hC?*C0Ls`*^K=I>; zgu2h>zMUj{zwki%(X&BG`?jUj-QD%|(skC$UfbuiJ74-#eaiCL`q#EcgVY!rZpM@> z43-qWWx}De^HbY2HU<|K|J`Qa{v6GDIVp@mA+qJdWhRExQ@!&ufPtSP`D@$Ksr(a^ z^`|wgVqiFMS#$1W$NgJ`c<*>m>F_Qx``V?k?jXy4muEp$3v+{)|ET($a+6d0*Ox6i zi^cd11In)3``fL}Si;v(U3u*k--_e1S%(v6OBDV~)p~9HK7Q)_`i_T&`y9=t0yBe1 ziEBiOV`)i7ei4IjVo^zEooc5!lIL8@MUQTpt6Hoz3dU<^@IT9lm1kWo@nV5P60oS&PUpI59`o|&DQo0^iD k2vV*O;^~JZ=B4MyXC~+8#m(240MyRl>FVdQ&MBb@0N&2R6#xJL literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/text-bold.128.disabled.png b/app/ui/style/olive-light/png/text-bold.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..42ce474e8ec9783bf96ccc9dd6b1c7ad305a6732 GIT binary patch literal 2100 zcmZ`(X*d*W8-9jiCSxtKXD3R=STf=mJB2ZkmTQtR7?Wkj7<*+z5&$6O?&h>#XgM2# zMhZ23cLhOckTiQwdw|+(%o;^Z7;949_Im;(>I-qF0ak=5&S!uaEWlI%fOQ^#BD1iO zWFsty1nzTn0;tT=!3m>HOt-_)0O}bVg2!0w@r9*otZ6Nj0k;kt8Jen!Z{?dUFQ~S9 zi@b{EmW#}iOKd*nR#+@PQR=g(#!80BNS8FYG>rl5Z- zXF9Il@R*E!AsH}wg!q(r_nDC>e7Ze2@=Gt}8@^Q7zwTdE##cyPM?g@wR6B7O3mnWm zE9u6OoG1W^*|r`LBKIT^@W=02Ldl=iLhVg6d(aC53-|q0fa6m2s27xY4||1=bU$;& z4@1=ZzP;;$fxLDq(n|a+UR>=WwIv0K&s(=yn)zVxLtCl8g|ruD627PPEDVbr3{qB5 z`Z@8SvRs@~{nH>%pvF5OMWjeHrg;A(ieI64k;zluu$9{XP zcUOG=fNyVun-&0iL{)qHArU}dG{s@(;>=ZJjw3kkO|B><(#TdoSF`t+!~5aHOa!ni z7~|WmR?I|O{t$O7fLB>5S)OpyZ8Y7YoLeCtF!rNtKpVL3U&2KMODmQ*9vXP+YNwgu za&Y*KW&Vkp@=a{peqI)jCT%D#%TNk3pubf2!Ib#i_|D4;G_66l#3EiEUjKV>k++4` zJF&UxKzYZWJ4bPWbb*t*I;UELag#o_b>h5ZT7zRI@N9i&oc!$dvxztx)8%_Il7b}C zY@o((SG-eXT5NRg$Aw?E0H&enKtYOAfKCjgZ$k5Erx)L&&{GIBlupfKJ!lRI`?3cR2thy{X6j!_XEB*CkqFIwIy$OT|FW$6NusR?j&EA^WQR#>&lhBS1%d*Ko4@sk8h;!gcy>hbHD`>NdP1 z{>XgZ={CfgV^fcn$(+}9+u0ATW*3Hr^`6Q5T$^c#KFO?K`~FIQX4kR4+8syvg*vU$ zn9UE8rJI1oU+&R@jqoXMo;#aZfmGq*|K$PU3XvW zfllGX$g`afvF&5np$ryyQdn$yq~`vZ=rBg?gU+seVO?*d9zPEXy$zPe)Ox$@1$EL|njdCQ8ol-KiePgj@HVr|>ARdiqa>_^F)J~25I zzEjsJVLWi&VvEk2`EyTuTwzw8!Y(;w5);RT-D~-xA{H#ln>Nq3$11mV(+uZ#^RMrk zuDvo}v%f{A{bZ9W!}R6yqRbv|-AgxbG3);87S6CQPnb=r;xf~ZS7&aw*z!+H-@N?S z{0HYtuM4{xZCJ2&z4}%8@8Vu|;irxpwXXsCSfs=?qQtSZBqP6w!8fs}Br{JTsI)jc zzij*IGc$qmsv!B4#FA92mmtT}V`<;yxP?0f2 zQE5?fDnmv|Nr9EVesX?pZhl^|UU_DAW^QUqW+F(rK8U9ul9-pCAD@|=pBFb@V**e+ NgQu&X%Q~loCIC27-Xs73 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/text-bold.32.disabled.png b/app/ui/style/olive-light/png/text-bold.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..2d82ab7a26e59e083ad4345055ef4bb7decaf693 GIT binary patch literal 817 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b;T5@>=yc0|Vm%PZ!4!kK;?HM*AOf5NJK0 zv)zOvi{~TLqLkJd8GruoKg=%g~}&f7Sa^%q@F@dgLdosg-6H&8v2tVA#MXzvj!j$Sdw2(tpm{ z+;W<+>f4plha3zBTb?x+uy-6NIuUccuVGsLs<2-<*Xv9LujthBo}N@YrS#~o^AGH# z11_kSow^oOVkLjG!M=%SZuuh1@)!mkpWx7G3=AAQmWG%$82;L)cEr9bn*Da9T+i<1 zo{PBBdb2dtte15iU%A;*rRDMJeKyL!H8`)VTFjoC{AN94NC^vr#F82f3uYU8)(htt zHqV@7V7;(-Z)f|z9bF;}7n2%7s@JrpC2@9MT4EDk&)?q7D0iJ6)V(?8YD#^@K2r4bk&M(`3`pitAyeddOC9x#c zD!C{XNHG{07#Zmr80s2Xh8P%F8Jk&|SZD(o1_t*Ho&%E+l7`&;l+3hB+#1&9#)kkk zNP=t#&QB{TPb^AhC@(M9%goCzPEIUH)ypqRpZ(583aH2!qNubeIh7%!q@=(~Uq3lN yH#a}8Sg$-YJ2N*mB{LDETpz^K4@t~R&yUYc&d-aRuQ36rox#)9&t;ucLK6Tp(lMz3 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/text-bold.64.disabled.png b/app/ui/style/olive-light/png/text-bold.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..c4ee1fe9d63163385acb8209e079902c823feac3 GIT binary patch literal 1263 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@cqjo*j{GB7a5dAc};WZZi@^M3GU2Z7`J ztEVps(CKAO(Q(yi(*LojzVZM69{;|_>!TKhu$C^_YM+r&^qN^|@yTVqd#AA9ooQE6 zuK)ey-Fx@mvHZB+s^aWix%5P^-p&sX4kYrnn`kpgvAFrPNea4hScWLJFaCV_2GfCM zarcf1=^lRkr(ddges$h@(X)&j9$#E+8GiMF&)jXlH(S287u~mPcQKQ|sXY(F{{)sB z-HkkJIa4RpCMWN%3WLL)3^^IUnF~D_7-FRFPWQjX#K5rb?bUn{27~CcpL&@ZHt0&v zwOQZ9c~oXHBhdHS8Ct&nk#EdTyD$F9`0LOUY6-rwJ*4*%OIpilirNA_r^+tG%@Ad+XP|q;NN4o`_de1E}6l45mrXZrgqMXLT zJyXCUWN~PYRD8*gZ+R*+ix?*C4&ME5`N<5|W3BB=A9`K$3R=Q^a~5;M>5_uK=l}fi z6?I-8EqQe1RNWI3BKDrtyU@*Q5x(}D#_gpJ3{w7aCCkd#Tus#W$NAm;ICpBGy>Unv z3xkN(uRi(G_DDU~Znxs{|D89abrxx{U29_JUfE%EfPZVvgHZny%RPw9exRYq#Nt zJ1q0R8VjvV-Iv+qzjgBR;65)$29pQ+e@qSBgKdQw3ZJmXJWHLD zo@p*5bdkaK)wbiti%%_kJL&a7V?CRqhYlOt+SnMEM8u{!Gr4yNTx31Q@pXgfIjfKL zJ15Dn3F3agvt`QyVCEAkag8W(EG@~%FJkabEGo&&QwS<8&dx8}e)`Nzpu8$bJ|(dv z)hf9t6-Y4{85kMq8W`#tS%w%GSQ(pHnOJHA83qQG?r&mHH00)|WTsW(*1#bZ@&Kqo z5@bVgep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt;w7MWsc_sSFtQ44$rjF6*2UngBHc{|*2E literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/text-italic.128.disabled.png b/app/ui/style/olive-light/png/text-italic.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..6bc7b67ace4eb1da3747c8bdea0bb0132f1abf3b GIT binary patch literal 1486 zcmZ`(Yc!N;9RI&F!%U3Kgfv91LkeSrD7*%_ghe-`nlUpnSu-xdokfv`HeE!vm5Po2I{Rrq?1%sJdw#d`|MWb^Lqq(uGz>HVKr6uC zCmcs?c_<|O6uC5@IFJr{1$zPfQmVPgQ^UCl-#5;h5t$^v-J1#qhb z&`oXAjE9<^8si)Va~?cibVg&6ab^b78I3%DDcIS; ziuBz?@o2vb-z6pO#gt_F$y=9?kFQ)zNQl>dvi0)irzw9$EaqnK%PJ8apx2DGH)UDz zbRV6is03pV=dWFuBGgl6$84_$^%3T%z}LS=pitpDKL;fyK1fRVyuZ<38zqH0KFz6T z#v&|_Tya(>TN8VR#PGok`+9PuVz#a*Ew_V?W-NJ3mGlwhLD;Lpx=5HQ&(inkB9_7X zs7~{-?M0dvNd49Fw<1|)t3LsKNEEj|E&g!ox59(V31Lnuk}h$^h|#U;-^P4&cKuc+ETNi0Mz3yYzp0~=>H%fsUmx4^O)ydx(`*^V3tD~1y&dvf=w;7p_Z=0p~B{-?yiN^ z+4D|rBh_?lfp&a;UI*2~ZgKpdK`7P4SgnzeF>MrhG^mhsr)=qBofZK#zS43>aM zs&s-14FGcoD@r&K+?C1JRn#!`#G#c(-t5hICOF2%3Qm6`Uj-ZUFT~k}lEDD^*<` zu$R9Q4S)Lb$+nMZO)+!Xrx`x!dA<}ns73CJRSak|m6cJ$NCSCy%2=PzCeB$J!b+xh zr2|HQX?NahP_@K0YYK>%m3MbZIW>$p;7O@JN^+p=2CkpRE&^6SYauI~31YkTcW9Q7 zw=(ePoE7Myd36KL$hQjWxg25;GS_Fho^g(#qB6ZdIp8MWT3=33R?#?Q(7xrn2kF&N zCK(3Qo~)#X!2nxfAFYSEo90vDFqUt_Wgr>hTcm7@T8)Tpkk*a_)Y^E_w7_Fs(>US} za$N)Fpn$?q_TH@(+Pi$o4looOe1qgiN}aouY97Y#XcHA zC8x|>?=m$&QaqHF`(TGsL7RUx6S}9(lj8S$NwO)+ex%E28=U7}U34>Lz{?)!6-qa| zs6SRiuWYh<)dQ=b=LAA+*ht654T;vUacm8WC~_YhNpFvhD`@agzPQHQ1h-g^Qr5+` z6$NRPc8(S@n#^vrxegSs9_$C$zTO`cUV4fWuvmNM<}T&TjYFvog8027!`=$d17rrL zItr6K_U>vX8wO6%$j}?FEExj?2yDt(|O54NKa3< z6N%$f_`F1+oh12S^~_cSJmmOqC^eZcggB`*(aqkTFG)y{h*Rv+Me(8pp+Ll2j@vIY d`<*=TLCFCTUn1ULV_k;VA;34pr-{Rr{R37%D$M`@ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/text-italic.16.disabled.png b/app/ui/style/olive-light/png/text-italic.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..7a1d2ee9758f0fec23e2d525beae11cc1ce36a4a GIT binary patch literal 578 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/text-underline.16.disabled.png b/app/ui/style/olive-light/png/text-underline.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..2f76da2f8fe4ec68f170ead2cc14f19e6b379028 GIT binary patch literal 554 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0vcTJ_ZBHBe}#r;B5V#`&v#8@UcS2)NwO z<1?JQ%)^BmD;yDVI--;zJhdRb&``iJ*!t?bGqY1!8Lky~`j!?X-p<(l z!8ejQV}pre{%*-A)$2>VB`(G@@?H6|jPZT@0oglS)*n^qXIx;Ou(Ow8(}}eQt}0F} zKN)2-FXpK6XW^AypO_hDPx9i~H?g=-vU=b2hP$=>{ngBK>S8Mxb5|%IJ#Wof26UuI ziEBiOV`)i7ei4IjVo^zEorSNz6;nkIzib&x@O{F#)KZ!PC{xWt~$(697Bdwu%4% literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/text-underline.32.disabled.png b/app/ui/style/olive-light/png/text-underline.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..729a56f4bc3b646ffd454653608cf542ae1cc228 GIT binary patch literal 664 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b;Sk>Z!|X1_nlUPZ!4!kK=DA8~PtM5NO?B z9Mr)P)FiQhdkM!84(b2(DQ`|NcsV$^bZ8lD^*mu{67Xu5Y{vwvC%W7G-`ho>H!GR) zCr-t1Iz!qYgV?R}SkHSF>9Ur3r5=o?0?t~WLOI>57)V_kM{i{{F z3p8)9{TB20R@l-g?h{^G44rctm>Fi?oj%)1he5@T^X<2b|72DlZ4+2{k~P3keEGqk z>IKiaIMmA3b_Yx1HjHrNYR(;F4ymd8A)`wF<+@v-f9RzMcEy+}y9M ze%x-w?|ZHQ1D8Rh#5JPCv9u&3zlgy%v8W_7Pa&wZI6J>=`{^??f%2*#`IN+xRIB8o zR3OD*WME{ZYhb8rWEo;$U}bD(Won=eWEdDIl&%y+(U6;;l9^VCTSK6R;98&tNstY} z`DrEPiAAXl<>lpinR(g8$%zH2dih1^v)|cB0TmfT6qObwr!r)eloVL$>nG>u=H}-W u>y>9_XXd7+WF~@?>w|duA&GhE`SF>_`FU~kH6{SHGkCiCxvXNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@eARy}oj&A`C;!qdeuB;(%O8NT_K9R%9$ zM_Q}+#(Y{hNnz{M?XApCcYgkNuX9+~eo0Dk#VWNYi$x|`d@Sf-x#x1TrPt_=cYaXw+-7<9{yaw300vBC$RO%0y4%(* z>e*r)4Hf~bi;HAdUhd^$EZATh?8&fBgi+!6+0$?R3>leD3o$r z%6O*XNBEJpB*$8#<>$`t*OB=3=HB+|9XZ!GPS0Mky`tp#`ud_1vC9|MTWZ)cGt{3t z&)AThZEJ6?+4u8=Z^QY2T-M*V2i{t>X7A;|-FH3PFZ-^qy;HaE+ZV^{C&lYo5Al6% z`lY=tw`6vbi|{P{Ag1;evpQzajuyT9`L@b$Uxo)aRHS@G;PW0;VP;bGU} z94n#a#+xkf#lF+gXJR;(ne8CBiuG0h=Fj}af-7n~mdDynnbT?Vyx%i^&b9+93R1LU zZ4&R#{2;o$_g|!%UnEb0YV_jTd+xofax@q!JSEQ?EZv>3srur|kk`L& zdDlPdcsH&O_nB7IFIIN{h4e%eJ3B zGZQGU3X)GrEJ?LWE=mPb3`Pb%&K+CYYZfkNp@K@<(S`6-!c zmAEwoY6z|cYLEok5S*V@Ql40p%1~Zju9umYU7Va)kgAtols@~NjTBIkF+@>mQF1Cn zMoCG5mA-y*er|4lUa?+zW_D(7YD#7zNVz_Uryr7-m!2P=nVg>&H(z4{P&oX=Tc#&5a3d?2Q6VUoGVSs%>?*pJCmyic+5!T z5UU|XYOkmmaq86&#l>6s$e z1!NlpM;m8xEmP8`rwGL#PMVExWE+yaMl7W*8Jt}^PLAhuayZ8}?LkM<#OK^XPjGLw z`S1p!*`C$cuRL1$b1b1`Iefup%P5TlYWvD>>VScl>kbV`mWH)`*W!!Y*b!5+nx)>B z=SRoq9xohR78_Es1SsBb2!8lS|L(c@MBY+jFl$;|lXvDe7=GXD6sgS%$U`V%B%l4YC;c$m+K1odvd8D5y6@-J0&`E3}^&59sO;)9A8Pylq z;cilqdx>w6R*TZ5Y_!j>Bh*wtjt~l@)v9FYOux(N80zy$I*Reg0MlL&4IY7R;tAX& z%&<%t!DYP_*|++)li!SjjSf$^7d7>GQ@%PaNa;JsnB|@eI*R#I!MgXLi#~vit=)4* z$1rc|^+EwzK8S;rxC_s$pF;9i?>oiLWU$r4E$-7zd~a&2t`4cHwyX5!{C3y2!XMp2P+a*)%^q0Xw8TK literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/transition-tool.16.disabled.png b/app/ui/style/olive-light/png/transition-tool.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..5d4d0b92375a6a76cee827ee15a57a63a7f09c78 GIT binary patch literal 525 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0vcTJ_ZBHBhL=)5S4F<9zLfjl3-eJPsG% zYw#)w%V^phd~1K)*P-yt1nmjVtrkM;;nVI-=kDG&^TYBr@*O@8)2r7jm9ljtSg-uN z_7IQ2oyWI-*p`nI3b{zux!1UN~lBel8B->-_}Jl zT_yU`#3rP-F-uI)p1b;2WGv7fA|XAZ6L$IK%sP{Ac}_E{FKbJO57R( zH3UI{BMGu0I6tkVJh3R1p}f3YFEcN@I61K(RWH9NefB#WDWD=_h@#S>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b;R>_fbhLP-u&%i(`n#@ugRH^EDgrv_71C zVdJVJ9hbbm{FPtjq5H`24&$l`le%k9JmIS9~g4a4@=2Z9Til99(MQiZ;Ko|P{6{UXyzQoSF-o`)w)|LFY`GV zPVC;2yPSDqaHFj{lP3EiU&P>>SX7dkrw~+HoSk2` z{q&icKzUV=d`elpinR(g8$%zH2dih1^v)|cB0TmfT6qObw zr!r)eloVL$>nG>u=H}-W>y>9_XXd7+WF~@?>w|duA&GhE`SF>_`FU~kH6{SHGkCiC KxvXNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@eA?>;K2Wnf^8^K@|x$+-9QrfuFK2Z6SS z`PUpTEOGQ~c655gvGc!RQM<^p4hBsw-Y)JS6^&aJx$n=PdETVCyz<`NqVTvUTMi1R zZI~a%clz1aSNf}uvT28~$gTKLF|psj{^h#!B7e$v%~~Au?|zAi`%~s(amL@7%-{0Q zPGMBuQ+hxnUs~W`G@HxEGRBE}LLE%NY0i?MT0nS;@K=?Mq3*-}1MG0xl* z=3us7IN(4wi^#{PjIA}94u~l( z-DNP^AN!lJMDA7X7cuxI7L{b?DFl@kXXlq~KYeB~}U&Kt;w7MWsc_sSFtQ44$rjF6*2UngHZu8TJ4G literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/treeview.128.disabled.png b/app/ui/style/olive-light/png/treeview.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..af071a4a596b2c9dd7e11e959d139409bf816df5 GIT binary patch literal 989 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;3@RqhZ4d7OHTihDIEGZ*dOPc^-(v$2xAoC= zCbRmkwD4*(Wl!7lU-<)z2lJV=I*r#_pY3Mb|~fZ!(%61-?hX( z)?3#+v$;J~bNNo@vR?b#E`9C~sqZTGh6wmbihVFH-x0^fv5bdn!s9y+s}yGxExLPD z@8S0Nhy&5@3ThuTYc@08*?;HZFNHZqIte@PhnaCM=i$ipvi7LP=sW*^?%DSEPQ3kD z>F=*EkNzJNAr?k3_e8V7?+M@qsJq7vn1~wzr~hUIK;7RoOtU zVR)SKrCsq)LrMMt{sa6540SN*@QcZ(QNBTb!ajySNN{5XCHj(|F{hj|3YhZh2RqPe zkrLO4635b#jQk=7-^8Ml%shpl(&Fs=vhAnO%mm7-g5*;YOH!?pi&B9UgOP!ek*I8z3lt5x`6-!cmAEw=+s**YD-4n#8-nxGO3D+9QW?t2 z%k?tzvWt@w3sUv+i_&MmvylQSGKMHBElN&h$S5f(u+rC0&d<%w&nwm|&&EaloaXvXEVM6-v^Cufb z4eIKDbO+As4V>S|xtpo2{=fdCNlr7IPH>5_wYBe;s53M$Fwpw=C-G1g6N`q1LC56R zY!cj;xsJW(uNTZe^r4KILEBelgEPxBMxf~;C9V-Aj-@3T`9%!AiA5!uc?v-L1P+nfHmzkGcoSayYs+V7sKKq@G6i|^dL{Vu` zawk4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b;R>_fbhLP^iz-#WBR=_}fbdc@HZHxLn*X zEh6r~tf%ldd=k?g2G#_@4+jHX-ZUFVd}_5+;??ezGjU^ZTWn@`PV}qrT@i-_lTTjG zM|0=j3l0c~4sJJD!J2#5LDA}C=;xm=HVIz-oKhR-zQ=x3y;kr<%Ny6cL;uL+)aiv4 z&TalbW%UV}H|{oJ7iAsFFUZ#9m$QdkMlj5F$xzMkD!&ADnMjFiM2TZ*Nk)DVgKuI{ zNoJlxP-$^?e%bcZXJ!KBRYCG8i6yC4$wjF^iowXh$Vk_~P}j&Z#K6GH*v!h*P#efF zFlb|1v=l`{ZhlH;S|x4`-{Ykuff^)1HU#IVm6RtIr81P4m+NKbWfvzW7NqLs7p2dB zXCnnvWDHSMT9lm1kWo@nV5P60oS&PUpI59`o|&DQo0^iD2vV*O;^~JZ=B4MyXC~+8 U#m(240MyRl>FVdQ&MBb@0GB4Ng#Z8m literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/treeview.64.disabled.png b/app/ui/style/olive-light/png/treeview.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..356c2a9ab8659b9af0081d45c235d5119f78296f GIT binary patch literal 648 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@dVoZBAW0}6fjba4#HxcBy&A%ByBK-Qq~*bq6#{Cn6nX=`JUSqI`nz9FdFvD#myCyJo)=EP)svLo%3k*6 z&8a_Dkqb)Obw)o9jrKnN zW}ZS&X>oRb+4j?CW&-6^LGmeyC8<`)MX5lF!N|bKNY}tn*T^!&z`)Ab%*xbA8^|y) z*#2sV1&W5;{FKbJO57TbZD#;RD}yA+hT#0PlJdl&REF~Ma=pyF?Be9af>gcyqV(DC zY@~pSj3J6ji;`0rGD=Dctn~Gh^K*0a^NRJ#GqW>uQ&Tb%LCW<(JpGWwy!8C|%;fyM UxcM3rfZ7>6UHx3vIVCg!0R0T+0RR91 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/tri-down.128.disabled.png b/app/ui/style/olive-light/png/tri-down.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..97108d0614c2e7df28cea00054e0dd9939b6b3c9 GIT binary patch literal 1364 zcmZ`(YfzF|7(RTGf@w6UuRlAR&H5os5Pt8+ImmRW(udV)QzB3wiY$_bN1IZvoq&C&w1YGdFK7~o^uglL8ivm z#sC1*kl=tw1mV@fpplzPz3PtuI+@O(18}o=?Gkeh!U?S4NCp5oB*d2wfF5bVGXP|g z0hmh!z`Fu~jp+UNEE^dGUQhh0H--|@^)0)QNJ9EF>@9}SJ;h1!+ti-vR)br%zXXERr z9XjHNf+p@I&+PaC8fsAYcwo|J;@50N1=jg|!xyI$FIT^syZunyX_P-N$yp4~secm{ zm&b(rrJa2pY`^(CR=KLh6q4IP(^4JZ5aT|WQIo%hUzp){KWOu{X!(?0i1OW25H4wZ z{o204gSwX6r>1KkFK??lm>i@ zuP|L{Qg87eT~hst4Ly@L>S?-uyQ}XWFWK+fw`rr`+%$*bE}PcAJr*6O>Qe7w<704n z17ZtR>++FLX3ubWFU6VbEIVA!Qf2*GztrYCTo_l{J=-o-qL-bO0?S-bQ5_bq3>`e( z?zK-*G}?D-sc5JWDt~|j7|r#SV`$J@+}!7xWl)8!`sfR*m}zqjW7*1Mr&;Hzr*8X=pPPRg>a%?`Jh{ftX=kjc*Qzb~? z@vnq!s18}iOT6X{=BKs1ODlcQu%1{q8gw)10X|}mb(t;256!VUj(m-e_=8nmcLK_h zz8f!Pbk`SCX!p=Q`X5n^`1ILm450)L?}`NP(N%g2gLIPWX{#;lf@)XNK@oaMzXx^2 zEO^Gour8GF1K$?jA}dn{g7avB{t)Vf)5Wn@f0s9O%-$w?-gTyXZ0UEKG z1uS%tNEmj)`YYhzT4(qpnyqJ}I!S~vCli%g**%|GyA>{9gftVyoiZI z$(Y1yIIxxoAB0HKCeVw0w(uOXBqoj}n?%r1ExxJnUTlS~(x8l#IFXFIu}uam{o!la zfQ3NFoV0#qqw$Rr|Ih^2?!ypW+5@=qn8<{x_?8Jp{K+pD&G|Q%DJ;dL2#%wC^9I>) zb5UT7h@L4*;R^tRDG+gagvd-`Dqq~*|D+PpiK{xBDdKpu1RMkag-oHik+-^0Xi;Rc z_cl-O9TXSjK_<7)-SzrUAdS!FCT0JBptl_$Ulg!fop6AkB+6n6I3O!4%bm+h6|$J= z9CyAT`SN=oYs9qeUsI-l#Q`ZIQM$K>2aBJU#^(v$v$(0;G!C1~T(x_wGLI-GFPWdf WW$}6OwayojI0y+03%I^3QT`8hp+CC- literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/tri-down.16.disabled.png b/app/ui/style/olive-light/png/tri-down.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..c11f4a23799e35dec395904e8383ab465769b3fa GIT binary patch literal 572 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0vcac+Bf4=A+S)5S4FV=}x(@Aoc$@>pN##_xtm4TQ;53e=8$&SMET1 z7iWIKI86FRGaFWs3blm6;z^8g5A*cT+gaU8lQk zo#lrbgO8hJnHMS34|FH00)|WTsW()^Kb) z128HWBtbR==ckpFCl;kLl$V$5W#(lUCnpx9>g5-u&wghk1yp1VQB+!#oXU_ont`Fkrha~2u=f`Iz=jX-E*O&m*&fw|l=d#Wzp$PzR C6~kNr literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/tri-down.32.disabled.png b/app/ui/style/olive-light/png/tri-down.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..a09b52c6f2a5eecd0cb110deb9d446ff029b405a GIT binary patch literal 684 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 T$trgx5(f-=6z$Zy)Y5+dcvn23 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/tri-left.16.disabled.png b/app/ui/style/olive-light/png/tri-left.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..daf70fe69033975242a52741013c045564684cdb GIT binary patch literal 581 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0vcHEF!)0TkNe>EaloalUloUamt1B5vn> zqhm!@vxc+Q{y)BPfk;VV&}=`!dZG4+*_UQKoiyk0U%L(g%hjDeJ7nS+GFim49=j}) zVF-~aFaOFu`^}4Zl_RfPbLKYO35~R6bK+qaTzx3nXWQ!!`OedAwZ5M>__o_|&gbBJ zd&4IDSa|l$x@R0KPfy>zT9)I&j5`|~PQ2N(;`Mh2hPzstjgwj`H!fHbzcO>`nZB>O zzr>fXUVFsV>)SSyB#UhB4~&s>ecc{U?Gy*PU!=q}qQtSZBqP6w!8fs}Br{JTsI)jc zzij*IGc$qmsv!B4#FA92mdKI;Vst02~j=SpWb4 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/tri-left.32.disabled.png b/app/ui/style/olive-light/png/tri-left.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..fe8c98f1448c318422c010e7bcba959eea756e6f GIT binary patch literal 676 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b;Rv(sfq_xj)5S5wYvvyuwzHO=RpDSql(TC9`E{{ z^U||s-I3$`f74akrbqie5M*p;XVsAt`0!(e0=s-gqD|#LAa0h=`dzO^jiyIag<2Qi}1@+7mDG&IGb-GhWXz zkA00&(Sm}m7oA6RvXsQL{1s2v>8Ugy4PTIbX088|L&ta494}wttvY$N#51Ouy<1}? z=bp6H+jV=sMcbPAkUvY-cq(oD3Jfuk64!_l$I_CF{2~V5#G;bSJcXdr;_Upg?WfPo z1j?&|6K@wy`aDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$Qb0w<5Jja$$*Bw( zB_#z``ufTFxw-jy#d_tL*_pYiDVd2N<@z9=en?_odVYLna(-Uie2ob}?F^o-elF{r G5}E+PAMr&1 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/tri-left.64.disabled.png b/app/ui/style/olive-light/png/tri-left.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..3d3a97c0bfa90050858e689e55519491177bca72 GIT binary patch literal 922 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@dVO&TwH05x%Xx;Tbp+Jd0C!0!zi3k4wH`g=VwWu>LLTs9g;ERet=P6~&-=3+uAou&L-CVQG-+Tw+^}UiV z1u}_WVB}rD6)V(?8YD#^@K2r4bk&M(`3`pitA zyeddOC9x#cD!C{XNHG{07#Zmr80s2Xh8P%F8Jk&|8fya?1_pw2H}{}u$jwj5OsmAL zA>jZwFmW?Tf@}!RPb(=;EJ|f4FE7{2%*!rLPAo{(%P&fw{mw=TsK^+isI(|Kl_8^~ zq`*pFKRG`)H$SgfuRJq5GdDFQGZCa*AH>rSNz6;nkIzib&x@O{F#)KZ!PC{xWt~$( F6974uU^V~% literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/tri-right.128.disabled.png b/app/ui/style/olive-light/png/tri-right.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..4fffe4e996b01979f00d893a8c29663b18b50417 GIT binary patch literal 1374 zcmZ`&Sx}Q_6uo~E$bx7hlz@;11Q~`c0VQe#L((9i?1>gpNDu-^BMF5-5Rv|XGw3J< zYXwwP#99Tdq)MeCLRt&$$fi@OVv!<>EP^F0f)JrU)2BZ4;ofu4J?G3f^Ud6&5n+Mm zlr zU;~Uw0l4J=^wf%mNMB6A?b{J31gI%;^u`!DHE4G_0HbiZkm5mu3|kU4!Jz@f*9Zfg zINu#XCjsys!9u<`>)H786r}~9N}TBN-LtL(f4MUH6Twf@qPa&OEY0&vK8uWyr^h^M z<N@iTbTH1u|j*vble zl(h_Zn!a-A{KDgVye0#)?~tqY2L>Q~Ay_ z4ZAb1F;Yc4v(yI%d%gVnCaS*W+0@;h-_)}22F$iI_s@)c$mJBonYg2oj=a9fvB;Tw zoh$CpqCHBOR#}pBm9}}>mBaMxjB{bzit7qY3D$KvxBB;t9`kZV@cMDDFGZ5$UbcBi zzw)|c9tStYMFY{NqzbG4FRBp^F4-i9Znx?N&6+OgNf|=3hLE*YHGezAGH!MvZv~o= ztJ|cAcx$Amqy7#z@wr*MRcv6&i_iJ0ljV{E*4BpFpB)P};HEO?j&o1HiHOY_Yg#l7qegqsN-F9yiP!+=}q}!Fe98mCdgIzN((2@I|t#= zkP;G<+1r3CUjQNb-@p;VQDlPj6~2<@0@RMlcd`Ius$csT_je)o^SG(hSTbCpbwdQn z5@D0X2$l3TGEMGA>c{|^TC=FP^k|XKB*J;-X}usFJbMM-tt)Nr{n0#K^xWNfh!=vB zw-VuDQSHh~hQ!97*W?Oq8)N2AUfoMxskD4mzZ7RD zxoi?))w~*Z8DD|iV1e&%38$deJO@ZJCc;&N1=8OdjzjHu2xJ;LDF)b z1!--!8V0aXoUv_nJH0aWuHTR#o*1u@ zaTC&H7=Sn1+uMWf<>9?q%w}`fbGSYm+^~Vo?&cQZ{u4-1Cn}N-{D0tbvQHBhuvvaV zq)yUk7H7J nQjsD{RKzdaS<8$ij#nkCC5i;KD(-?y2^NRofH2_=fi(Xg?Y1PG literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/tri-right.16.disabled.png b/app/ui/style/olive-light/png/tri-right.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..d2e62064af9c0b2328ed30d17e17455c2557dd3c GIT binary patch literal 575 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0vcHEF!)0Tf#2>EaloalUk7EcYP=k+%5K z-5q+*I$CbHHalMU|KE0N+5E*1f2FPKp7U%=@!}6QdyYR&WMG)WDK5E7yea9v^7;)6 zU%$C{_c>GP^@$g~mSp4?G597Hm1O2A1eF$N=a+3ieP$+5 zUKJ#tl30>zm0Xkxq!^40jEr;*40VkxLktY8jLob}jkSRc0|UXin|n|+c%%uP+nOav*{2l4bn67$mY<1>@<^Wx@fOaN+U@O1TaS?83{ F1OR3>#k~Lk literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/tri-right.32.disabled.png b/app/ui/style/olive-light/png/tri-right.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..a3c933cc791d257fc4609b7dc62a6e4ce6193c71 GIT binary patch literal 672 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b;Smwxi(_0|O(!r;B5V$ML08&*vR7;Awx` z!WqK%hckV}sn)&!Pd98alw;^@@@h0Z;pb60Ysr3&`!Y{|&$^N8`z39Ik9hLD&j-S? zwy!m8%u}meX7{pr#;E$y;TXanEAZT9Rb2{@dJf>49YTRSIh1BxAKAZ6XQug=EvoqFA(H*es|eiPj08v z_lJv_MEE%h?r3`)v~4okbCq>Tq0y1qGty&r{3sXUKhG-AU&}2ZH;-H4-Yo9L#{4_o zr~Yzke|`HSf11s_TF=h)z@TFgDRGS`aV#y#$S-2>O)M(O%u@&|EzZs_+kX1YOrX3f zNIoU8B-JXpC>2OC7#SED=^7a78d-)I7+4vbS(%z>0~rPeSFC!OP&DM`r(~v8;?}S< z-E<#NgCxj?;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TyA&N?il2aKnN=gc> z^!1bTb93|aiuKAfvomv3Q!*1l%Jo4!{gA}G^!)hDNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@e=)^;>}VqjqW`k!AXc0)(==}eGf5w*sjg#Az)*1?WUthh#`nTccstdO7w$;j~rIn{iK3LE1 zs((JHbltHRiw_&igbjg0W=y|y zdVR&NfTuQ%4-D$wSY4d_{@GH&p82nSEi;WxsC3-n$H6dV`RB($Tn9NO>}l%yZWDdN z;?NIkEnB$+k3BO_zTr4D;iq?z+gl+?7N!OF{H5kha-Yh;Bn=wo@;&(j-6ZXM(tg#C%2tb$J#AO?d_d?f1M2y6-s^^xv}zINxJd=-XrLpi}AI zQ1Qu+!SJap!=qETf3r?}s(Uj)?I9bp&*pV4q4RDZ`0z&D<23sh?v$sT;xm4;GRUl! zoyK}1YQE%8KZa*@jjI&Z7X7cuxI7L{b?DFl@kXXlq~KYeB~}U&Kt;w7MWsc_sSFtQ44$rjF6*2UngFO2V6FfF literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/tri-up.128.disabled.png b/app/ui/style/olive-light/png/tri-up.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..71d8bcf4af2c5fe1cb5167e6bbb5efb432b103ed GIT binary patch literal 1304 zcmZ`(TToM16x}zuNI@|%lqxVt6fkjoBoGCOG(3b5R3P&3G0qS|5<&!WArFEW<-(xG zDu#ACji`)aMvG`GSg|s+gP`JzfV5Ik3o6rKe4+-cL`mq)^vlllW1qFx-fNxnwaz|a zTC$IKfHwg6qzDo-2*lm>8A_arsOC5VPY?+(Q6!OOAGIh#?lFymiTm0H(6WrXB^K!xiKQ(>~_#IYo6> zYTA;PCKcG)nHEK3Fh~8sSU<@-ooA7{F7|)hi1+26yH^x>~j|3r^h4XCU$eGOo>%nhRgvyLU`nk{6D4&eUug(3s)XTE*qnqexr zy1|8ijnARmM=0|4Yuo)=5$YJ(5=HU_F^_}Hgi_uTgbZtVAxJc2@&b`?knntw#nAoA zISXyOvkwD$Vgme7^UYTWKc<|Xn=YKn^*FCySEy;CcJW8~m&VkC#+3|d+*ZWkj2bIH)`h#@h zgx4L?bz3j(2V~%eDRi@!*~Ch2CB;RFzRF#U@9Lb@O~X~zb=0LOGo2UPO~O@UYTsXh zDdMrZIdB-OXr5?7u^s1wK45h=;H|iMm;ytg=$Z3F&(kl(4(8wbGWy+#K2LnST=h)( z*TK=i8{xwT1mzCbK=60b!SoLA$gLFT=xxeVzt{I1W%ni!^Xjsuc~^r%6qRdRs@{5+ zEUOf{^td%D!Kqx;ex!4K3tY^s)x#t&t@FyxFD6HtHjS=%tfhE^ieZz~=f8@mg1fm^dJp7yDF zYlSWLa=QAVXOU=Vh$k^|Vm-TGyZ)@D#P%b@lg=D_{upPp?{tg&1aYA>dOBF09y8uk zS(;qj=B&0Qm>$_*(B_Zj^iSyaA1od0TJTPOF-Y~k{Zh-h9WOhIdettaL(J{Fzwswz zaQ-*HIU35cT-na4;{T?^of*S>3ZvwtwxBkE2swPNN!qN5*J=td6{Lz)8ikUcp;Z@R zWfyua^~65Ry_bqLGOk1=BLE`U5fRJS;mabTv)F7dCz88z`}&c7n9N+N>-ji!Xl xVo9*#Voa%Cu2U2$ie*xT*ez$d87oVylw%@=1XJc5W7ZLNNJ&adJd==H{SWsG6L$ar literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/tri-up.16.disabled.png b/app/ui/style/olive-light/png/tri-up.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..9e3b6aa346dda2f246d43cb6d1310f28bc75e98f GIT binary patch literal 575 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0vcTiem_2`IGA)5S4F*s~}kyb}j6BT+hjwsoG z+xk&^d4R_5?88~w-|}`&pU%v1MQ!E0#X@&je+uihX%-k(Sehhs)=bmQ^{9R-&3xdf z%GAio$1)q=?_s#o=c3j>o%=h`2sL6Kx>Fz~G8iFB6J}-29Zxv`X9> zmZqET18R^2*$|wcR#Ki=l*&+EUaps!mtCBkSdglhUz9%kosASwkugM3X;E@2LqmdKI;Vst E02SQBxBvhE literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/tri-up.32.disabled.png b/app/ui/style/olive-light/png/tri-up.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..b8b2f81f9d7cbb754c573bd81331e2b637151703 GIT binary patch literal 646 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/undo.32.disabled.png b/app/ui/style/olive-light/png/undo.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..bc24ba4a378e38c2b003db729d0095a7d4853918 GIT binary patch literal 694 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b;R@tA9fZ0|TR~r;B5V$MLsQ4*DH(5OF>4 zGy9l;%f>?G-k_wO|Nr&147E%Sc5vR12^e5|9 zjcN(I{}Yo-s{&?x$u|(uSbph`m7nj_m0RZiYqn$DygR34gCv(2FbqXXTq8;xOG`5H zix_+pi%K%{6oN{Nv-8WgpFT4aD6a~VPf09EwMs5Z1yT$~21Z7@28OyumLUcPR>o#l zrl#6JhJitmZyP955E^pxQ!>*kacf`}umhzYNstY}`DrEPiAAXl<>lpinR(g8$%zH2 zdih1^v)|cB0TmfT6qObwr!r)eloVL$>nG>u=H}-W>y>9_XXd7+WF~@?>w|duA&GhE a`SF>_`FU~kH6{SHGkCiCxvXNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@e=Z}o2g3Nfj9x;Tbp+^cr?oj&pub<(&QLeYDM32)elk92BR-RqB#w0W6(ZgNh^~;a=eW@=K zI&PM*F+xY|^gKl^@%>qogCA|~xzqYnj^*B*&vx;$dOr)Mybvsy6<2XFz5io_H=F#F zU+?y_>ix3N7yU6gosD(dBgTUBGaO=V8m>%msI~c7IayLrV2fSkofn<#eDf~+Qjxu9 z7|S%N-&1J+6;XXb17Up;15tee1Mzt61fzX!2Xg*QYk07`UdvnLM8WywkNY>PEU>Jb z%wEHP{K0KeX(sEQc-N(GvbKC>FZ4ai{J}&2M5gP)k1a0Te3EG54K&C+l%x z@BA~_EDW<)Sk!l$Kal-@{LT9}d7JzEdNp?FUU+$Hd6f1n#wUlPpEkZ&yZyrr!^+Ob zUg{!u{pBlt`8}!*mfv;{JhbqLzMFXAuR5Rpf{0ZGmrUveI9`M@Gzi#zt$M1`e!)Xy zL44vd=Dr0XB@X*NS-xn`NjVp}@&NC#5>3GiYXvqxu=LXA6uKxgp|9nkc+FbPyzTeq z?hI%>9dw!)_lz2r- zTq8;xOG`5Hix_+pi%K%{6oN{Nv-8WgpFT4aD6a~VPf09EwMs5Z1yT$~21Z7@28Oyu zmLUcPR>o#lrl#6JhJitmZ`(E$4Y~O#nQ4`{H82at)x7$D3zhSyj(9c zFS|H7u^?41zbJk7I~ysWB4dc6(xT*4hK!Pu0xNy}z>% literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/videosource.128.disabled.png b/app/ui/style/olive-light/png/videosource.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..e84e6b47e6d10d84597469cdfb387e5b33c3122f GIT binary patch literal 1250 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_GgT;3@R3025Y}EFfa#tx;TbZ+5;qlH(RAb{ApZ1@R_xrc^ z=8vljHn(+V{6F2OonTkEy|LuV&5hz4X7HF*ncDPmNBFQxd#yGv2x{=#|9k_(-n#RV zjJy8MTg>G1%a)yW#@Fh-op;{~FiiOK;9b(upaTjE8E$jlXk*GzPmt!?Ft;IB<3JhH zHUfgPBe(*dHvUl&h-aL-O2lx1_2Z2q3{zfZ$v@=aX3$E%C-=@Rf+1iRN4abD<2}tx z4Tn#k>$}slf#Jc5t2ZaU78GNU*_vPWgwucW(Kv<=U$5Oi>U!m7?RWMW?{02(+_-sz zxXT@lmj^@{7~&6|QO^YGONf>gS!#BOiD5-E^9;Mtms1!Ro;u6SH1+D^WH@!-X>r^| zOU7k;7d11TsdDvayAWt=EG7B+TbEGPtIo46tXqt(y%r6J**gnw_WWJ9chQ{Rq6gUfHU{Oh8kx;_`~3gL3e~GIFPlF~ZxcLsJ)gO&HLjgo%-cPuwj7$={{%J319QNUe)*crnKqDNVBoxTjy8&h-29Zxv`X9>jDDz02WpT6*$|wcR#Ki=l*&+E zUaps!mtCBkSdglhUz9%kosASwkugM3X;E@2LqmdKI;Vst0Lv}{vj6}9 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/videosource.16.disabled.png b/app/ui/style/olive-light/png/videosource.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..f938b1c097665d27a961093e3a628ef8fe27edca GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0w{@G@BY6)4p2>EaloaenK>ja-Ku1YGX7 zC@am8IQZ(piKQR@|3AUPBzB99`{Ei`55c~S#ldIaozXe1_eXXW|E;vU>E(wPtaO{> zr*VF1wfPcErERAdZMR9cjr%8*e~QedU8pPZkYo1a&#SDu-jnVXuDnFvy@58~;EB<7{( Z$7d$z=f%y}m;lty;OXk;vd$@?2>^HOwod>6 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/videosource.32.disabled.png b/app/ui/style/olive-light/png/videosource.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..7f8c5068fce40fd90054eb0444645610767302f6 GIT binary patch literal 628 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b;T6Ww7=uQ0TFzi(`n#@wb!Davd@dXi4wU zsM2tCT%xtC;uB}h|Hb?d0)qrxMJ{&l_qgty{nt_PVs}?D=kA+7Z#1&}c+Gxf+j#-j zZqJ9CY-El+4+_7ac4URu^;3KTOCQ&5^?YkuwqU`Fr$^7t(+Tu>%NRYWgsbxVl|*l* zldE_HzRr&>5$-LX5a9jx*SSpQpznNW}ZS&X>oRb+4j?C zW&-6^LGmeyC8<`)MX5lF!N|bKNY}tn*T^!&z`)Ab%*xbE8^|y)a9%n`8%0BIeoAIq zC2kEyKUAgzHAsSN2+mI{DNig)WhgH%*UQYyE>2D?NY%?PN}v7CMhd9N7^0}OC^?lO zqokz3N?$)YKQ}i&uUM}NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$ekWf@c~ybRWUWnf^O?djqel5y|tbYK5N4gziW zZ#o&Ou?X?7Z^>+w=;&1E|M!0}yT4l#OYXu`2bTyM1g^Btw7U`XBq&FyZO!c!D!vzLw6^blU)OkLm*3Ra zFQ;_9o&M;`i6qZjf2PvzY@N4noEu*8g-3AUW zG?a5GlkVfit&d*yI5j@5xpC~_t|?B8pL_VPEpM@E^gX66dV@!I0qd3qu>cK+%{{D# z`1Yo1efW}D_F>jSh5~W-*dAjM2D!;z{0CRLys}ZSznOd9^zlA9efufz9_OD}=e<~m zm0^cn&7`t#Wy+u2-kcI)IohSR?Aq6PEBjloD|fN@Up=$jbJsV41??&8Ohh~TJr4fp zVBfUMT^!1bTb93|a viuKAfvomv3Q!*1l%Jo4!{gA}G^!)hDV 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/zoomin.16.disabled.png b/app/ui/style/olive-light/png/zoomin.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..8c1ecde5b272ce7900b8897c66cf3057ff01a66d GIT binary patch literal 693 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0w{@G@BYm4Sg##nZ(xMB{wwL|^|y4kE7S zrPa0y9(7;|YrDi|_K)G;|Df_&8yKT@B`~WAt>Kl|t<_^|d2!dr==rmAwfQaDU!_ex zHqNb4o4I?kanByDOUI7t#H;o3?{7P?dfwH^PT{kfuPj|1#+N1|-(wsyu`1=$JUt%M zORf7Rt}N#{xMTZP#nzcBsxKBuIYb#voYel|o~nssxMyXSDnsT(YC zV^hB3)4wyJW_m#E`Nt(TbM+G0gZ#zzI2km3VO{W@WmhR@_Jq6#XS$eJu9X~E!+XFc zef_k=go8e%T#czKruk0dRB)Vc)-Yw)6`3=#vRgN;?@e!wF{sX47nPS|qkW*Qf9hfR zmo|H@irKksPpkc>vwDu7X z7cuxI7L{b?DFl@kXXlq~KYeB^^@~+bMy0x^~y7|Gjmf@G7~|{^+7!Ski@+7 a{P@h|{JgmN8WVup89ZJ6T-G@yGywqN0{D&q literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/zoomin.32.disabled.png b/app/ui/style/olive-light/png/zoomin.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..6189eb0405345c6137409aeefbdbd88c0590405c GIT binary patch literal 1048 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b;RuYd$v_sHxr4#WBR=_}b8mMVA~zY|A;9 z=3X*$eAyG$7_!Rv+eP;O|1a_%VDDymaYORxG~Ef?6jRpo-&B#7ikkazpUUo?&)@7! z|DMO;@8Yj9TRMkv%QBA^=C2m*+ZwIcWgJXRT%zSMukT5`zz@Fdg&SHc6^|X>AaPCW z!SR~5W7l>`WmINM=Ba+TUv&F|=)@P0@4uT|*u=j(uhU_R$&+0w`}i1c zXsR)FO22hJt?+_#$E*ij=UpbH%FOMa<8brW71w2-uNra+GBR8jE8DjHfzJ~m20z=U z*&lDR)w3}iQIa^vpcA}%?c77nJqc5z!rR3AH1?lh+M)1ZZEmP&q?!0#x9ng})|*n& z8y_(+c)S)ae8+hAweu^60|jl7E6aNJP3f5PWn-M^ZULp#jFNBjwHM^R7M?BBVtLTR zF)LF2yx(69TPMZ%_S{~ddp)k$_`e;` zGOP7m^W0lhk1||;IODrYEbH{2P6yO?Rh|$1@G60;Dbp`>tJPV>8!O!|+svHN8tL#O z&3VtA{V!Jcc^@zEE>CmXJ|izGn=xbR!*8zfjLDogMGrlTjW{EszPfos{KxFg0sCg= zukBXKU9#c8qfBQOhwH~)-CtF=z~7a(;MrEIGS7$0ZD0LY{$qbc-p1jFk8AMPRlrm# zQsNp>;#gXekzd5%n^;tmnWqp`TAZC z>t*I;7bhncr0V4trO$q6BL!4s3{g~Cl$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6a jQmzl;>4zldrRT?ICggTe~DWM4fJMylq literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/zoomin.64.disabled.png b/app/ui/style/olive-light/png/zoomin.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..f7b60f9fcd1fd7243ff4162eac939cc83ed8ff96 GIT binary patch literal 1761 zcmZ`(dpr|*8~;t)F&y{hmdlPz9n$tvZdq+E+sv8fPB~*{7>6-)iRM-ZkwOmTUdN?q z*uhbXa(kEbx-8^OiH=*nha!%W>7CE}*Zar&$Mb!j@ALhBKhJ;9C8{e?QC>$L0HEkh za&(t=++M+X=lhdzclptdMZ>P3s3RY*{hT74q^@b$k6=1G>@@;&TgZqy7MXX#t+^6uU-r$!6 zKaB^OfAE$n2*%Wx|71{Ft6QhOSe-w)nS&JzD^03!#EH`da9!J-(7gS6@%}4@YELh< z$oR1I^JtZ>N(<#(dc|Iw)3tC5>eK8TQR3W0we{o}_pZany8UI5tJhQwmOREw`vlPDWv6I=LYV^)jW{R6y*XSNE7LN4`>{C*e z(%0*Bqu)Mj`#5kJO80edzMw3+mzeULge=(emPZL4A;m<8U5S{p?1Y z^>NY}^4#)P8n<|0c5(12(dQ&8{gw%-8(Bn;Nkrmx*dTpr&<`HTLZ>0@h zDC6Ozk3OaWeg`Tq^s7t9t+)@)zshrn)SI|I42fy@xACC2X@B=ATF9TU0SSZ|EPqyj z%>M%G;~V>P;9+BK6tk&2zV-wbAI8|1*G?Z6q_{0*mG-GerrVDa#(1Xj*=-`-MD^70 z>*?hTY)|Img`wX&#Nm>9;&+0zUrQZEvklsf%e+qPvk@j49twGlo86Zj@FVqmMC4jF zR;5%S=fjh#RJ;Huc|rF-Kd-6i(3!Hleq`m{&@o$nR~f49;`ZRI(i!>ztWL0XH1m>{ ze=*{FE%cq})pP5YkML9E%9FbvdWFJY)+Wi+4En$kK^xC2{6^e1OFNaX9WIFtE7+V9 zy=aGQ>0}OtCkIIkH+j3IsKZ&)#)o+0o4=>RAdexfRc0zLmzodofai>A@?xW}bE1{q zN3`HmmQzeX^8K0ygM+CfVpVN^{llL8lRuZFj0afO1}yDfEEs=XtwmIG=Fs~zEVJ)v zjp4X{C1(y5uo3XvnB52Gif^;KEF~+xvRb2kTOP`o*<&^7a}lXr;X9#r!RXfs^Scr~ z6|D+<-iNQ3wqxu?@*Za7)Ut9aamT~pi0Q^8G;O4B9Hwg10=R3CHK8_p4<^T$v!(~Mw-Q!{-*zp}h&u&O{)Sezp=Q3>> z9Hz7ZbBwvU8Rj2m<~E)fjID*G?Qttp>43p3h)SydClJXFW`&&l|AC^b=!4RL_TB{# zb_h3t&S8RtgoLB4sEAkwJ(_ux%?T}AwbPNBEdFbX<1m;YjLVI-MWY$)$Vhfn?9l{P o1S^sm%%bnv(R&Q-NskI;2e26IC|cFwd}$mwJGnYG*#~C)2bjSC@&Et; literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/zoomout.128.disabled.png b/app/ui/style/olive-light/png/zoomout.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..a9aab960274215e54783b4b8507b075050037d53 GIT binary patch literal 3154 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 X10urDJwA4eQwMA;?Ja7|2r2&stPGBM literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/zoomout.16.disabled.png b/app/ui/style/olive-light/png/zoomout.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..08ee06b29a8569a394c0b05ddfa71318661c3a7f GIT binary patch literal 677 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGlx0w{v^Afb%)r1X;_2cTqH#WT;%UD_2?DMA zfBp>S)DS$Bx_IG*6UV;SbAFd_ev$gnNnsXuVJ-OuMcw%ip^%aG;Ly(26W>u&#Q(w690rk>Ayc$EYaxZrNJNrcPdm83jS7*Eq$T_R+napx>}V zn2ll5OD|!A?L1dctu%~Z7IbsYj+Lc3Yxnyc^!r_zn7^pt)+IUL9yy;FyVL*fZR>P0 z@$mSeK9lFz-&d>azcRCwrxi*ktVDR+P^!X?na`RI% z(<*Umn9{GW4AdYAvLQG>t)x7$D3zhSyj(9cFS|H7u^?41zbJk7I~ysWB4dc6(xT*4 zhK!Pu0xNy}k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yf%b;RuYd$v_s42?R#WBR=_}Wn4;#&p+wc4{M z9PxX+gt>hg>*Wb@r#AlopT48r$#6nuS`?S4yq@!cTXGX}Ehl&n7g zl&^`NdTh0u;cce&q{gau&Y=&=6r?yJB-U|FTCV(4oJDqi^o|t?ah)FxH0@-$_na(W z5q>Px{c)E5WUr=k)_IbL!3JdL^YV3zST zi+>+`7Cip!{x@Bp?QpB=9`AjZS4Fx`W)XN+q*ph;Zrj1eiia*9{6a3=8iHGzou6?g z73^Pm>fv=>-Ysv!69be4c-JPU-M0-_G`wD!A;A*c=pbzKfYsZ$|Ma{QoKu#s&dW}_ zmp7RunjsCe|eqq_P@Z}QQ-CYI&d)Lgp%$abed7j6+ga(co%lU>g<(5-(%cGn&o#lrsmo}hJnG;OVj70Xvob^$xN%ntzk;PzA{jQB*=!~{Irtt#G+J& z^73-M%)IR4^^@~+bMy0x^~y7|Gjmf@ mG7~|{^+7!Ski@+7{P@h|{JgmN8WVup89ZJ6T-G@yGywqX!H+)x literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/zoomout.64.disabled.png b/app/ui/style/olive-light/png/zoomout.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..c83537238c25b6c3204be58c104fe1931621e182 GIT binary patch literal 1662 zcmZ`(dpy+n8vf3Y*6o;ST}le$l6#Danll)Nkx>!j7CSOmOffUYXbwjjDYS&Mh22Uv zp^$0TrPgI@YHE$xa*0-~goIp9(lDlS#^?NX{y2X;@B2RQ^E{vTzxRA_kiV|Bu{Hoe zH-JbWsk-+jG}ToVP+G%PRXrXbhzH=8BAw6FEh>(r6G?#pq+0_ZJPW|OY9*WjAQc6` z90dUEj{t1vUTq8UPzez2kUs%{x(k+Q71QDpqf!8XOE&@Q7ssvB9YCLM{9az6K$nY@x+On~2N|Jz-z#k@(hgwu=QE7;~}{Bx0MTgh0v zw(aA2gWVXhWIoTmGJKIumPDo#-&p2)ibO^AzsV~)Twn?-^e%EBTDSJt{ntVvO=i!{ za9g&!29@MLjE0uAoRH%Sr%S}Yl0w(E3z2#mpIHst4nWq%AU=JexD+ zHn|FB({dV)J1Bqj&9&Mi(t<57+}!g}mCe#`U+xf;JUs|CvalqacxH$_xIP!PBc_Tw zKJi!g@qs4cs431N=OCnW`^Icv~hZB?QwnUFZsPD z(#a38f6V%~QuG(UPF+2Wz|Y9Pw98ncozx`#4=q9NjM&IxjNtCJp1AKedc)sOw&= zA`KSS$7UI{{wb+JM$t^_>^nnvxaXPE6PTJL`O&Mze>hjV)L&S5r+DEz7bz@e#9ih$ zC1>D!96TkEi_+Ds98SFRgYTRt@~wtxQ095M*(r7Ng=SYeNs|)b&0GGW$B`l`^@m;T zN*kkv&-0e_?O~+e){1|e{V~|S7EInpcyG3k8kw-=7 zhFD~K#QQaNZLMDJ;gHT=&qBi`k24$#Xwku!+HD)=v+W4{v8=?pRmsQC70r_sJX0RW zu0v~_7~T0z@sPQjqouFi&#!XBR*%~y0=UDCoY@G3?9@Cyx%`GRNwuLe5E(~+R zYx4UJj)Zi*|IP-7_+&dizg43}?gOK+F*$Nxn%69*%>R)~bcK5A%Q4im2?_pQdG8Gq z`ne2l)$V*EHpjhbFSH#tTYU2SJx|nP<`+)7n<^(08Siyy@Unu26#6Sm+nCF6)=eH& zZep~5qOPMVRJLX9;+o`pHEm_b-8CUi>&tuB{H5Cw(rU6-UxR^(xWE0yZSpgnWxQAU zXf{>Qcaz!=ExN&dwucl-J>y0r>Kpwt29%Pd7V9$C6lma8p;{a*K^3#5K}6^jR4N9cj0i--8&1sJfO z|7iZto&v_Jmo58BV~Lj$@W9aO z_WeO#+UgRLlA#-)vvFkRwYHwLaOb79`K7XD{f_eSsr&>E4+K(qd=?u?N=-SzIeD+U=O>lE zdsAmn`AjUG$5b_dMxoJrP%eAWe-A^UuzUAm-7pTS0fo}P{O;uc1d=!mR$SWu570Ve zpQ-{oHZO#7;`jn8j|l_ + + @QRC_BODY@ + + From c876bb85078c3dfc63299db55bec387faabe0ed7 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Sun, 30 Jan 2022 09:57:02 -0800 Subject: [PATCH 005/114] try enabling arm64 builds --- .github/workflows/ci.yml | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 290e74e22..10630eb19 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -285,11 +285,18 @@ jobs: os-arch: x86_64 os: macos-10.15 cmake-gen: Ninja + - build-type: RelWithDebInfo + compiler-name: Clang LLVM + os-name: macOS + os-arch: arm64 + os: macos-11.0 + cmake-gen: Ninja env: DEP_LOCATION: /opt/olive-editor name: | ${{ matrix.os-name }} - <${{ matrix.compiler-name }}, + <${{ matrix.os-arch }}, + ${{ matrix.compiler-name }}, ${{ matrix.build-type }}, ${{ matrix.cmake-gen }}> runs-on: ${{ matrix.os }} @@ -314,15 +321,17 @@ jobs: shell: bash working-directory: ${{ runner.workspace }} run: | - $DOWNLOAD_TOOL https://github.com/olive-editor/dependencies/releases/download/continuous/olive-dep-mac-x86_64.tar.gz - sudo tar xzf olive-dep-mac-x86_64.tar.gz -C / + $DOWNLOAD_TOOL https://github.com/olive-editor/dependencies/releases/download/continuous/olive-dep-mac-${{ matrix.os-arch }}.tar.gz + sudo tar xzf olive-dep-mac-${{ matrix.os-arch }}.tar.gz -C / - name: Acquire Google Crashpad shell: bash working-directory: ${{ runner.workspace }} run: | - $DOWNLOAD_TOOL https://github.com/olive-editor/crashpad/releases/download/continuous/crashpad-mac-x86_64.tar.gz - sudo tar xzf crashpad-mac-x86_64.tar.gz -C / + $DOWNLOAD_TOOL https://github.com/olive-editor/crashpad/releases/download/continuous/crashpad-mac-${{ matrix.os-arch }}.tar.gz + sudo tar xzf crashpad-mac-${{ matrix.os-arch }}.tar.gz -C / + # TEMPORARY: Crashpad isn't compiling on ARM64 yet for some reason + if: ${{ matrix.os-arch == "x86_64" }} - name: Generate Patreon List env: @@ -341,7 +350,8 @@ jobs: brew install ninja PATH=$DEP_LOCATION:$DEP_LOCATION/bin:$DEP_LOCATION/include:$DEP_LOCATION/lib:$DEP_LOCATION/crashpad:$PATH \ cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \ - -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -G "${{ matrix.cmake-gen }}" + -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -G "${{ matrix.cmake-gen }}" \ + -DCMAKE_OSX_ARCHITECTURES="${{ matrix.os-arch }}" - name: Build working-directory: ${{ runner.workspace }}/build @@ -365,7 +375,7 @@ jobs: mv app/$BUNDLE_NAME . $DEP_LOCATION/bin/macdeployqt $BUNDLE_NAME -executable=$BUNDLE_NAME/Contents/MacOS/olive-crashhandler $DOWNLOAD_TOOL https://github.com/arl/macdeployqtfix/raw/master/macdeployqtfix.py - python2 macdeployqtfix.py $BUNDLE_NAME/Contents/MacOS/Olive $VCPKG_ROOT/installed/x64-osx + python2 macdeployqtfix.py $BUNDLE_NAME/Contents/MacOS/Olive $DEP_LOCATION # Manual corrections for f in $BUNDLE_NAME/Contents/Frameworks/*.dylib From 2643433f531102b88ef16d1ad0b7c6d2eea0b00c Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Sun, 30 Jan 2022 09:57:50 -0800 Subject: [PATCH 006/114] ci: fix syntax error --- .github/workflows/ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 10630eb19..2b7157983 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -330,8 +330,7 @@ jobs: run: | $DOWNLOAD_TOOL https://github.com/olive-editor/crashpad/releases/download/continuous/crashpad-mac-${{ matrix.os-arch }}.tar.gz sudo tar xzf crashpad-mac-${{ matrix.os-arch }}.tar.gz -C / - # TEMPORARY: Crashpad isn't compiling on ARM64 yet for some reason - if: ${{ matrix.os-arch == "x86_64" }} + if: ${{ matrix.os-arch }} == "x86_64" # TEMPORARY: Crashpad isn't compiling on ARM64 yet for some reason - name: Generate Patreon List env: From 75db2344f22c3b8a3de098477955b3ff85cdf61f Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Sun, 30 Jan 2022 10:00:28 -0800 Subject: [PATCH 007/114] ci: remove escape sequence on if statement --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2b7157983..7cbca76af 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -330,7 +330,7 @@ jobs: run: | $DOWNLOAD_TOOL https://github.com/olive-editor/crashpad/releases/download/continuous/crashpad-mac-${{ matrix.os-arch }}.tar.gz sudo tar xzf crashpad-mac-${{ matrix.os-arch }}.tar.gz -C / - if: ${{ matrix.os-arch }} == "x86_64" # TEMPORARY: Crashpad isn't compiling on ARM64 yet for some reason + if: matrix.os-arch == 'x86_64' # TEMPORARY: Crashpad isn't compiling on ARM64 yet for some reason - name: Generate Patreon List env: From 7bb07d21a2618a247779b0c73efd95bcbf9d6580 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun, 30 Jan 2022 11:05:38 -0800 Subject: [PATCH 008/114] ci: disable tests for non-x86_64 builds --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7cbca76af..3f668f18d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -363,6 +363,7 @@ jobs: shell: bash run: | ctest -C ${{ matrix.build-type }} -V + if: matrix.os-arch == 'x86_64' # ARM64 tests naturally won't be able to run on x86_64 runners - name: Create Package working-directory: ${{ runner.workspace }}/build From f7b1b3b1c04035a2f33ed4fe07f8375a7222d7ee Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun, 30 Jan 2022 11:36:48 -0800 Subject: [PATCH 009/114] ci: acquire x86_64 macdeployqt No idea if this will work, hopefully macdeployqt is smart enough to use the ARM64 versions of Qt libraries rather than its own x86_64 versions --- .github/workflows/ci.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3f668f18d..e1fcfb663 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -373,7 +373,18 @@ jobs: run: | # Use macdeployqt and macdeployqt to bundle dependencies mv app/$BUNDLE_NAME . - $DEP_LOCATION/bin/macdeployqt $BUNDLE_NAME -executable=$BUNDLE_NAME/Contents/MacOS/olive-crashhandler + + if [ "${{ matrix.os-arch }}" != "x86_64" ] + then + # Must acquire Qt tools from x86_64 package + $DOWNLOAD_TOOL https://github.com/olive-editor/dependencies/releases/download/continuous/olive-dep-mac-x86_64.tar.gz + tar xzf https://github.com/olive-editor/dependencies/releases/download/continuous/olive-dep-mac-x86_64.tar.gz + MACDEPLOYQT=$(pwd)/opt/olive-editor/bin/macdeployqt + else + MACDEPLOYQT=$DEP_LOCATION/bin/macdeployqt + fi + + $MACDEPLOYQT $BUNDLE_NAME -executable=$BUNDLE_NAME/Contents/MacOS/olive-crashhandler $DOWNLOAD_TOOL https://github.com/arl/macdeployqtfix/raw/master/macdeployqtfix.py python2 macdeployqtfix.py $BUNDLE_NAME/Contents/MacOS/Olive $DEP_LOCATION From a455e3f9b42ecc15d933a8701c3be458eeec9361 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun, 30 Jan 2022 11:54:49 -0800 Subject: [PATCH 010/114] ci: fix untar mistake --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e1fcfb663..d4c5f0f38 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -378,7 +378,7 @@ jobs: then # Must acquire Qt tools from x86_64 package $DOWNLOAD_TOOL https://github.com/olive-editor/dependencies/releases/download/continuous/olive-dep-mac-x86_64.tar.gz - tar xzf https://github.com/olive-editor/dependencies/releases/download/continuous/olive-dep-mac-x86_64.tar.gz + tar xzf olive-dep-mac-x86_64.tar.gz MACDEPLOYQT=$(pwd)/opt/olive-editor/bin/macdeployqt else MACDEPLOYQT=$DEP_LOCATION/bin/macdeployqt From b0c5f47695b4bcf28e3fb629d1809b242cc04c69 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun, 30 Jan 2022 12:10:23 -0800 Subject: [PATCH 011/114] ci: wrap symbol generation in x86_64 if since we don't have crashpad yet --- .github/workflows/ci.yml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d4c5f0f38..f41edf68b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -382,9 +382,10 @@ jobs: MACDEPLOYQT=$(pwd)/opt/olive-editor/bin/macdeployqt else MACDEPLOYQT=$DEP_LOCATION/bin/macdeployqt + MACDEPLOYQT_ARGS="-executable=$BUNDLE_NAME/Contents/MacOS/olive-crashhandler" fi - $MACDEPLOYQT $BUNDLE_NAME -executable=$BUNDLE_NAME/Contents/MacOS/olive-crashhandler + $MACDEPLOYQT $BUNDLE_NAME $MACDEPLOYQT_ARGS $DOWNLOAD_TOOL https://github.com/arl/macdeployqtfix/raw/master/macdeployqtfix.py python2 macdeployqtfix.py $BUNDLE_NAME/Contents/MacOS/Olive $DEP_LOCATION @@ -397,12 +398,15 @@ jobs: done done - # Crashpad symbols - $DEP_LOCATION/bin/dump_syms $BUNDLE_NAME/Contents/MacOS/Olive > Olive.sym - SYM_HEADER=($(head -n 1 Olive.sym)) # Read first line of symbol file - SYM_DIR=$BUNDLE_NAME/Contents/Resources/symbols/Olive/${SYM_HEADER[3]} - mkdir -p "$SYM_DIR" - mv Olive.sym "$SYM_DIR" + if [ "${{ matrix.os-arch }}" == "x86_64" ] + then + # Crashpad symbols + $DEP_LOCATION/bin/dump_syms $BUNDLE_NAME/Contents/MacOS/Olive > Olive.sym + SYM_HEADER=($(head -n 1 Olive.sym)) # Read first line of symbol file + SYM_DIR=$BUNDLE_NAME/Contents/Resources/symbols/Olive/${SYM_HEADER[3]} + mkdir -p "$SYM_DIR" + mv Olive.sym "$SYM_DIR" + fi - name: Deploy Packages working-directory: ${{ runner.workspace }}/build From 5a99f21e0600bfa2a13356508325828b8ce8ca28 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun, 30 Jan 2022 13:05:07 -0800 Subject: [PATCH 012/114] ci: force correct qt platform plugin --- .github/workflows/ci.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f41edf68b..a92d6d827 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -408,6 +408,13 @@ jobs: mv Olive.sym "$SYM_DIR" fi + if [ "${{ matrix.os-arch }}" == "arm64" ] + then + # macdeployqt is smart enough to pull the right libraries, but not the right platform + # plugin. We have to replace it with the correct arm64 one. + cp $DEP_LOCATION/plugins/platforms/libqcocoa.dylib $BUNDLE_NAME/Contents/PlugIns/platforms + fi + - name: Deploy Packages working-directory: ${{ runner.workspace }}/build shell: bash From e26dbc71c65c2b233fde0d4a1334749def8d04ac Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun, 30 Jan 2022 16:47:35 -0800 Subject: [PATCH 013/114] ci: use different qt5 tools package for deployment --- .github/workflows/ci.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a92d6d827..8c485753c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -376,10 +376,9 @@ jobs: if [ "${{ matrix.os-arch }}" != "x86_64" ] then - # Must acquire Qt tools from x86_64 package - $DOWNLOAD_TOOL https://github.com/olive-editor/dependencies/releases/download/continuous/olive-dep-mac-x86_64.tar.gz - tar xzf olive-dep-mac-x86_64.tar.gz - MACDEPLOYQT=$(pwd)/opt/olive-editor/bin/macdeployqt + # Must acquire x86_64 Qt tools to finish deployment + brew install qt5 + MACDEPLOYQT=/usr/local/opt/qt@5/bin/macdeployqt else MACDEPLOYQT=$DEP_LOCATION/bin/macdeployqt MACDEPLOYQT_ARGS="-executable=$BUNDLE_NAME/Contents/MacOS/olive-crashhandler" From 6f6d9aedf1442fbf1427b80c771d9e2d8e9ad1f4 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun, 30 Jan 2022 17:49:03 -0800 Subject: [PATCH 014/114] ci: use dylibbundler instead of macdeployqt Good riddance --- .github/workflows/ci.yml | 41 ++++++++++++++-------------------------- 1 file changed, 14 insertions(+), 27 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8c485753c..e1a053a5b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -371,31 +371,25 @@ jobs: BUNDLE_NAME: "Olive.app" shell: bash run: | - # Use macdeployqt and macdeployqt to bundle dependencies - mv app/$BUNDLE_NAME . + brew install dylibbundler - if [ "${{ matrix.os-arch }}" != "x86_64" ] + if [ "${{ matrix.os-arch }}" == "x86_64" ] then - # Must acquire x86_64 Qt tools to finish deployment - brew install qt5 - MACDEPLOYQT=/usr/local/opt/qt@5/bin/macdeployqt - else - MACDEPLOYQT=$DEP_LOCATION/bin/macdeployqt - MACDEPLOYQT_ARGS="-executable=$BUNDLE_NAME/Contents/MacOS/olive-crashhandler" + DYLIBBUNDLER_EXTRA_ARGS="-x $BUNDLE_NAME/Contents/MacOS/olive-crashhandler" fi - $MACDEPLOYQT $BUNDLE_NAME $MACDEPLOYQT_ARGS - $DOWNLOAD_TOOL https://github.com/arl/macdeployqtfix/raw/master/macdeployqtfix.py - python2 macdeployqtfix.py $BUNDLE_NAME/Contents/MacOS/Olive $DEP_LOCATION + mv app/$BUNDLE_NAME . + mkdir $BUNDLE_NAME/Contents/Frameworks + dylibbundler -b \ + -x $BUNDLE_NAME/Contents/MacOS/Olive \ # Main executable + -s $DEP_LOCATION/lib \ # Location to search for dylibs + -d $BUNDLE_NAME/Contents/Frameworks \ # Destination for dylibs + -p @executable_path/../Frameworks \ # "Install path" in executable + $DYLIBBUNDLER_EXTRA_ARGS - # Manual corrections - for f in $BUNDLE_NAME/Contents/Frameworks/*.dylib - do - for r in $(otool -L $f | grep "@rpath" | awk '{print $1;}') - do - install_name_tool -change $r ${r//rpath/loader_path} $f - done - done + # Copy Qt frameworks and plugins + cp -R $DEP_LOCATION/lib/Qt*.framework $BUNDLE_NAME/Contents/Frameworks + cp -R $DEP_LOCATION/plugins $BUNDLE_NAME/Contents if [ "${{ matrix.os-arch }}" == "x86_64" ] then @@ -407,13 +401,6 @@ jobs: mv Olive.sym "$SYM_DIR" fi - if [ "${{ matrix.os-arch }}" == "arm64" ] - then - # macdeployqt is smart enough to pull the right libraries, but not the right platform - # plugin. We have to replace it with the correct arm64 one. - cp $DEP_LOCATION/plugins/platforms/libqcocoa.dylib $BUNDLE_NAME/Contents/PlugIns/platforms - fi - - name: Deploy Packages working-directory: ${{ runner.workspace }}/build shell: bash From 37b695c5e1226f9275ca3792464eafc069f22812 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun, 30 Jan 2022 18:01:00 -0800 Subject: [PATCH 015/114] ci: rework dylibbundler call I have no idea --- .github/workflows/ci.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e1a053a5b..4dba22284 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -380,12 +380,7 @@ jobs: mv app/$BUNDLE_NAME . mkdir $BUNDLE_NAME/Contents/Frameworks - dylibbundler -b \ - -x $BUNDLE_NAME/Contents/MacOS/Olive \ # Main executable - -s $DEP_LOCATION/lib \ # Location to search for dylibs - -d $BUNDLE_NAME/Contents/Frameworks \ # Destination for dylibs - -p @executable_path/../Frameworks \ # "Install path" in executable - $DYLIBBUNDLER_EXTRA_ARGS + dylibbundler -b -x "$BUNDLE_NAME/Contents/MacOS/Olive" -s "$DEP_LOCATION/lib" -d "$BUNDLE_NAME/Contents/Frameworks" -p "@executable_path/../Frameworks" $DYLIBBUNDLER_EXTRA_ARGS # Copy Qt frameworks and plugins cp -R $DEP_LOCATION/lib/Qt*.framework $BUNDLE_NAME/Contents/Frameworks From bc81f5d8325daa84b82e768d04873e23852abc14 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun, 30 Jan 2022 22:48:33 -0800 Subject: [PATCH 016/114] ci: implement mac bundle hacks --- .github/workflows/ci.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4dba22284..15c09aef6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -380,12 +380,16 @@ jobs: mv app/$BUNDLE_NAME . mkdir $BUNDLE_NAME/Contents/Frameworks - dylibbundler -b -x "$BUNDLE_NAME/Contents/MacOS/Olive" -s "$DEP_LOCATION/lib" -d "$BUNDLE_NAME/Contents/Frameworks" -p "@executable_path/../Frameworks" $DYLIBBUNDLER_EXTRA_ARGS + dylibbundler -b -ns -x "$BUNDLE_NAME/Contents/MacOS/Olive" -s "$DEP_LOCATION/lib" -d "$BUNDLE_NAME/Contents/Frameworks" -p "@executable_path/../Frameworks" $DYLIBBUNDLER_EXTRA_ARGS # Copy Qt frameworks and plugins cp -R $DEP_LOCATION/lib/Qt*.framework $BUNDLE_NAME/Contents/Frameworks cp -R $DEP_LOCATION/plugins $BUNDLE_NAME/Contents + # HACK: On x86_64, dylibbundler doesn't resolve this symlink. Weirdly it does on ARM64, + # but perhaps I'll bring it up with them soon. + cp $DEP_LOCATION/Frameworks/libpng16.16.37.0.dylib $DEP_LOCATION/Frameworks/libpng16.16.dylib + if [ "${{ matrix.os-arch }}" == "x86_64" ] then # Crashpad symbols @@ -396,6 +400,9 @@ jobs: mv Olive.sym "$SYM_DIR" fi + # TEMP: Not sure if this will do anything, just trying it out + xattr -cr $BUNDLE_NAME + - name: Deploy Packages working-directory: ${{ runner.workspace }}/build shell: bash From efa74c72a80522fdd85a56e7dee13e341b73de99 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun, 30 Jan 2022 23:00:31 -0800 Subject: [PATCH 017/114] ci: fix incorrect path --- .github/workflows/ci.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 15c09aef6..e86e50aba 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -388,7 +388,7 @@ jobs: # HACK: On x86_64, dylibbundler doesn't resolve this symlink. Weirdly it does on ARM64, # but perhaps I'll bring it up with them soon. - cp $DEP_LOCATION/Frameworks/libpng16.16.37.0.dylib $DEP_LOCATION/Frameworks/libpng16.16.dylib + cp $BUNDLE_NAME/Contents/Frameworks/libpng16.16.37.0.dylib $BUNDLE_NAME/Contents/Frameworks/libpng16.16.dylib if [ "${{ matrix.os-arch }}" == "x86_64" ] then @@ -400,9 +400,6 @@ jobs: mv Olive.sym "$SYM_DIR" fi - # TEMP: Not sure if this will do anything, just trying it out - xattr -cr $BUNDLE_NAME - - name: Deploy Packages working-directory: ${{ runner.workspace }}/build shell: bash From 019b3cfe297e3b346a14af51c9009d40d57fa686 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Tue, 1 Feb 2022 13:39:43 -0800 Subject: [PATCH 018/114] implemented maintaining audio pitch and reversing --- app/audio/CMakeLists.txt | 2 + app/audio/packedprocessor.cpp | 11 +- app/audio/planarprocessor.cpp | 104 +++++++++++++++ app/audio/planarprocessor.h | 62 +++++++++ app/audio/tempoprocessor.cpp | 124 ++++++++---------- app/audio/tempoprocessor.h | 10 +- .../speedduration/speeddurationdialog.cpp | 92 +++++++++---- .../speedduration/speeddurationdialog.h | 8 ++ app/node/block/clip/clip.cpp | 3 + app/node/block/clip/clip.h | 16 +++ app/render/renderprocessor.cpp | 34 ++++- app/widget/viewer/viewer.cpp | 7 +- 12 files changed, 361 insertions(+), 112 deletions(-) create mode 100644 app/audio/planarprocessor.cpp create mode 100644 app/audio/planarprocessor.h diff --git a/app/audio/CMakeLists.txt b/app/audio/CMakeLists.txt index 6efe27768..5d190af1f 100644 --- a/app/audio/CMakeLists.txt +++ b/app/audio/CMakeLists.txt @@ -22,6 +22,8 @@ set(OLIVE_SOURCES audio/audiovisualwaveform.h audio/packedprocessor.cpp audio/packedprocessor.h + audio/planarprocessor.cpp + audio/planarprocessor.h audio/tempoprocessor.cpp audio/tempoprocessor.h PARENT_SCOPE diff --git a/app/audio/packedprocessor.cpp b/app/audio/packedprocessor.cpp index 10eb9ea18..f748da5c2 100644 --- a/app/audio/packedprocessor.cpp +++ b/app/audio/packedprocessor.cpp @@ -76,17 +76,12 @@ QByteArray PackedProcessor::Convert(SampleBufferPtr planar) return QByteArray(); } - int nb_channels = planar->audio_params().channel_count(); - QByteArray output(planar->audio_params().samples_to_bytes(nb_samples), Qt::Uninitialized); uint8_t *output_data = reinterpret_cast(output.data()); - QVector input_arrays(nb_channels); - for (int i=0; i(planar->data(i)); - } - - int ret = swr_convert(swr_ctx_, &output_data, nb_samples, input_arrays.data(), nb_samples); + int ret = swr_convert(swr_ctx_, &output_data, nb_samples, + const_cast(reinterpret_cast(planar->to_raw_ptrs())), + nb_samples); if (ret < 0) { char buf[200]; av_strerror(ret, buf, 200); diff --git a/app/audio/planarprocessor.cpp b/app/audio/planarprocessor.cpp new file mode 100644 index 000000000..abd2be85b --- /dev/null +++ b/app/audio/planarprocessor.cpp @@ -0,0 +1,104 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#include "planarprocessor.h" + +#include "common/ffmpegutils.h" + +namespace olive { + +PlanarProcessor::PlanarProcessor() : + swr_ctx_(nullptr) +{ +} + +PlanarProcessor::~PlanarProcessor() +{ + Close(); +} + +bool PlanarProcessor::Open(const AudioParams ¶ms) +{ + if (IsOpen()) { + return true; + } + + swr_ctx_ = swr_alloc_set_opts(nullptr, + params.channel_layout(), + FFmpegUtils::GetFFmpegSampleFormat(params.format(), true), + params.sample_rate(), + params.channel_layout(), + FFmpegUtils::GetFFmpegSampleFormat(params.format(), false), + params.sample_rate(), + 0, + nullptr); + + if (!swr_ctx_) { + qCritical() << "Failed to allocate resample context"; + return false; + } + + if (swr_init(swr_ctx_) < 0) { + qCritical() << "Failed to init resample context"; + swr_free(&swr_ctx_); + return false; + } + + params_ = params; + + return true; +} + +SampleBufferPtr PlanarProcessor::Convert(const QByteArray &packed) +{ + if (!IsOpen()) { + qCritical() << "Tried to convert while closed"; + return nullptr; + } + + if (packed.isEmpty()) { + return nullptr; + } + + int nb_samples_per_channel = params_.bytes_to_samples(packed.size()); + + SampleBufferPtr output = SampleBuffer::CreateAllocated(params_, nb_samples_per_channel); + + const uint8_t *input = reinterpret_cast(packed.constData()); + int ret = swr_convert(swr_ctx_, + reinterpret_cast(output->to_raw_ptrs()), nb_samples_per_channel, + &input, nb_samples_per_channel); + if (ret < 0) { + char buf[200]; + av_strerror(ret, buf, 200); + qDebug() << "Planar processor failed with error:" << buf << ret; + } + + return output; +} + +void PlanarProcessor::Close() +{ + if (swr_ctx_) { + swr_free(&swr_ctx_); + } +} + +} diff --git a/app/audio/planarprocessor.h b/app/audio/planarprocessor.h new file mode 100644 index 000000000..ad5167a95 --- /dev/null +++ b/app/audio/planarprocessor.h @@ -0,0 +1,62 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#ifndef PLANARPROCESSOR_H +#define PLANARPROCESSOR_H + +extern "C" { +#include +} + +#include "codec/samplebuffer.h" +#include "render/audioparams.h" + +namespace olive { + +class PlanarProcessor +{ +public: + PlanarProcessor(); + + ~PlanarProcessor(); + + DISABLE_COPY_MOVE(PlanarProcessor) + + bool Open(const AudioParams ¶ms); + + SampleBufferPtr Convert(const QByteArray &packed); + + void Close(); + + bool IsOpen() const + { + return swr_ctx_; + } + +private: + SwrContext *swr_ctx_; + + AudioParams params_; + +}; + +} + +#endif // PLANARPROCESSOR_H diff --git a/app/audio/tempoprocessor.cpp b/app/audio/tempoprocessor.cpp index 0a0aa777e..f22946227 100644 --- a/app/audio/tempoprocessor.cpp +++ b/app/audio/tempoprocessor.cpp @@ -36,7 +36,6 @@ TempoProcessor::TempoProcessor() : filter_graph_(nullptr), buffersrc_ctx_(nullptr), buffersink_ctx_(nullptr), - processed_frame_(nullptr), open_(false) { } @@ -150,47 +149,42 @@ bool TempoProcessor::Open(const AudioParams ¶ms, const double& speed) return true; } -void TempoProcessor::Push(const char *data, int length) +void TempoProcessor::Push(const QByteArray &packed) { - if (flushed_) { - if (length > 0) { - qCritical() << "Tried to push" << length << "bytes after TempoProcessor was closed"; - } + if (!IsOpen()) { + qWarning() << "Tried to push to closed TempoProcessor"; return; } - AVFrame* src_frame; - - if (length == 0) { - // No audio data, flush the last out of the filter graph - src_frame = nullptr; - flushed_ = true; - } else { - src_frame = av_frame_alloc(); - - if (!src_frame) { - qCritical() << "Failed to allocate source frame"; - return; - } - - // Allocate a buffer for the number of samples we got - src_frame->sample_rate = params_.sample_rate(); - src_frame->format = FFmpegUtils::GetFFmpegSampleFormat(params_.format()); - src_frame->channel_layout = params_.channel_layout(); - src_frame->nb_samples = params_.bytes_to_samples(length); - src_frame->pts = timestamp_; - timestamp_ += src_frame->nb_samples; - - if (av_frame_get_buffer(src_frame, 0) < 0) { - qCritical() << "Failed to allocate buffer for source frame"; - av_frame_free(&src_frame); - return; - } - - // Copy buffer from data array to frame - memcpy(src_frame->data[0], data, static_cast(length)); + if (flushed_) { + qWarning() << "Tried to push to flushed TempoProcessor"; + return; } + AVFrame* src_frame = av_frame_alloc(); + + if (!src_frame) { + qCritical() << "Failed to allocate source frame"; + return; + } + + // Allocate a buffer for the number of samples we got + src_frame->sample_rate = params_.sample_rate(); + src_frame->format = FFmpegUtils::GetFFmpegSampleFormat(params_.format()); + src_frame->channel_layout = params_.channel_layout(); + src_frame->nb_samples = params_.bytes_to_samples(packed.size()); + src_frame->pts = timestamp_; + timestamp_ += src_frame->nb_samples; + + if (av_frame_get_buffer(src_frame, 0) < 0) { + qCritical() << "Failed to allocate buffer for source frame"; + av_frame_free(&src_frame); + return; + } + + // Copy buffer from data array to frame + memcpy(src_frame->data[0], packed, packed.size()); + int ret = av_buffersrc_add_frame_flags(buffersrc_ctx_, src_frame, AV_BUFFERSRC_FLAG_KEEP_REF); if (ret < 0) { @@ -202,46 +196,45 @@ void TempoProcessor::Push(const char *data, int length) } } -int TempoProcessor::Pull(char *data, int max_length) +void TempoProcessor::Flush() { - if (!processed_frame_) { - processed_frame_ = av_frame_alloc(); - - // Try to pull samples from the buffersink - int ret = av_buffersink_get_frame(buffersink_ctx_, processed_frame_); - + if (!flushed_) { + int ret = av_buffersrc_add_frame_flags(buffersrc_ctx_, nullptr, AV_BUFFERSRC_FLAG_KEEP_REF); if (ret < 0) { - // We couldn't pull for some reason, if the error was EAGAIN, we just need to send more samples. Otherwise the - // error might be fatal... - if (ret != AVERROR(EAGAIN)) { - qCritical() << "Failed to pull from buffersink" << ret; - } + qCritical() << "Failed to feed buffer source" << ret; + } + flushed_ = true; + } +} - av_frame_free(&processed_frame_); +QByteArray TempoProcessor::Pull() +{ + QByteArray b; + AVFrame *processed_frame = av_frame_alloc(); - return 0; + // Try to pull samples from the buffersink + int ret = av_buffersink_get_frame(buffersink_ctx_, processed_frame); + + if (ret < 0) { + // We couldn't pull for some reason, if the error was EAGAIN, we just need to send more samples. Otherwise the + // error might be fatal... + if (ret != AVERROR(EAGAIN)) { + qCritical() << "Failed to pull from buffersink" << ret; } - processed_frame_byte_index_ = 0; - processed_frame_max_bytes_ = params_.samples_to_bytes(processed_frame_->nb_samples); + av_frame_free(&processed_frame); + return b; } - // Determine how many bytes we should copy into the data array - int copy_length = qMin(max_length, processed_frame_max_bytes_ - processed_frame_byte_index_); + b.resize(params_.samples_to_bytes(processed_frame->nb_samples)); // Copy the bytes - memcpy(data, processed_frame_->data[0] + processed_frame_byte_index_, static_cast(copy_length)); - - // Add the copied amount to the current index - processed_frame_byte_index_ += copy_length; + memcpy(b.data(), processed_frame->data[0], b.size()); // If the index has reached the limit of this processed frame, we can dispose of the frame now - if (processed_frame_byte_index_ == processed_frame_max_bytes_) { - av_frame_free(&processed_frame_); - processed_frame_ = nullptr; - } + av_frame_free(&processed_frame); - return copy_length; + return b; } void TempoProcessor::Close() @@ -253,11 +246,6 @@ void TempoProcessor::Close() filter_graph_ = nullptr; } - if (processed_frame_) { - av_frame_free(&processed_frame_); - processed_frame_ = nullptr; - } - buffersrc_ctx_ = nullptr; buffersink_ctx_ = nullptr; } diff --git a/app/audio/tempoprocessor.h b/app/audio/tempoprocessor.h index bac242751..c56eafc5d 100644 --- a/app/audio/tempoprocessor.h +++ b/app/audio/tempoprocessor.h @@ -52,9 +52,11 @@ public: bool Open(const AudioParams& params, const double &speed); - void Push(const char *data, int length); + void Push(const QByteArray &packed); - int Pull(char* data, int max_length); + void Flush(); + + QByteArray Pull(); void Close(); @@ -67,10 +69,6 @@ private: AVFilterContext* buffersink_ctx_; - AVFrame* processed_frame_; - int processed_frame_byte_index_; - int processed_frame_max_bytes_; - AudioParams params_; int64_t timestamp_; diff --git a/app/dialog/speedduration/speeddurationdialog.cpp b/app/dialog/speedduration/speeddurationdialog.cpp index f5308e8c3..ed4432166 100644 --- a/app/dialog/speedduration/speeddurationdialog.cpp +++ b/app/dialog/speedduration/speeddurationdialog.cpp @@ -22,6 +22,7 @@ #include #include +#include #include #include "core.h" @@ -39,49 +40,60 @@ SpeedDurationDialog::SpeedDurationDialog(const QVector &clips, cons { setWindowTitle(tr("Speed/Duration")); - QGridLayout *layout = new QGridLayout(this); + QVBoxLayout *layout = new QVBoxLayout(this); - int row = 0; + { + QGroupBox *speed_group = new QGroupBox(); + layout->addWidget(speed_group); - layout->addWidget(new QLabel(tr("Speed:")), row, 0); + QGridLayout *speed_layout = new QGridLayout(speed_group); - speed_slider_ = new FloatSlider(); - speed_slider_->SetDisplayType(FloatSlider::kPercentage); - connect(speed_slider_, &FloatSlider::ValueChanged, this, &SpeedDurationDialog::SpeedChanged); - layout->addWidget(speed_slider_, row, 1); + int row = 0; - row++; + speed_layout->addWidget(new QLabel(tr("Speed:")), row, 0); - layout->addWidget(new QLabel(tr("Duration:")), row, 0); + speed_slider_ = new FloatSlider(); + speed_slider_->SetDisplayType(FloatSlider::kPercentage); + connect(speed_slider_, &FloatSlider::ValueChanged, this, &SpeedDurationDialog::SpeedChanged); + speed_layout->addWidget(speed_slider_, row, 1); - dur_slider_ = new RationalSlider(); - dur_slider_->SetTimebase(timebase); - dur_slider_->SetDisplayType(RationalSlider::kTime); - connect(dur_slider_, &RationalSlider::ValueChanged, this, &SpeedDurationDialog::DurationChanged); - layout->addWidget(dur_slider_, row, 1); + row++; - row++; + speed_layout->addWidget(new QLabel(tr("Duration:")), row, 0); - link_box_ = new QCheckBox(tr("Link Speed and Duration")); - link_box_->setChecked(true); - layout->addWidget(link_box_, row, 0, 1, 2); + dur_slider_ = new RationalSlider(); + dur_slider_->SetTimebase(timebase); + dur_slider_->SetDisplayType(RationalSlider::kTime); + connect(dur_slider_, &RationalSlider::ValueChanged, this, &SpeedDurationDialog::DurationChanged); + speed_layout->addWidget(dur_slider_, row, 1); - row++; + row++; + + link_box_ = new QCheckBox(tr("Link Speed and Duration")); + link_box_->setChecked(true); + speed_layout->addWidget(link_box_, row, 0, 1, 2); + } + + reverse_box_ = new QCheckBox(tr("Reverse")); + layout->addWidget(reverse_box_); + + maintain_audio_pitch_box_ = new QCheckBox(tr("Maintain Audio Pitch")); + layout->addWidget(maintain_audio_pitch_box_); ripple_box_ = new QCheckBox(tr("Ripple Trailing Clips")); - layout->addWidget(ripple_box_, row, 0, 1, 2); - - row++; + layout->addWidget(ripple_box_); QDialogButtonBox *btns = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); btns->setCenterButtons(true); connect(btns, &QDialogButtonBox::accepted, this, &SpeedDurationDialog::accept); connect(btns, &QDialogButtonBox::rejected, this, &SpeedDurationDialog::reject); - layout->addWidget(btns, row, 0, 1, 2); + layout->addWidget(btns); // Determine which speed value to use start_speed_ = clips.first()->speed(); start_duration_ = clips.first()->length(); + start_reverse_ = clips.first()->reverse(); + start_maintain_audio_pitch_ = clips.first()->maintain_audio_pitch(); for (int i=1; ispeed())) { // Speed differs per clip @@ -91,6 +103,14 @@ SpeedDurationDialog::SpeedDurationDialog(const QVector &clips, cons if (start_duration_ != -1 && clips.at(i)->length() != start_duration_) { start_duration_ = -1; } + + if (clips.at(i)->reverse() != start_reverse_) { + start_reverse_ = -1; + } + + if (clips.at(i)->maintain_audio_pitch() != start_maintain_audio_pitch_) { + start_maintain_audio_pitch_ = -1; + } } if (qIsNaN(start_speed_)) { @@ -104,6 +124,18 @@ SpeedDurationDialog::SpeedDurationDialog(const QVector &clips, cons } else { dur_slider_->SetValue(start_duration_); } + + if (start_reverse_ == -1) { + reverse_box_->setTristate(); + } else { + reverse_box_->setChecked(start_reverse_); + } + + if (start_maintain_audio_pitch_ == -1) { + maintain_audio_pitch_box_->setTristate(); + } else { + maintain_audio_pitch_box_->setChecked(start_maintain_audio_pitch_); + } } void SpeedDurationDialog::accept() @@ -133,6 +165,20 @@ void SpeedDurationDialog::accept() } } + // Set reverse values + if (!reverse_box_->isTristate()) { + foreach (ClipBlock *c, clips_) { + command->add_child(new NodeParamSetStandardValueCommand(NodeKeyframeTrackReference(NodeInput(c, ClipBlock::kReverseInput)), reverse_box_->isChecked())); + } + } + + // Set reverse values + if (!maintain_audio_pitch_box_->isTristate()) { + foreach (ClipBlock *c, clips_) { + command->add_child(new NodeParamSetStandardValueCommand(NodeKeyframeTrackReference(NodeInput(c, ClipBlock::kMaintainAudioPitchInput)), maintain_audio_pitch_box_->isChecked())); + } + } + // Set duration values foreach (ClipBlock *c, clips_) { rational proposed_length = c->length(); diff --git a/app/dialog/speedduration/speeddurationdialog.h b/app/dialog/speedduration/speeddurationdialog.h index 135f77434..be24ec9d6 100644 --- a/app/dialog/speedduration/speeddurationdialog.h +++ b/app/dialog/speedduration/speeddurationdialog.h @@ -56,8 +56,16 @@ private: QCheckBox *link_box_; + QCheckBox *reverse_box_; + + QCheckBox *maintain_audio_pitch_box_; + QCheckBox *ripple_box_; + int start_reverse_; + + int start_maintain_audio_pitch_; + double start_speed_; rational start_duration_; diff --git a/app/node/block/clip/clip.cpp b/app/node/block/clip/clip.cpp index d966098a0..efd46e316 100644 --- a/app/node/block/clip/clip.cpp +++ b/app/node/block/clip/clip.cpp @@ -33,6 +33,7 @@ const QString ClipBlock::kBufferIn = QStringLiteral("buffer_in"); const QString ClipBlock::kMediaInInput = QStringLiteral("media_in_in"); const QString ClipBlock::kSpeedInput = QStringLiteral("speed_in"); const QString ClipBlock::kReverseInput = QStringLiteral("reverse_in"); +const QString ClipBlock::kMaintainAudioPitchInput = QStringLiteral("maintain_audio_pitch_in"); ClipBlock::ClipBlock() : in_transition_(nullptr), @@ -52,6 +53,8 @@ ClipBlock::ClipBlock() : AddInput(kReverseInput, NodeValue::kBoolean, false, InputFlags(kInputFlagNotConnectable | kInputFlagNotKeyframable)); IgnoreHashingFrom(kReverseInput); + AddInput(kMaintainAudioPitchInput, NodeValue::kBoolean, false, InputFlags(kInputFlagNotConnectable | kInputFlagNotKeyframable)); + PrependInput(kBufferIn, NodeValue::kNone, InputFlags(kInputFlagNotKeyframable)); SetValueHintForInput(kBufferIn, ValueHint(NodeValue::kBuffer)); } diff --git a/app/node/block/clip/clip.h b/app/node/block/clip/clip.h index ee8eef2e8..82350d89f 100644 --- a/app/node/block/clip/clip.h +++ b/app/node/block/clip/clip.h @@ -71,6 +71,21 @@ public: return GetStandardValue(kReverseInput).toBool(); } + void set_reverse(bool e) + { + SetStandardValue(kReverseInput, e); + } + + bool maintain_audio_pitch() const + { + return GetStandardValue(kMaintainAudioPitchInput).toBool(); + } + + void set_maintain_audio_pitch(bool e) + { + SetStandardValue(kMaintainAudioPitchInput, e); + } + TransitionBlock* in_transition() { return in_transition_; @@ -110,6 +125,7 @@ public: static const QString kMediaInInput; static const QString kSpeedInput; static const QString kReverseInput; + static const QString kMaintainAudioPitchInput; protected: virtual void LinkChangeEvent() override; diff --git a/app/render/renderprocessor.cpp b/app/render/renderprocessor.cpp index 01bd95518..970b2f326 100644 --- a/app/render/renderprocessor.cpp +++ b/app/render/renderprocessor.cpp @@ -25,6 +25,9 @@ #include #include +#include "audio/packedprocessor.h" +#include "audio/planarprocessor.h" +#include "audio/tempoprocessor.h" #include "node/block/clip/clip.h" #include "node/block/transition/transition.h" #include "node/project/project.h" @@ -288,8 +291,35 @@ NodeValueTable RenderProcessor::GenerateBlockTable(const Track *track, const Tim // Just silence, don't think there's any other practical application of 0 speed audio samples_from_this_block->silence(); } else if (!qFuzzyCompare(speed_value, 1.0)) { - // Multiply time - samples_from_this_block->speed(speed_value); + if (clip_cast->maintain_audio_pitch()) { + PackedProcessor packer; + packer.Open(samples_from_this_block->audio_params()); + + QByteArray packed = packer.Convert(samples_from_this_block); + + if (!packed.isEmpty()) { + TempoProcessor tp; + tp.Open(samples_from_this_block->audio_params(), speed_value); + + // FIXME: This is not the best way to do this, the TempoProcessor works best + // when it's given a continuous stream of audio, which is challenging + // in our current "modular" audio system. This should still work reasonably + // well on export (assuming audio is all generated at once on export), but + // users may hear clicks and pops in the audio during preview due to this + // approach. + tp.Push(packed); + tp.Flush(); + packed = tp.Pull(); + tp.Close(); + + PlanarProcessor planar; + planar.Open(samples_from_this_block->audio_params()); + samples_from_this_block = planar.Convert(packed); + } + } else { + // Multiply time + samples_from_this_block->speed(speed_value); + } } if (reversed) { diff --git a/app/widget/viewer/viewer.cpp b/app/widget/viewer/viewer.cpp index d8827a7c0..206fe9719 100644 --- a/app/widget/viewer/viewer.cpp +++ b/app/widget/viewer/viewer.cpp @@ -466,11 +466,8 @@ void ViewerWidget::ReceivedAudioBufferForPlayback() // If the tempo must be adjusted, adjust now if (tempo_processor_.IsOpen()) { - tempo_processor_.Push(pack.data(), pack.size()); - int actual = tempo_processor_.Pull(pack.data(), pack.size()); - if (actual != pack.size()) { - pack.resize(actual); - } + tempo_processor_.Push(pack); + pack = tempo_processor_.Pull(); } // TempoProcessor may have emptied the array From f61031db2de5282b6629fa6a2d16796e3543200e Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Tue, 1 Feb 2022 14:10:40 -0800 Subject: [PATCH 019/114] fix msvc compile issue --- app/dialog/speedduration/speeddurationdialog.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/dialog/speedduration/speeddurationdialog.cpp b/app/dialog/speedduration/speeddurationdialog.cpp index ed4432166..56921b4c8 100644 --- a/app/dialog/speedduration/speeddurationdialog.cpp +++ b/app/dialog/speedduration/speeddurationdialog.cpp @@ -104,11 +104,11 @@ SpeedDurationDialog::SpeedDurationDialog(const QVector &clips, cons start_duration_ = -1; } - if (clips.at(i)->reverse() != start_reverse_) { + if (clips.at(i)->reverse() != static_cast(start_reverse_)) { start_reverse_ = -1; } - if (clips.at(i)->maintain_audio_pitch() != start_maintain_audio_pitch_) { + if (clips.at(i)->maintain_audio_pitch() != static_cast(start_maintain_audio_pitch_)) { start_maintain_audio_pitch_ = -1; } } From 60aa76794a6bb16f24cd40915ed338f2a8144dfa Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Tue, 1 Feb 2022 14:30:50 -0800 Subject: [PATCH 020/114] actually fix msvc compile issue --- app/dialog/speedduration/speeddurationdialog.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/dialog/speedduration/speeddurationdialog.cpp b/app/dialog/speedduration/speeddurationdialog.cpp index 56921b4c8..cf6af022a 100644 --- a/app/dialog/speedduration/speeddurationdialog.cpp +++ b/app/dialog/speedduration/speeddurationdialog.cpp @@ -95,20 +95,25 @@ SpeedDurationDialog::SpeedDurationDialog(const QVector &clips, cons start_reverse_ = clips.first()->reverse(); start_maintain_audio_pitch_ = clips.first()->maintain_audio_pitch(); for (int i=1; ispeed())) { + ClipBlock *c = clips.at(i); + + if (!qIsNaN(start_speed_) && !qFuzzyCompare(start_speed_, c->speed())) { // Speed differs per clip start_speed_ = qSNaN(); } - if (start_duration_ != -1 && clips.at(i)->length() != start_duration_) { + if (start_duration_ != -1 && c->length() != start_duration_) { start_duration_ = -1; } - if (clips.at(i)->reverse() != static_cast(start_reverse_)) { + // Yes, in theory a bool should only ever be 0 or 1 anyway, but MSVC complained and it is + // *possible* that a bool could be something else, so this code is safer + int clip_reverse = c->reverse() ? 1 : 0; + int clip_maintain_pitch = c->maintain_audio_pitch() ? 1 : 0; + if (start_reverse_ != -1 && clip_reverse != start_reverse_) { start_reverse_ = -1; } - - if (clips.at(i)->maintain_audio_pitch() != static_cast(start_maintain_audio_pitch_)) { + if (start_maintain_audio_pitch_ != -1 && clip_maintain_pitch != start_maintain_audio_pitch_) { start_maintain_audio_pitch_ = -1; } } From 217973e0694ea68f3ab50728df4816fa200b68bc Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Tue, 1 Feb 2022 15:36:26 -0800 Subject: [PATCH 021/114] Slider: add label substitution for certain values Allows "Threads" option in advanced export setting to show "Auto" when set to 0 --- app/dialog/export/exportadvancedvideodialog.cpp | 1 + app/dialog/export/exportvideotab.cpp | 1 - app/widget/slider/base/sliderbase.cpp | 12 +++++++++++- app/widget/slider/base/sliderbase.h | 8 ++++++++ 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/app/dialog/export/exportadvancedvideodialog.cpp b/app/dialog/export/exportadvancedvideodialog.cpp index 9e38969fb..71143b50b 100644 --- a/app/dialog/export/exportadvancedvideodialog.cpp +++ b/app/dialog/export/exportadvancedvideodialog.cpp @@ -48,6 +48,7 @@ ExportAdvancedVideoDialog::ExportAdvancedVideoDialog(const QList &pix_f thread_slider_ = new IntegerSlider(); thread_slider_->SetMinimum(0); thread_slider_->SetDefaultValue(0); + thread_slider_->InsertLabelSubstitution(0, tr("Auto")); performance_layout->addWidget(thread_slider_, row, 1); row++; diff --git a/app/dialog/export/exportvideotab.cpp b/app/dialog/export/exportvideotab.cpp index f8908cea3..e4ec88b33 100644 --- a/app/dialog/export/exportvideotab.cpp +++ b/app/dialog/export/exportvideotab.cpp @@ -251,7 +251,6 @@ void ExportVideoTab::VideoCodecChanged() } else { pix_fmt_.clear(); } - qDebug() << "Set default pix fmt" << pix_fmt_; } void ExportVideoTab::SetTime(const rational &time) diff --git a/app/widget/slider/base/sliderbase.cpp b/app/widget/slider/base/sliderbase.cpp index 116a61c71..7ca14d1f0 100644 --- a/app/widget/slider/base/sliderbase.cpp +++ b/app/widget/slider/base/sliderbase.cpp @@ -104,7 +104,17 @@ void SliderBase::changeEvent(QEvent *e) void SliderBase::UpdateLabel() { - label_->setText(tristate_ ? tr("---") : GetFormattedValueToString()); + QString s; + + if (tristate_) { + s = tr("---"); + } else if (label_substitutions_.contains(GetValueInternal())) { + s = label_substitutions_.value(GetValueInternal()); + } else { + s = GetFormattedValueToString(); + } + + label_->setText(s); } QVariant SliderBase::AdjustValue(const QVariant &value) const diff --git a/app/widget/slider/base/sliderbase.h b/app/widget/slider/base/sliderbase.h index 2643ca674..64d4ed2f4 100644 --- a/app/widget/slider/base/sliderbase.h +++ b/app/widget/slider/base/sliderbase.h @@ -49,6 +49,12 @@ public: QString GetFormattedValueToString(const QVariant& v) const; + void InsertLabelSubstitution(const QVariant &value, const QString &label) + { + label_substitutions_.insert(value, label); + UpdateLabel(); + } + public slots: void ShowEditor(); @@ -92,6 +98,8 @@ private: bool format_plural_; + QMap label_substitutions_; + private slots: void LineEditConfirmed(); From 5cf076082ccb1775407ad366114d19843f8a20d0 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Tue, 1 Feb 2022 16:46:30 -0800 Subject: [PATCH 022/114] ExportDialog: improved codec stack UI --- app/dialog/export/codec/CMakeLists.txt | 9 +++-- app/dialog/export/codec/codecstack.cpp | 53 ++++++++++++++++++++++++++ app/dialog/export/codec/codecstack.h | 45 ++++++++++++++++++++++ app/dialog/export/exportvideotab.cpp | 2 +- app/dialog/export/exportvideotab.h | 3 +- 5 files changed, 107 insertions(+), 5 deletions(-) create mode 100644 app/dialog/export/codec/codecstack.cpp create mode 100644 app/dialog/export/codec/codecstack.h diff --git a/app/dialog/export/codec/CMakeLists.txt b/app/dialog/export/codec/CMakeLists.txt index 7f4e2b5c8..5666454f7 100644 --- a/app/dialog/export/codec/CMakeLists.txt +++ b/app/dialog/export/codec/CMakeLists.txt @@ -16,11 +16,14 @@ set(OLIVE_SOURCES ${OLIVE_SOURCES} - dialog/export/codec/codecsection.h dialog/export/codec/codecsection.cpp - dialog/export/codec/h264section.h + dialog/export/codec/codecsection.h + dialog/export/codec/codecstack.cpp + dialog/export/codec/codecstack.h dialog/export/codec/h264section.cpp - dialog/export/codec/imagesection.h + dialog/export/codec/h264section.cpp + dialog/export/codec/h264section.h dialog/export/codec/imagesection.cpp + dialog/export/codec/imagesection.h PARENT_SCOPE ) diff --git a/app/dialog/export/codec/codecstack.cpp b/app/dialog/export/codec/codecstack.cpp new file mode 100644 index 000000000..cdffb12cd --- /dev/null +++ b/app/dialog/export/codec/codecstack.cpp @@ -0,0 +1,53 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#include "codecstack.h" + +namespace olive { + +#define super QStackedWidget + +CodecStack::CodecStack(QWidget *parent) + : super{parent} +{ + connect(this, &CodecStack::currentChanged, this, &CodecStack::OnChange); +} + +void CodecStack::addWidget(QWidget *widget) +{ + super::addWidget(widget); + + OnChange(currentIndex()); +} + +void CodecStack::OnChange(int index) +{ + for (int i=0; isetSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + } else { + widget(i)->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored); + } + widget(i)->adjustSize(); + } + adjustSize(); +} + +} diff --git a/app/dialog/export/codec/codecstack.h b/app/dialog/export/codec/codecstack.h new file mode 100644 index 000000000..116f8754c --- /dev/null +++ b/app/dialog/export/codec/codecstack.h @@ -0,0 +1,45 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#ifndef CODECSTACK_H +#define CODECSTACK_H + +#include + +namespace olive { + +class CodecStack : public QStackedWidget +{ + Q_OBJECT +public: + explicit CodecStack(QWidget *parent = nullptr); + + void addWidget(QWidget *widget); + +signals: + +private slots: + void OnChange(int index); + +}; + +} + +#endif // CODECSTACK_H diff --git a/app/dialog/export/exportvideotab.cpp b/app/dialog/export/exportvideotab.cpp index e4ec88b33..85087535a 100644 --- a/app/dialog/export/exportvideotab.cpp +++ b/app/dialog/export/exportvideotab.cpp @@ -173,7 +173,7 @@ QWidget *ExportVideoTab::SetupCodecSection() row++; - codec_stack_ = new QStackedWidget(); + codec_stack_ = new CodecStack(); codec_layout->addWidget(codec_stack_, row, 0, 1, 2); image_section_ = new ImageSection(); diff --git a/app/dialog/export/exportvideotab.h b/app/dialog/export/exportvideotab.h index ce74d5a0a..9db9cf57d 100644 --- a/app/dialog/export/exportvideotab.h +++ b/app/dialog/export/exportvideotab.h @@ -26,6 +26,7 @@ #include #include "common/rational.h" +#include "dialog/export/codec/codecstack.h" #include "dialog/export/codec/h264section.h" #include "dialog/export/codec/imagesection.h" #include "node/color/colormanager/colormanager.h" @@ -155,7 +156,7 @@ private: QCheckBox* maintain_aspect_checkbox_; QComboBox* scaling_method_combobox_; - QStackedWidget* codec_stack_; + CodecStack* codec_stack_; ImageSection* image_section_; H264Section* h264_section_; H264Section* h265_section_; From f9112c05fd6d4c2f61803b2e664773593ccceb87 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Tue, 1 Feb 2022 19:55:09 -0800 Subject: [PATCH 023/114] Implemented time offset node --- app/node/factory.cpp | 3 + app/node/factory.h | 1 + app/node/time/CMakeLists.txt | 1 + app/node/time/timeoffset/CMakeLists.txt | 22 +++++ app/node/time/timeoffset/timeoffsetnode.cpp | 91 +++++++++++++++++++++ app/node/time/timeoffset/timeoffsetnode.h | 76 +++++++++++++++++ 6 files changed, 194 insertions(+) create mode 100644 app/node/time/timeoffset/CMakeLists.txt create mode 100644 app/node/time/timeoffset/timeoffsetnode.cpp create mode 100644 app/node/time/timeoffset/timeoffsetnode.h diff --git a/app/node/factory.cpp b/app/node/factory.cpp index ed4645a60..7afcec6d9 100644 --- a/app/node/factory.cpp +++ b/app/node/factory.cpp @@ -53,6 +53,7 @@ #include "project/folder/folder.h" #include "project/footage/footage.h" #include "project/sequence/sequence.h" +#include "time/timeoffset/timeoffsetnode.h" #include "time/timeremap/timeremap.h" namespace olive { @@ -261,6 +262,8 @@ Node *NodeFactory::CreateFromFactoryIndex(const NodeFactory::InternalID &id) return new FlipDistortNode(); case kNoiseGenerator: return new NoiseGeneratorNode(); + case kTimeOffsetNode: + return new TimeOffsetNode(); case kInternalNodeCount: break; diff --git a/app/node/factory.h b/app/node/factory.h index c91895ff3..5e627841c 100644 --- a/app/node/factory.h +++ b/app/node/factory.h @@ -65,6 +65,7 @@ public: kOpacityEffect, kFlipDistort, kNoiseGenerator, + kTimeOffsetNode, // Count value kInternalNodeCount diff --git a/app/node/time/CMakeLists.txt b/app/node/time/CMakeLists.txt index bd780b985..a038672fb 100644 --- a/app/node/time/CMakeLists.txt +++ b/app/node/time/CMakeLists.txt @@ -14,6 +14,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +add_subdirectory(timeoffset) add_subdirectory(timeremap) set(OLIVE_SOURCES diff --git a/app/node/time/timeoffset/CMakeLists.txt b/app/node/time/timeoffset/CMakeLists.txt new file mode 100644 index 000000000..b3976d54b --- /dev/null +++ b/app/node/time/timeoffset/CMakeLists.txt @@ -0,0 +1,22 @@ +# Olive - Non-Linear Video Editor +# Copyright (C) 2021 Olive Team +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +set(OLIVE_SOURCES + ${OLIVE_SOURCES} + node/time/timeoffset/timeoffsetnode.cpp + node/time/timeoffset/timeoffsetnode.h + PARENT_SCOPE +) diff --git a/app/node/time/timeoffset/timeoffsetnode.cpp b/app/node/time/timeoffset/timeoffsetnode.cpp new file mode 100644 index 000000000..d137847ee --- /dev/null +++ b/app/node/time/timeoffset/timeoffsetnode.cpp @@ -0,0 +1,91 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#include "timeoffsetnode.h" + +#include "widget/slider/rationalslider.h" + +namespace olive { + +const QString TimeOffsetNode::kTimeInput = QStringLiteral("time_in"); +const QString TimeOffsetNode::kInputInput = QStringLiteral("input_in"); + +#define super Node + +TimeOffsetNode::TimeOffsetNode() +{ + AddInput(kTimeInput, NodeValue::kRational, QVariant::fromValue(rational(0)), InputFlags(kInputFlagNotConnectable)); + SetInputProperty(kTimeInput, QStringLiteral("view"), RationalSlider::kTime); + SetInputProperty(kTimeInput, QStringLiteral("viewlock"), true); + IgnoreHashingFrom(kTimeInput); + + AddInput(kInputInput, NodeValue::kNone, InputFlags(kInputFlagNotKeyframable)); +} + +void TimeOffsetNode::Retranslate() +{ + SetInputName(kTimeInput, QStringLiteral("Time")); + SetInputName(kInputInput, QStringLiteral("Input")); +} + +TimeRange TimeOffsetNode::InputTimeAdjustment(const QString &input, int element, const TimeRange &input_time) const +{ + if (input == kInputInput) { + return TimeRange(GetRemappedTime(input_time.in()), GetRemappedTime(input_time.out())); + } else { + return super::InputTimeAdjustment(input, element, input_time); + } +} + +TimeRange TimeOffsetNode::OutputTimeAdjustment(const QString &input, int element, const TimeRange &input_time) const +{ + /*if (input == kInputInput) { + rational target_time = GetValueAtTime(kTimeInput, input_time.in()).value(); + + return TimeRange(target_time, target_time + input_time.length()); + } else { + return super::OutputTimeAdjustment(input, element, input_time); + }*/ + return super::OutputTimeAdjustment(input, element, input_time); +} + +void TimeOffsetNode::Value(const NodeValueRow &value, const NodeGlobals &globals, NodeValueTable *table) const +{ + table->Push(value[kInputInput]); +} + +void TimeOffsetNode::Hash(QCryptographicHash &hash, const NodeGlobals &globals, const VideoParams &video_params) const +{ + // Don't hash anything of our own, just pass-through to the connected node at the remapped tmie + if (IsInputConnected(kInputInput)) { + Node *out = GetConnectedOutput(kInputInput); + + NodeGlobals new_globals = globals; + new_globals.set_time(TimeRange(GetRemappedTime(globals.time().in()), GetRemappedTime(globals.time().out()))); + Node::Hash(out, GetValueHintForInput(kInputInput), hash, new_globals, video_params); + } +} + +rational TimeOffsetNode::GetRemappedTime(const rational &input) const +{ + return input + GetValueAtTime(kTimeInput, input).value(); +} + +} diff --git a/app/node/time/timeoffset/timeoffsetnode.h b/app/node/time/timeoffset/timeoffsetnode.h new file mode 100644 index 000000000..aa712891f --- /dev/null +++ b/app/node/time/timeoffset/timeoffsetnode.h @@ -0,0 +1,76 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#ifndef TIMEOFFSETNODE_H +#define TIMEOFFSETNODE_H + +#include "node/node.h" + +namespace olive { + +class TimeOffsetNode : public Node +{ +public: + TimeOffsetNode(); + + NODE_DEFAULT_DESTRUCTOR(TimeOffsetNode) + NODE_COPY_FUNCTION(TimeOffsetNode) + + virtual QString Name() const override + { + return tr("Time Offset"); + } + + virtual QString id() const override + { + return QStringLiteral("org.olivevideoeditor.Olive.timeoffset"); + } + + virtual QVector Category() const override + { + return {kCategoryGeneral}; + } + + virtual QString Description() const override + { + return tr("Offset time passing through the graph."); + } + + virtual TimeRange InputTimeAdjustment(const QString& input, int element, const TimeRange& input_time) const override; + virtual TimeRange OutputTimeAdjustment(const QString& input, int element, const TimeRange& input_time) const override; + + virtual void Retranslate() override; + + virtual void Value(const NodeValueRow& value, const NodeGlobals &globals, NodeValueTable *table) const override; + + static const QString kTimeInput; + static const QString kInputInput; + +protected: + virtual void Hash(QCryptographicHash &hash, const NodeGlobals &globals, const VideoParams& video_params) const override; + +private: + rational GetRemappedTime(const rational& input) const; + +}; + +} + +#endif // TIMEOFFSETNODE_H From cf1e8c9a9583e9e8b0021f50b52b540cbfd3c195 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Tue, 1 Feb 2022 19:55:30 -0800 Subject: [PATCH 024/114] fixed bug preventing negative timecodes being parsed correctly --- app/common/timecodefunctions.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/common/timecodefunctions.cpp b/app/common/timecodefunctions.cpp index eedf4d0f4..b80f8b237 100644 --- a/app/common/timecodefunctions.cpp +++ b/app/common/timecodefunctions.cpp @@ -157,10 +157,12 @@ int64_t Timecode::timecode_to_timestamp(const QString &timecode, const rational // Convert values to integers QList timecode_numbers; + bool negative = timecode.trimmed().startsWith('-'); + foreach (const QString& element, timecode_split) { valid = true; - timecode_numbers.append((element.isEmpty()) ? 0 : element.toLong(&valid)); + timecode_numbers.append((element.isEmpty()) ? 0 : qAbs(element.toLong(&valid))); // If element cannot be converted to a number, if (!valid) { @@ -203,6 +205,9 @@ int64_t Timecode::timecode_to_timestamp(const QString &timecode, const rational } if (ok) *ok = true; + + if (negative) timestamp = -timestamp; + return timestamp; } case kMilliseconds: From 249006c685d54d8d08fa01392121830efd067812 Mon Sep 17 00:00:00 2001 From: Quackdoc <74831516+Quackdoc@users.noreply.github.com> Date: Wed, 2 Feb 2022 17:58:13 +0000 Subject: [PATCH 025/114] Cineform support (#1853) * Cineform Support Add default cineform support * Revert "Cineform Support" This reverts commit f810358b7997ea2d996a3dbbae21252c9f37e7e9. * Cineform Support Add default cineform support * Do not expose DNxHD yet * ExportDialog: Add CineformSection Co-authored-by: itsmattkc <34096995+itsmattkc@users.noreply.github.com> --- app/codec/exportcodec.cpp | 3 + app/codec/exportcodec.h | 1 + app/codec/exportformat.cpp | 2 +- app/codec/ffmpeg/ffmpegencoder.cpp | 2 + app/dialog/export/codec/CMakeLists.txt | 3 +- app/dialog/export/codec/cineformsection.cpp | 85 +++++++++++++++++++++ app/dialog/export/codec/cineformsection.h | 45 +++++++++++ app/dialog/export/exportvideotab.cpp | 6 ++ app/dialog/export/exportvideotab.h | 2 + 9 files changed, 147 insertions(+), 2 deletions(-) create mode 100644 app/dialog/export/codec/cineformsection.cpp create mode 100644 app/dialog/export/codec/cineformsection.h diff --git a/app/codec/exportcodec.cpp b/app/codec/exportcodec.cpp index 947f9da63..254a9989c 100644 --- a/app/codec/exportcodec.cpp +++ b/app/codec/exportcodec.cpp @@ -44,6 +44,8 @@ QString ExportCodec::GetCodecName(ExportCodec::Codec c) return tr("PNG"); case kCodecProRes: return tr("ProRes"); + case kCodecCineform: + return tr("Cineform"); case kCodecTIFF: return tr("TIFF"); case kCodecMP2: @@ -79,6 +81,7 @@ bool ExportCodec::IsCodecAStillImage(ExportCodec::Codec c) case kCodecH264rgb: case kCodecH265: case kCodecProRes: + case kCodecCineform: case kCodecMP2: case kCodecMP3: case kCodecAAC: diff --git a/app/codec/exportcodec.h b/app/codec/exportcodec.h index 1b5d1df47..f4d17dfa0 100644 --- a/app/codec/exportcodec.h +++ b/app/codec/exportcodec.h @@ -42,6 +42,7 @@ public: kCodecOpenEXR, kCodecPNG, kCodecProRes, + kCodecCineform, kCodecTIFF, kCodecVP9, diff --git a/app/codec/exportformat.cpp b/app/codec/exportformat.cpp index e89110142..59561d50b 100644 --- a/app/codec/exportformat.cpp +++ b/app/codec/exportformat.cpp @@ -117,7 +117,7 @@ QList ExportFormat::GetVideoCodecs(ExportFormat::Format f) case kFormatTIFF: return {ExportCodec::kCodecTIFF}; case kFormatQuickTime: - return {ExportCodec::kCodecH264, ExportCodec::kCodecH264rgb, ExportCodec::kCodecH265, ExportCodec::kCodecProRes}; + return {ExportCodec::kCodecH264, ExportCodec::kCodecH264rgb, ExportCodec::kCodecH265, ExportCodec::kCodecProRes, ExportCodec::kCodecCineform}; case kFormatWebM: return {ExportCodec::kCodecVP9}; case kFormatOgg: diff --git a/app/codec/ffmpeg/ffmpegencoder.cpp b/app/codec/ffmpeg/ffmpegencoder.cpp index a6ee5c68c..6be4e6d73 100644 --- a/app/codec/ffmpeg/ffmpegencoder.cpp +++ b/app/codec/ffmpeg/ffmpegencoder.cpp @@ -844,6 +844,8 @@ AVCodec *FFmpegEncoder::GetEncoder(ExportCodec::Codec c) return avcodec_find_encoder(AV_CODEC_ID_DNXHD); case ExportCodec::kCodecProRes: return avcodec_find_encoder(AV_CODEC_ID_PRORES); + case ExportCodec::kCodecCineform: + return avcodec_find_encoder(AV_CODEC_ID_CFHD); case ExportCodec::kCodecH265: return avcodec_find_encoder(AV_CODEC_ID_HEVC); case ExportCodec::kCodecVP9: diff --git a/app/dialog/export/codec/CMakeLists.txt b/app/dialog/export/codec/CMakeLists.txt index 5666454f7..1669edd70 100644 --- a/app/dialog/export/codec/CMakeLists.txt +++ b/app/dialog/export/codec/CMakeLists.txt @@ -16,12 +16,13 @@ set(OLIVE_SOURCES ${OLIVE_SOURCES} + dialog/export/codec/cineformsection.cpp + dialog/export/codec/cineformsection.h dialog/export/codec/codecsection.cpp dialog/export/codec/codecsection.h dialog/export/codec/codecstack.cpp dialog/export/codec/codecstack.h dialog/export/codec/h264section.cpp - dialog/export/codec/h264section.cpp dialog/export/codec/h264section.h dialog/export/codec/imagesection.cpp dialog/export/codec/imagesection.h diff --git a/app/dialog/export/codec/cineformsection.cpp b/app/dialog/export/codec/cineformsection.cpp new file mode 100644 index 000000000..dedecb32e --- /dev/null +++ b/app/dialog/export/codec/cineformsection.cpp @@ -0,0 +1,85 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#include "cineformsection.h" + +#include +#include + +namespace olive { + +CineformSection::CineformSection(QWidget *parent) : + CodecSection(parent) +{ + QGridLayout *layout = new QGridLayout(this); + + layout->setMargin(0); + + int row = 0; + + layout->addWidget(new QLabel(tr("Quality:")), row, 0); + + quality_combobox_ = new QComboBox(); + + /* Correspond to the following indexes for FFmpeg + * + * -quality E..V....... set quality (from 0 to 12) (default film3+) + * film3+ 0 E..V....... + * film3 1 E..V....... + * film2+ 2 E..V....... + * film2 3 E..V....... + * film1.5 4 E..V....... + * film1+ 5 E..V....... + * film1 6 E..V....... + * high+ 7 E..V....... + * high 8 E..V....... + * medium+ 9 E..V....... + * medium 10 E..V....... + * low+ 11 E..V....... + * low 12 E..V....... + * + */ + + quality_combobox_->addItem(tr("Film Scan 3+")); + quality_combobox_->addItem(tr("Film Scan 3")); + quality_combobox_->addItem(tr("Film Scan 2+")); + quality_combobox_->addItem(tr("Film Scan 2")); + quality_combobox_->addItem(tr("Film Scan 1.5")); + quality_combobox_->addItem(tr("Film Scan 1+")); + quality_combobox_->addItem(tr("Film Scan 1")); + quality_combobox_->addItem(tr("High+")); + quality_combobox_->addItem(tr("High")); + quality_combobox_->addItem(tr("Medium+")); + quality_combobox_->addItem(tr("Medium")); + quality_combobox_->addItem(tr("Low+")); + quality_combobox_->addItem(tr("Low")); + + // Default to "medium" + quality_combobox_->setCurrentIndex(10); + + layout->addWidget(quality_combobox_, row, 1); +} + +void CineformSection::AddOpts(EncodingParams *params) +{ + params->set_video_option(QStringLiteral("quality"), QString::number(quality_combobox_->currentIndex())); +} + +} diff --git a/app/dialog/export/codec/cineformsection.h b/app/dialog/export/codec/cineformsection.h new file mode 100644 index 000000000..6dc09f2d0 --- /dev/null +++ b/app/dialog/export/codec/cineformsection.h @@ -0,0 +1,45 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#ifndef CINEFORMSECTION_H +#define CINEFORMSECTION_H + +#include + +#include "codecsection.h" + +namespace olive { + +class CineformSection : public CodecSection +{ + Q_OBJECT +public: + CineformSection(QWidget *parent = nullptr); + + virtual void AddOpts(EncodingParams* params) override; + +private: + QComboBox *quality_combobox_; + +}; + +} + +#endif // CINEFORMSECTION_H diff --git a/app/dialog/export/exportvideotab.cpp b/app/dialog/export/exportvideotab.cpp index 85087535a..d99cc59b0 100644 --- a/app/dialog/export/exportvideotab.cpp +++ b/app/dialog/export/exportvideotab.cpp @@ -185,6 +185,9 @@ QWidget *ExportVideoTab::SetupCodecSection() h265_section_ = new H265Section(); codec_stack_->addWidget(h265_section_); + cineform_section_ = new CineformSection(); + codec_stack_->addWidget(cineform_section_); + row++; QPushButton* advanced_btn = new QPushButton(tr("Advanced")); @@ -240,6 +243,9 @@ void ExportVideoTab::VideoCodecChanged() case ExportCodec::kCodecH265: SetCodecSection(h265_section_); break; + case ExportCodec::kCodecCineform: + SetCodecSection(cineform_section_); + break; default: SetCodecSection(ExportCodec::IsCodecAStillImage(codec) ? image_section_ : nullptr); } diff --git a/app/dialog/export/exportvideotab.h b/app/dialog/export/exportvideotab.h index 9db9cf57d..4a952fb15 100644 --- a/app/dialog/export/exportvideotab.h +++ b/app/dialog/export/exportvideotab.h @@ -26,6 +26,7 @@ #include #include "common/rational.h" +#include "dialog/export/codec/cineformsection.h" #include "dialog/export/codec/codecstack.h" #include "dialog/export/codec/h264section.h" #include "dialog/export/codec/imagesection.h" @@ -160,6 +161,7 @@ private: ImageSection* image_section_; H264Section* h264_section_; H264Section* h265_section_; + CineformSection *cineform_section_; ColorSpaceChooser* color_space_chooser_; From 7d52dc19e3bd5e48a066e95669525cb9387afae4 Mon Sep 17 00:00:00 2001 From: Quackdoc <74831516+Quackdoc@users.noreply.github.com> Date: Fri, 4 Feb 2022 01:44:08 +0000 Subject: [PATCH 026/114] Add support for x264 and x265 presets (#1856) * Add support for x264 and x265 presets just adds presets for x264 and x265. seems to work fine for me. * UI tweaks Make the presets easier to understand, add tooltip explaining preset's effects * Do things properly, minor typo fix --- app/dialog/export/codec/h264section.cpp | 27 +++++++++++++++++++++++++ app/dialog/export/codec/h264section.h | 2 ++ 2 files changed, 29 insertions(+) diff --git a/app/dialog/export/codec/h264section.cpp b/app/dialog/export/codec/h264section.cpp index 101bf388f..6b15be526 100644 --- a/app/dialog/export/codec/h264section.cpp +++ b/app/dialog/export/codec/h264section.cpp @@ -42,6 +42,31 @@ H264Section::H264Section(int default_crf, QWidget *parent) : layout->setMargin(0); int row = 0; + layout->addWidget(new QLabel(tr("Encode Speed:")), row, 0); + + + preset_combobox_ = new QComboBox(); + preset_combobox_->setToolTip(tr("This setting allows you to tweak the ratio of export speed to compression quality. \n\n" + "If using Constant Rate Factor, slower speeds will result in smaller file sizes for the same quality. \n\n" + "If using Target Bit Rate or Target File Size, slower speeds will result in higher quality for the same bitrate/filesize. \n\n" + "This setting is equivalent to the `preset` setting in libx264.")); + + preset_combobox_->addItem(tr("Ultra Fast")); + preset_combobox_->addItem(tr("Super Fast")); + preset_combobox_->addItem(tr("Very Fast")); + preset_combobox_->addItem(tr("Faster")); + preset_combobox_->addItem(tr("Fast")); + preset_combobox_->addItem(tr("Medium")); + preset_combobox_->addItem(tr("Slow")); + preset_combobox_->addItem(tr("Slower")); + preset_combobox_->addItem(tr("Very Slow")); + + //Default to "medium" + preset_combobox_->setCurrentIndex(5); + + layout->addWidget(preset_combobox_, row, 1); + + row++; layout->addWidget(new QLabel(tr("Compression Method:")), row, 0); @@ -110,6 +135,8 @@ void H264Section::AddOpts(EncodingParams *params) params->set_video_buffer_size(2000000); } + + params->set_video_option(QStringLiteral("preset"), QString::number(preset_combobox_->currentIndex())); } H264CRFSection::H264CRFSection(int default_crf, QWidget *parent) : diff --git a/app/dialog/export/codec/h264section.h b/app/dialog/export/codec/h264section.h index 95f7fa84a..78fbef19a 100644 --- a/app/dialog/export/codec/h264section.h +++ b/app/dialog/export/codec/h264section.h @@ -23,6 +23,7 @@ #include #include +#include #include "codecsection.h" #include "widget/slider/floatslider.h" @@ -111,6 +112,7 @@ private: H264FileSizeSection* filesize_section_; + QComboBox *preset_combobox_; }; class H265Section : public H264Section From 03f0ec9f641ebfdd1c643f4f908ae10fa587e54b Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Thu, 17 Feb 2022 14:53:12 -0800 Subject: [PATCH 027/114] ffmpeg: updated for 5.0 --- app/codec/ffmpeg/ffmpegdecoder.cpp | 4 ++-- app/codec/ffmpeg/ffmpegencoder.cpp | 10 +++++----- app/codec/ffmpeg/ffmpegencoder.h | 7 ++++--- app/common/ffmpegutils.h | 1 + app/render/audioparams.h | 4 ++++ 5 files changed, 16 insertions(+), 10 deletions(-) diff --git a/app/codec/ffmpeg/ffmpegdecoder.cpp b/app/codec/ffmpeg/ffmpegdecoder.cpp index fba94088d..9b2a0da1b 100644 --- a/app/codec/ffmpeg/ffmpegdecoder.cpp +++ b/app/codec/ffmpeg/ffmpegdecoder.cpp @@ -268,7 +268,7 @@ FootageDescription FFmpegDecoder::Probe(const QString &filename, const QAtomicIn AVStream* avstream = fmt_ctx->streams[i]; // Find decoder for this stream, if it exists we can proceed - AVCodec* decoder = avcodec_find_decoder(avstream->codecpar->codec_id); + const AVCodec* decoder = avcodec_find_decoder(avstream->codecpar->codec_id); if (decoder && (avstream->codecpar->codec_type == AVMEDIA_TYPE_VIDEO @@ -1010,7 +1010,7 @@ bool FFmpegDecoder::Instance::Open(const char *filename, int stream_index) avstream_ = fmt_ctx_->streams[stream_index]; // Find decoder - AVCodec* codec = avcodec_find_decoder(avstream_->codecpar->codec_id); + const AVCodec* codec = avcodec_find_decoder(avstream_->codecpar->codec_id); // Handle failure to find decoder if (codec == nullptr) { diff --git a/app/codec/ffmpeg/ffmpegencoder.cpp b/app/codec/ffmpeg/ffmpegencoder.cpp index 6be4e6d73..c1ea0927a 100644 --- a/app/codec/ffmpeg/ffmpegencoder.cpp +++ b/app/codec/ffmpeg/ffmpegencoder.cpp @@ -50,7 +50,7 @@ QStringList FFmpegEncoder::GetPixelFormatsForCodec(ExportCodec::Codec c) const { QStringList pix_fmts; - AVCodec* codec_info = GetEncoder(c); + const AVCodec* codec_info = GetEncoder(c); if (codec_info) { for (int i=0; codec_info->pix_fmts[i]!=-1; i++) { @@ -570,7 +570,7 @@ bool FFmpegEncoder::InitializeStream(AVMediaType type, AVStream** stream_ptr, AV } // Find encoder - AVCodec* encoder = GetEncoder(codec); + const AVCodec* encoder = GetEncoder(codec); if (!encoder) { SetError(tr("Failed to find codec for 0x%1").arg(codec, 16)); return false; @@ -669,7 +669,7 @@ bool FFmpegEncoder::InitializeStream(AVMediaType type, AVStream** stream_ptr, AV return true; } -bool FFmpegEncoder::InitializeCodecContext(AVStream **stream, AVCodecContext **codec_ctx, AVCodec* codec) +bool FFmpegEncoder::InitializeCodecContext(AVStream **stream, AVCodecContext **codec_ctx, const AVCodec* codec) { *stream = avformat_new_stream(fmt_ctx_, nullptr); if (!(*stream)) { @@ -687,7 +687,7 @@ bool FFmpegEncoder::InitializeCodecContext(AVStream **stream, AVCodecContext **c return true; } -bool FFmpegEncoder::SetupCodecContext(AVStream* stream, AVCodecContext* codec_ctx, AVCodec* codec) +bool FFmpegEncoder::SetupCodecContext(AVStream* stream, AVCodecContext* codec_ctx, const AVCodec* codec) { int error_code; @@ -833,7 +833,7 @@ bool FFmpegEncoder::InitializeResampleContext(SampleBufferPtr audio) return true; } -AVCodec *FFmpegEncoder::GetEncoder(ExportCodec::Codec c) +const AVCodec *FFmpegEncoder::GetEncoder(ExportCodec::Codec c) { switch (c) { case ExportCodec::kCodecH264: diff --git a/app/codec/ffmpeg/ffmpegencoder.h b/app/codec/ffmpeg/ffmpegencoder.h index 1d643f4d3..d75d3f4ea 100644 --- a/app/codec/ffmpeg/ffmpegencoder.h +++ b/app/codec/ffmpeg/ffmpegencoder.h @@ -22,6 +22,7 @@ #define FFMPEGENCODER_H extern "C" { +#include #include #include #include @@ -69,15 +70,15 @@ private: bool WriteAVFrame(AVFrame* frame, AVCodecContext *codec_ctx, AVStream *stream); bool InitializeStream(enum AVMediaType type, AVStream** stream, AVCodecContext** codec_ctx, const ExportCodec::Codec &codec); - bool InitializeCodecContext(AVStream** stream, AVCodecContext** codec_ctx, AVCodec* codec); - bool SetupCodecContext(AVStream *stream, AVCodecContext *codec_ctx, AVCodec *codec); + bool InitializeCodecContext(AVStream** stream, AVCodecContext** codec_ctx, const AVCodec* codec); + bool SetupCodecContext(AVStream *stream, AVCodecContext *codec_ctx, const AVCodec *codec); void FlushEncoders(); void FlushCodecCtx(AVCodecContext* codec_ctx, AVStream *stream); bool InitializeResampleContext(SampleBufferPtr audio); - static AVCodec *GetEncoder(ExportCodec::Codec c); + static const AVCodec *GetEncoder(ExportCodec::Codec c); AVFormatContext* fmt_ctx_; diff --git a/app/common/ffmpegutils.h b/app/common/ffmpegutils.h index 3e5ff105d..2262dc299 100644 --- a/app/common/ffmpegutils.h +++ b/app/common/ffmpegutils.h @@ -22,6 +22,7 @@ #define FFMPEGABSTRACTION_H extern "C" { +#include #include } diff --git a/app/render/audioparams.h b/app/render/audioparams.h index bb9e86b3b..bf2e6f08b 100644 --- a/app/render/audioparams.h +++ b/app/render/audioparams.h @@ -21,6 +21,10 @@ #ifndef AUDIOPARAMS_H #define AUDIOPARAMS_H +extern "C" { +#include +} + #include #include #include From 21efc945cf6fad354aca9a12d85796b3c291445b Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu, 17 Feb 2022 14:54:49 -0800 Subject: [PATCH 028/114] ci: keep attributes when copying mac frameworks --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e86e50aba..ae2725c88 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -383,12 +383,12 @@ jobs: dylibbundler -b -ns -x "$BUNDLE_NAME/Contents/MacOS/Olive" -s "$DEP_LOCATION/lib" -d "$BUNDLE_NAME/Contents/Frameworks" -p "@executable_path/../Frameworks" $DYLIBBUNDLER_EXTRA_ARGS # Copy Qt frameworks and plugins - cp -R $DEP_LOCATION/lib/Qt*.framework $BUNDLE_NAME/Contents/Frameworks - cp -R $DEP_LOCATION/plugins $BUNDLE_NAME/Contents + cp -Ra $DEP_LOCATION/lib/Qt*.framework $BUNDLE_NAME/Contents/Frameworks + cp -Ra $DEP_LOCATION/plugins $BUNDLE_NAME/Contents # HACK: On x86_64, dylibbundler doesn't resolve this symlink. Weirdly it does on ARM64, # but perhaps I'll bring it up with them soon. - cp $BUNDLE_NAME/Contents/Frameworks/libpng16.16.37.0.dylib $BUNDLE_NAME/Contents/Frameworks/libpng16.16.dylib + cp -a $BUNDLE_NAME/Contents/Frameworks/libpng16.16.37.0.dylib $BUNDLE_NAME/Contents/Frameworks/libpng16.16.dylib if [ "${{ matrix.os-arch }}" == "x86_64" ] then From 536f518ba2dbbb7ac9f412e4217b2a0ec333c26a Mon Sep 17 00:00:00 2001 From: Simran Spiller Date: Fri, 18 Feb 2022 00:02:21 +0100 Subject: [PATCH 029/114] Change file mode of Chinese translations to not be executable [skip ci] --- app/ts/zh_CN.ts | 0 app/ts/zh_TW.ts | 0 2 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 app/ts/zh_CN.ts mode change 100755 => 100644 app/ts/zh_TW.ts diff --git a/app/ts/zh_CN.ts b/app/ts/zh_CN.ts old mode 100755 new mode 100644 diff --git a/app/ts/zh_TW.ts b/app/ts/zh_TW.ts old mode 100755 new mode 100644 From 8118ee29d423cc571527dbff252b6eea1122a4a1 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu, 17 Feb 2022 16:33:55 -0800 Subject: [PATCH 030/114] ci: attempt to codesign on macos --- .github/workflows/ci.yml | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ae2725c88..1d4f33d66 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -367,10 +367,9 @@ jobs: - name: Create Package working-directory: ${{ runner.workspace }}/build - env: - BUNDLE_NAME: "Olive.app" shell: bash run: | + BUNDLE_NAME="Olive.app" brew install dylibbundler if [ "${{ matrix.os-arch }}" == "x86_64" ] @@ -400,6 +399,39 @@ jobs: mv Olive.sym "$SYM_DIR" fi + - name: Sign application + working-directory: ${{ runner.workspace }}/build + shell: bash + env: + BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} + P12_PASSWORD: ${{ secrets.P12_PASSWORD }} + KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} + run: | + BUNDLE_NAME="Olive.app" + + # Install certificate + CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 + KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db + + # import certificate from secrets + echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH + + # create temporary keychain + security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH + security set-keychain-settings -lut 21600 $KEYCHAIN_PATH + security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH + + # import certificate to keychain + security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH + security list-keychain -d user -s $KEYCHAIN_PATH + + # HACK: Remove unsignable frameworks + rm -r $BUNDLE_NAME/Contents/Frameworks/QtUiPlugin.framework + rm -r $BUNDLE_NAME/Contents/Frameworks/QtZlib.framework + + # Sign application + codesign --deep --sign "Developer ID Application: Olive Studios LLC" $BUNDLE_NAME + - name: Deploy Packages working-directory: ${{ runner.workspace }}/build shell: bash From d7067d5b975ee8bb55897ba6d06d797b5475c55b Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu, 17 Feb 2022 16:40:17 -0800 Subject: [PATCH 031/114] ci: fix capitalization --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1d4f33d66..a91224df6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -399,7 +399,7 @@ jobs: mv Olive.sym "$SYM_DIR" fi - - name: Sign application + - name: Sign Application working-directory: ${{ runner.workspace }}/build shell: bash env: From 96ef7ae066825f46508e747fe39b81c91a63d536 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu, 17 Feb 2022 17:15:53 -0800 Subject: [PATCH 032/114] ci: comment out error line for now --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a91224df6..4e111c508 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -427,7 +427,7 @@ jobs: # HACK: Remove unsignable frameworks rm -r $BUNDLE_NAME/Contents/Frameworks/QtUiPlugin.framework - rm -r $BUNDLE_NAME/Contents/Frameworks/QtZlib.framework + #rm -r $BUNDLE_NAME/Contents/Frameworks/QtZlib.framework # Sign application codesign --deep --sign "Developer ID Application: Olive Studios LLC" $BUNDLE_NAME From 76831a2bfd4c095f11bfdedd54d829e7edc58ca5 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu, 17 Feb 2022 17:32:01 -0800 Subject: [PATCH 033/114] ci: rm zlib on arm64 --- .github/workflows/ci.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4e111c508..fbba90628 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -427,7 +427,10 @@ jobs: # HACK: Remove unsignable frameworks rm -r $BUNDLE_NAME/Contents/Frameworks/QtUiPlugin.framework - #rm -r $BUNDLE_NAME/Contents/Frameworks/QtZlib.framework + if [ "${{ matrix.os-arch }}" == "arm64" ] + then + rm -r $BUNDLE_NAME/Contents/Frameworks/QtZlib.framework + fi # Sign application codesign --deep --sign "Developer ID Application: Olive Studios LLC" $BUNDLE_NAME From c2dd7da7238afcf8a6ffe6700dacf97daa97fda0 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu, 17 Feb 2022 17:56:59 -0800 Subject: [PATCH 034/114] ci: set minimum deployment versions correctly [skip ci] Shouldn't really be an issue since 10.13 is already lower than 11.0, but this is more "correct" --- .github/workflows/ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fbba90628..40381ae35 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -285,12 +285,14 @@ jobs: os-arch: x86_64 os: macos-10.15 cmake-gen: Ninja + min-deploy: 10.13 - build-type: RelWithDebInfo compiler-name: Clang LLVM os-name: macOS os-arch: arm64 os: macos-11.0 cmake-gen: Ninja + min-deploy: 11.0 env: DEP_LOCATION: /opt/olive-editor name: | @@ -349,7 +351,7 @@ jobs: brew install ninja PATH=$DEP_LOCATION:$DEP_LOCATION/bin:$DEP_LOCATION/include:$DEP_LOCATION/lib:$DEP_LOCATION/crashpad:$PATH \ cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \ - -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -G "${{ matrix.cmake-gen }}" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=${{ matrix.min-deploy }} -G "${{ matrix.cmake-gen }}" \ -DCMAKE_OSX_ARCHITECTURES="${{ matrix.os-arch }}" - name: Build From 92ef984184e63a42f56d27d3bff50ec298a62917 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=A9rcio=20Martins?= Date: Sat, 26 Feb 2022 15:04:09 -0300 Subject: [PATCH 035/114] Revert "Fix Travis script "install.sh" - execution hangs on osx "if" condition." This reverts commit f82bef4195b2f4fbec53d9e5ad09eee87561403d. --- .travis/install.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.travis/install.sh b/.travis/install.sh index 5dec1c211..350e7ab81 100644 --- a/.travis/install.sh +++ b/.travis/install.sh @@ -1,12 +1,12 @@ #!/bin/bash -if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then +if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then + + #export PATH="/usr/local/opt/qt/bin:/usr/local/opt/python@2/libexec/bin:$PATH" + +elif [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get -y -o Dpkg::Options::="--force-overwrite" install qt510base qt510multimedia qt510svg qttools5-dev libavformat-dev libavcodec-dev libavfilter-dev libavutil-dev libswscale-dev libswresample-dev cmake libopencolorio-dev libopenimageio-dev libopenexr-dev source /opt/qt*/bin/qt*-env.sh -#elif [[ "$TRAVIS_OS_NAME" == "osx" ]]; then - - #export PATH="/usr/local/opt/qt/bin:/usr/local/opt/python@2/libexec/bin:$PATH" - fi From 027f789a623e39a85318b73b31281d52ec1a21d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=A9rcio=20Martins?= Date: Sat, 26 Feb 2022 16:07:02 -0300 Subject: [PATCH 036/114] =?UTF-8?q?Fix=20the=20error=20"=E2=80=98AV=5FCH?= =?UTF-8?q?=5FLAYOUT=5FSTEREO=E2=80=99=20was=20not=20declared=20in=20this?= =?UTF-8?q?=20scope"=20during=20build?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The build of Olive under Arch Linux (package "olive-git") crashes in the file "app/dialog/sequence/sequencedialogpresettab.cpp". GCC tries to look for the directive "AV_CH_LAYOUT_STEREO", but cannot find it, because the source code has no reference to the header "render/audioparams.h". The following link contains more details about the error: https://aur.archlinux.org/packages/olive-git#comment-852760 --- app/dialog/sequence/sequencedialogpresettab.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/app/dialog/sequence/sequencedialogpresettab.cpp b/app/dialog/sequence/sequencedialogpresettab.cpp index a52258fa0..c3e471b9c 100644 --- a/app/dialog/sequence/sequencedialogpresettab.cpp +++ b/app/dialog/sequence/sequencedialogpresettab.cpp @@ -31,6 +31,7 @@ #include "common/filefunctions.h" #include "config/config.h" +#include "render/audioparams.h" #include "render/videoparams.h" #include "ui/icons/icons.h" #include "widget/menu/menu.h" From f5b4729a19c718bb18c6e11d0fb2f0e5476accf1 Mon Sep 17 00:00:00 2001 From: ThomasWilshaw Date: Thu, 3 Mar 2022 03:38:12 +0000 Subject: [PATCH 037/114] Corner pin (#1851) * Start adding a corner pin node * Start gizmo support * Correctly setup QVector2d inputs * Missing breaks were causing incorect data to be set * Add ability to override vertex coords * Get perspective pin working * Cleanup * Add none perspective corner pin * Small optimisation * Improve comments, clean up and fix bug in job optimisation * [skip ci] cornerpin: Improve description * Move GL extension from shader to standard preamble. * Use #version 130 for mobile GPU compatibility * Cache half resolution * Use built in NodeInputDragger::GetStartValue * Pass cnst references to avoid deep copies Co-authored-by: itsmattkc --- app/node/distort/CMakeLists.txt | 1 + app/node/distort/cornerpin/CMakeLists.txt | 22 ++ .../cornerpin/cornerpindistortnode.cpp | 216 ++++++++++++++++++ .../distort/cornerpin/cornerpindistortnode.h | 109 +++++++++ app/node/factory.cpp | 3 + app/node/factory.h | 1 + app/render/job/shaderjob.h | 13 ++ app/render/opengl/openglrenderer.cpp | 14 +- app/shaders/cornerpin.frag | 48 ++++ app/shaders/cornerpin.vert | 101 ++++++++ 10 files changed, 526 insertions(+), 2 deletions(-) create mode 100644 app/node/distort/cornerpin/CMakeLists.txt create mode 100644 app/node/distort/cornerpin/cornerpindistortnode.cpp create mode 100644 app/node/distort/cornerpin/cornerpindistortnode.h create mode 100644 app/shaders/cornerpin.frag create mode 100644 app/shaders/cornerpin.vert diff --git a/app/node/distort/CMakeLists.txt b/app/node/distort/CMakeLists.txt index 2962e21ca..375232ccc 100644 --- a/app/node/distort/CMakeLists.txt +++ b/app/node/distort/CMakeLists.txt @@ -14,6 +14,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +add_subdirectory(cornerpin) add_subdirectory(crop) add_subdirectory(flip) add_subdirectory(transform) diff --git a/app/node/distort/cornerpin/CMakeLists.txt b/app/node/distort/cornerpin/CMakeLists.txt new file mode 100644 index 000000000..e89b0f94f --- /dev/null +++ b/app/node/distort/cornerpin/CMakeLists.txt @@ -0,0 +1,22 @@ +# Olive - Non-Linear Video Editor +# Copyright (C) 2021 Olive Team +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +set(OLIVE_SOURCES + ${OLIVE_SOURCES} + node/distort/cornerpin/cornerpindistortnode.cpp + node/distort/cornerpin/cornerpindistortnode.h + PARENT_SCOPE +) diff --git a/app/node/distort/cornerpin/cornerpindistortnode.cpp b/app/node/distort/cornerpin/cornerpindistortnode.cpp new file mode 100644 index 000000000..b1e9b573e --- /dev/null +++ b/app/node/distort/cornerpin/cornerpindistortnode.cpp @@ -0,0 +1,216 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#include "cornerpindistortnode.h" + +#include "common/lerp.h" +#include "core.h" +#include "widget/slider/floatslider.h" + +namespace olive { + +const QString CornerPinDistortNode::kTextureInput = QStringLiteral("tex_in"); +const QString CornerPinDistortNode::kTopLeftInput = QStringLiteral("top_left_in"); +const QString CornerPinDistortNode::kTopRightInput = QStringLiteral("top_right_in"); +const QString CornerPinDistortNode::kBottomRightInput = QStringLiteral("bottom_right_in"); +const QString CornerPinDistortNode::kBottomLeftInput = QStringLiteral("bottom_left_in"); +const QString CornerPinDistortNode::kPerspectiveInput = QStringLiteral("perspective_in"); + +CornerPinDistortNode::CornerPinDistortNode() +{ + AddInput(kTextureInput, NodeValue::kTexture, InputFlags(kInputFlagNotKeyframable)); + AddInput(kPerspectiveInput, NodeValue::kBoolean, true); + AddInput(kTopLeftInput, NodeValue::kVec2, QVector2D(0.0, 0.0)); + AddInput(kTopRightInput, NodeValue::kVec2, QVector2D(0.0, 0.0)); + AddInput(kBottomRightInput, NodeValue::kVec2, QVector2D(0.0, 0.0)); + AddInput(kBottomLeftInput, NodeValue::kVec2, QVector2D(0.0, 0.0)); +} + +void CornerPinDistortNode::Retranslate() +{ + SetInputName(kTextureInput, tr("Texture")); + SetInputName(kPerspectiveInput, tr("Perspective")); + SetInputName(kTopLeftInput, tr("Top Left")); + SetInputName(kTopRightInput, tr("Top Right")); + SetInputName(kBottomRightInput, tr("Bottom Right")); + SetInputName(kBottomLeftInput, tr("Bottom Left")); +} + +void CornerPinDistortNode::Value(const NodeValueRow &value, const NodeGlobals &globals, NodeValueTable *table) const +{ + ShaderJob job; + job.InsertValue(value); + job.SetAlphaChannelRequired(GenerateJob::kAlphaForceOn); + job.InsertValue(QStringLiteral("resolution_in"), NodeValue(NodeValue::kVec2, globals.resolution(), this)); + + // Convert slider values to their pixel values and then convert to clip space (-1.0 ... 1.0) for overriding the + // vertex coordinates. + const QVector2D &resolution = globals.resolution(); + QVector2D half_resolution = resolution * 0.5; + QVector2D top_left = QVector2D(ValueToPixel(0, value, resolution)) / half_resolution - QVector2D(1.0, 1.0); + QVector2D top_right = QVector2D(ValueToPixel(1, value, resolution)) / half_resolution - QVector2D(1.0, 1.0); + QVector2D bottom_right = QVector2D(ValueToPixel(2, value, resolution)) / half_resolution - QVector2D(1.0, 1.0); + QVector2D bottom_left = QVector2D(ValueToPixel(3, value, resolution)) / half_resolution - QVector2D(1.0, 1.0); + + // Override default vertex coordinates. + QVector adjusted_vertices = {top_left.x(), top_left.y(), 0.0f, + top_right.x(), top_right.y(), 0.0f, + bottom_right.x(), bottom_right.y(), 0.0f, + + top_left.x(), top_left.y(), 0.0f, + bottom_left.x(), bottom_left.y(), 0.0f, + bottom_right.x(), bottom_right.y(), 0.0f}; + job.SetVertexCoordinates(adjusted_vertices); + + // If no texture do nothing + if (!job.GetValue(kTextureInput).data().isNull()) { + // In the special case that all sliders are in their default position just + // push the texture. + if (!(job.GetValue(kTopLeftInput).data().value().isNull() + && job.GetValue(kTopRightInput).data().value().isNull() && + job.GetValue(kBottomRightInput).data().value().isNull() && + job.GetValue(kBottomLeftInput).data().value().isNull())) { + table->Push(NodeValue::kShaderJob, QVariant::fromValue(job), this); + } else { + table->Push(NodeValue::kTexture, job.GetValue(kTextureInput).data(), this); + } + } +} + +ShaderCode CornerPinDistortNode::GetShaderCode(const QString &shader_id) const +{ + Q_UNUSED(shader_id) + return ShaderCode(FileFunctions::ReadFileAsString(QStringLiteral(":/shaders/cornerpin.frag")), + FileFunctions::ReadFileAsString(QStringLiteral(":/shaders/cornerpin.vert"))); +} + +QPointF CornerPinDistortNode::ValueToPixel(int value, const NodeValueRow& row, const QVector2D &resolution) const +{ + Q_ASSERT(value >= 0 && value <= 3); + switch (value) { + case 0: // Top left + return QPointF(row[kTopLeftInput].data().value().x(), + row[kTopLeftInput].data().value().y()); + break; + case 1: // Top right + return QPointF(resolution.x() + row[kTopRightInput].data().value().x(), + row[kTopRightInput].data().value().y()); + break; + case 2: // Bottom right + return QPointF(resolution.x() + row[kBottomRightInput].data().value().x(), + resolution.y() + row[kBottomRightInput].data().value().y()); + break; + case 3: //Bottom left + return QPointF(row[kBottomLeftInput].data().value().x(), + row[kBottomLeftInput].data().value().y() + resolution.y()); + break; + default: // We should never get here + return QPointF(); + } +} + +void CornerPinDistortNode::DrawGizmos(const NodeValueRow &row, const NodeGlobals &globals, QPainter *p) +{ + const QVector2D &resolution = globals.resolution(); + + const double handle_radius = GetGizmoHandleRadius(p->transform()); + + p->setPen(QPen(Qt::white, 0)); + + QPointF top_left = ValueToPixel(0, row, resolution); + QPointF top_right = ValueToPixel(1, row, resolution); + QPointF bottom_right = ValueToPixel(2, row, resolution); + QPointF bottom_left = ValueToPixel(3, row, resolution); + + // Add the correct offset to each slider + SetInputProperty(kTopLeftInput, QStringLiteral("offset"), QVector2D(0.0, 0.0)); + SetInputProperty(kTopRightInput, QStringLiteral("offset"), QVector2D(resolution.x() , 0.0)); + SetInputProperty(kBottomRightInput, QStringLiteral("offset"), resolution); + SetInputProperty(kBottomLeftInput, QStringLiteral("offset"), QVector2D(0.0, resolution.y())); + + // Draw bounding box + p->drawLine(QLineF(top_left, top_right)); + p->drawLine(QLineF(top_right, bottom_right)); + p->drawLine(QLineF(bottom_right, bottom_left)); + p->drawLine(QLineF(bottom_left, top_left)); + + // Create handles + gizmo_resize_handle_[0] = CreateGizmoHandleRect(top_left, handle_radius); + gizmo_resize_handle_[1] = CreateGizmoHandleRect(top_right, handle_radius); + gizmo_resize_handle_[2] = CreateGizmoHandleRect(bottom_right, handle_radius); + gizmo_resize_handle_[3] = CreateGizmoHandleRect(bottom_left, handle_radius); + + // Draw handles + DrawAndExpandGizmoHandles(p, handle_radius, gizmo_resize_handle_, kGizmoCornerCount); +} + +bool CornerPinDistortNode::GizmoPress(const NodeValueRow &row, const NodeGlobals &globals, const QPointF &p) +{ + bool gizmo_active[kGizmoCornerCount] = {false}; + + for (int i = 0; i < kGizmoCornerCount; i++) { + gizmo_active[i] = gizmo_resize_handle_[i].contains(p); + + if (gizmo_active[i]) { + gizmo_drag_start_ = p; + gizmo_res_ = globals.resolution(); + gizmo_drag_ = i; + return true; + } + } + + return false; +} + +void CornerPinDistortNode::GizmoMove(const QPointF &p, const rational &time, const Qt::KeyboardModifiers &modifiers) +{ + if (gizmo_dragger_.isEmpty()) { + gizmo_dragger_.resize(2); + if (gizmo_drag_ == 0) { + gizmo_dragger_[0].Start(NodeKeyframeTrackReference(NodeInput(this, kTopLeftInput), 0), time); + gizmo_dragger_[1].Start(NodeKeyframeTrackReference(NodeInput(this, kTopLeftInput), 1), time); + } + if (gizmo_drag_ == 1) { + gizmo_dragger_[0].Start(NodeKeyframeTrackReference(NodeInput(this, kTopRightInput), 0), time); + gizmo_dragger_[1].Start(NodeKeyframeTrackReference(NodeInput(this, kTopRightInput), 1), time); + } + if (gizmo_drag_ == 2) { + gizmo_dragger_[0].Start(NodeKeyframeTrackReference(NodeInput(this, kBottomRightInput), 0), time); + gizmo_dragger_[1].Start(NodeKeyframeTrackReference(NodeInput(this, kBottomRightInput), 1), time); + } + if (gizmo_drag_ == 3) { + gizmo_dragger_[0].Start(NodeKeyframeTrackReference(NodeInput(this, kBottomLeftInput), 0), time); + gizmo_dragger_[1].Start(NodeKeyframeTrackReference(NodeInput(this, kBottomLeftInput), 1), time); + } + } + + QPointF diff = p - gizmo_drag_start_; + gizmo_dragger_[0].Drag(gizmo_dragger_[0].GetStartValue().toDouble() + diff.x()); + gizmo_dragger_[1].Drag(gizmo_dragger_[1].GetStartValue().toDouble() + diff.y()); +} + +void CornerPinDistortNode::GizmoRelease(MultiUndoCommand *command) { + for (NodeInputDragger &i : gizmo_dragger_) { + i.End(command); + } + gizmo_dragger_.clear(); +} + +} diff --git a/app/node/distort/cornerpin/cornerpindistortnode.h b/app/node/distort/cornerpin/cornerpindistortnode.h new file mode 100644 index 000000000..6261d7e1a --- /dev/null +++ b/app/node/distort/cornerpin/cornerpindistortnode.h @@ -0,0 +1,109 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#ifndef CORNERPINDISTORTNODE_H +#define CORNERPINDISTORTNODE_H + +#include + +#include "node/inputdragger.h" +#include "node/node.h" + +namespace olive { +class CornerPinDistortNode : public Node +{ + Q_OBJECT +public: + CornerPinDistortNode(); + + NODE_DEFAULT_DESTRUCTOR(CornerPinDistortNode) + + virtual Node* copy() const override + { + return new CornerPinDistortNode(); + } + + virtual QString Name() const override + { + return tr("Corner Pin"); + } + + virtual QString id() const override + { + return QStringLiteral("org.olivevideoeditor.Olive.cornerpin"); + } + + virtual QVector Category() const override + { + return {kCategoryDistort}; + } + + virtual QString Description() const override + { + return tr("Distort the image by dragging the corners."); + } + + virtual void Retranslate() override; + + virtual void Value(const NodeValueRow& value, const NodeGlobals &globals, NodeValueTable *table) const override; + + virtual ShaderCode GetShaderCode(const QString &shader_id) const override; + + virtual bool HasGizmos() const override + { + return true; + } + + virtual void DrawGizmos(const NodeValueRow& row, const NodeGlobals &globals, QPainter *p) override; + + virtual bool GizmoPress(const NodeValueRow& row, const NodeGlobals &globals, const QPointF &p) override; + virtual void GizmoMove(const QPointF &p, const rational &time, const Qt::KeyboardModifiers &modifiers) override; + virtual void GizmoRelease(MultiUndoCommand *command) override; + + /** + * @brief Convenience function - converts the 2D slider values from being + * an offset to the actual pixel value. + */ + QPointF ValueToPixel(int value, const NodeValueRow &row, const QVector2D &resolution) const; + + static const QString kTextureInput; + static const QString kPerspectiveInput; + static const QString kTopLeftInput; + static const QString kTopRightInput; + static const QString kBottomRightInput; + static const QString kBottomLeftInput; + +private: + // Gizmo variables + static const int kGizmoCornerCount = 4; + QRectF gizmo_resize_handle_[kGizmoCornerCount]; + QRectF gizmo_whole_rect_; + + int gizmo_drag_; + QVector gizmo_dragger_; + QPointF gizmo_drag_start_; + QVector2D gizmo_res_; + +}; + +} + + +#endif // CORNERPINDISTORTNODE_H diff --git a/app/node/factory.cpp b/app/node/factory.cpp index 7afcec6d9..ed28bc535 100644 --- a/app/node/factory.cpp +++ b/app/node/factory.cpp @@ -29,6 +29,7 @@ #include "block/subtitle/subtitle.h" #include "block/transition/crossdissolve/crossdissolvetransition.h" #include "block/transition/diptocolor/diptocolortransition.h" +#include "distort/cornerpin/cornerpindistortnode.h" #include "distort/crop/cropdistortnode.h" #include "distort/flip/flipdistortnode.h" #include "distort/transform/transformdistortnode.h" @@ -264,6 +265,8 @@ Node *NodeFactory::CreateFromFactoryIndex(const NodeFactory::InternalID &id) return new NoiseGeneratorNode(); case kTimeOffsetNode: return new TimeOffsetNode(); + case kCornerPinDistort: + return new CornerPinDistortNode(); case kInternalNodeCount: break; diff --git a/app/node/factory.h b/app/node/factory.h index 5e627841c..77fe474eb 100644 --- a/app/node/factory.h +++ b/app/node/factory.h @@ -66,6 +66,7 @@ public: kFlipDistort, kNoiseGenerator, kTimeOffsetNode, + kCornerPinDistort, // Count value kInternalNodeCount diff --git a/app/render/job/shaderjob.h b/app/render/job/shaderjob.h index 3bbbac19d..77a08ae9f 100644 --- a/app/render/job/shaderjob.h +++ b/app/render/job/shaderjob.h @@ -22,6 +22,7 @@ #define SHADERJOB_H #include +#include #include "generatejob.h" #include "render/texture.h" @@ -87,6 +88,16 @@ public: interpolation_.insert(id, interp); } + void SetVertexCoordinates(const QVector &vertex_coords) + { + vertex_overrides_ = vertex_coords; + } + + const QVector& GetVertexCoordinates() + { + return vertex_overrides_; + } + private: QString shader_id_; @@ -96,6 +107,8 @@ private: QHash interpolation_; + QVector vertex_overrides_; + }; } diff --git a/app/render/opengl/openglrenderer.cpp b/app/render/opengl/openglrenderer.cpp index 37e43e88d..7aa0955cb 100644 --- a/app/render/opengl/openglrenderer.cpp +++ b/app/render/opengl/openglrenderer.cpp @@ -569,7 +569,13 @@ void OpenGLRenderer::Blit(QVariant s, ShaderJob job, Texture *destination, Video QOpenGLBuffer vert_vbo_; vert_vbo_.create(); vert_vbo_.bind(); - vert_vbo_.allocate(blit_vertices.constData(), blit_vertices.size() * sizeof(GLfloat)); + // If the job has vertex coordinate overrides use them instead of the defaults. + if (!job.GetVertexCoordinates().isEmpty()) { + Q_ASSERT(job.GetVertexCoordinates().size() == 18); + vert_vbo_.allocate(job.GetVertexCoordinates().constData(), job.GetVertexCoordinates().size() * sizeof(float)); + } else { + vert_vbo_.allocate(blit_vertices.constData(), blit_vertices.size() * sizeof(GLfloat)); + } vert_vbo_.release(); QOpenGLBuffer frag_vbo_; @@ -886,7 +892,11 @@ GLuint OpenGLRenderer::CompileShader(GLenum type, const QString &code) QStringLiteral("#version 120\n\n"); #endif - QString complete_code = shader_preamble; + QString complete_code; + + if (!code.startsWith(QStringLiteral("#version"))) { + complete_code = shader_preamble; + } if (code.isEmpty()) { // Use default code diff --git a/app/shaders/cornerpin.frag b/app/shaders/cornerpin.frag new file mode 100644 index 000000000..7dd7e3306 --- /dev/null +++ b/app/shaders/cornerpin.frag @@ -0,0 +1,48 @@ +// Input texture +uniform sampler2D ove_maintex; +uniform sampler2D tex_in; +uniform bool perspective_in; + +// Input texture coordinate +varying vec2 ove_texcoord; + +varying vec2 q; +varying vec2 b1; +varying vec2 b2; +varying vec2 b3; + +float Wedge2D(vec2 v, vec2 w) { + return (v.x*w.y) - (v.y*w.x); +} + +void main() { + if(perspective_in){ + gl_FragColor = texture2D(tex_in, ove_texcoord); + } else { + float A = Wedge2D(b2, b3); + float B = Wedge2D(b3, q) - Wedge2D(b1, b2); + float C = Wedge2D(b1, q); + + vec2 uv; + + // solve for v + if (abs(A) < 0.001) { + uv.y = -C/B; + } else { + float discrim = B*B - 4.0*A*C; + uv.y = 0.5 * (-B + sqrt(discrim)) / A; + } + + // solve for u + vec2 denom = b1 + uv.y * b3; + if (abs(denom.x) > abs(denom.y)) { + uv.x = (q.x - b2.x * uv.y) / denom.x; + } else { + uv.x = (q.y - b2.y * uv.y) / denom.y; + } + + uv.y = 1.0 - uv.y; + + gl_FragColor = texture2D(tex_in, uv); + } +} diff --git a/app/shaders/cornerpin.vert b/app/shaders/cornerpin.vert new file mode 100644 index 000000000..21c2b0527 --- /dev/null +++ b/app/shaders/cornerpin.vert @@ -0,0 +1,101 @@ +#version 130 + +uniform bool perspective_in; +uniform vec2 top_left_in; +uniform vec2 top_right_in; +uniform vec2 bottom_left_in; +uniform vec2 bottom_right_in; + +uniform vec2 resolution_in; + +uniform mat4 ove_mvpmat; + +attribute vec4 a_position; +attribute vec2 a_texcoord; + +varying vec2 ove_texcoord; + +varying vec2 q; +varying vec2 b1; +varying vec2 b2; +varying vec2 b3; + +void main() { + // The slider inputs only contain the amount they have changed rather than + // their pixel locations so we adjust them here. + vec2 t_l = top_left_in; + vec2 t_r = top_right_in + vec2(resolution_in.x, 0.0); + vec2 b_r = bottom_right_in + resolution_in; + vec2 b_l = bottom_left_in + vec2(0.0, resolution_in.y); + + gl_Position = ove_mvpmat * a_position; + + if (perspective_in){ + // Find the center of the quadrilateral by finding where the two diagonals intersect. + // https://www.reedbeta.com/blog/quadrilateral-interpolation-part-1/ + + // Here we calculate the gradient and constant (y = mx + c) for each diagonal. + float m1 = (t_r.y - b_l.y)/(t_r.x - b_l.x); + float c1 = b_l.y - m1 * b_l.x; + float m2 = (b_r.y - t_l.y)/(b_r.x - t_l.x); + float c2 = t_l.y - m2 * t_l.x; + + // Find the intersection by setting the two line equations equal and rearrange. + float mid_x = (c2 - c1) / (m1 - m2); + float mid_y = m1 * mid_x + c1; + + // Find the distance from each corner to our center point + float d0 = length(vec2(mid_x - b_l.x, mid_y - b_l.y)); + float d1 = length(vec2(b_r.x - mid_x, mid_y - b_r.y)); + float d2 = length(vec2(t_r.x - mid_x, t_r.y - mid_y)); + float d3 = length(vec2(mid_x - t_l.x, t_l.y - mid_y)); + + float q = 1.0; + + /* + Vertex IDs (aspect ratio irrelevant): + 0_____1 + 3|\ | + | \ | + | \ | + | \ | + |____\|2 + 4 5 + */ + + if (gl_VertexID == 0 || gl_VertexID == 3) { + q = (d1+d3)/d3; + } else if (gl_VertexID == 1) { + q = (d0+d2)/d2; + } else if (gl_VertexID == 2 || gl_VertexID == 5) { + q = (d3+d1)/d1; + } else { + q = (d2+d0)/d0; + } + + gl_Position[0] *= q; + gl_Position[1] *= q; + gl_Position[3] = q; + } else{ + // https://www.reedbeta.com/blog/quadrilateral-interpolation-part-2/ + vec2 pos; + + if (gl_VertexID == 0 || gl_VertexID == 3) { // top left + pos = t_l; + } else if (gl_VertexID == 1) { // top right + pos = t_r; + } else if (gl_VertexID == 2 || gl_VertexID == 5) { // bottom right + pos = b_r; + } else if (gl_VertexID == 4) { // bottom left + pos = b_l; + } + + q = pos - b_l; + b1 = b_r - b_l; + b2 = t_l - b_l; + b3 = b_l - b_r - t_l + t_r; + } + + + ove_texcoord = a_texcoord; +} From 780342881ee5992558d6877755335d08ba1f7725 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Wed, 2 Mar 2022 19:45:47 -0800 Subject: [PATCH 038/114] cornerpin: add version to frag shader too This fixes shader compilation issue on some platforms/drivers --- app/shaders/cornerpin.frag | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/shaders/cornerpin.frag b/app/shaders/cornerpin.frag index 7dd7e3306..84b9ece6b 100644 --- a/app/shaders/cornerpin.frag +++ b/app/shaders/cornerpin.frag @@ -1,3 +1,5 @@ +#version 130 + // Input texture uniform sampler2D ove_maintex; uniform sampler2D tex_in; From 63c807b90290933fb2a0796d9b5adc5c455a5b4e Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Fri, 4 Mar 2022 15:31:39 -0800 Subject: [PATCH 039/114] implement glsl hack for corner pin --- .../distort/cornerpin/cornerpindistortnode.cpp | 14 ++++++++++++-- app/shaders/cornerpin.frag | 2 -- app/shaders/cornerpin.vert | 2 -- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/app/node/distort/cornerpin/cornerpindistortnode.cpp b/app/node/distort/cornerpin/cornerpindistortnode.cpp index b1e9b573e..327c7ccf7 100644 --- a/app/node/distort/cornerpin/cornerpindistortnode.cpp +++ b/app/node/distort/cornerpin/cornerpindistortnode.cpp @@ -97,8 +97,18 @@ void CornerPinDistortNode::Value(const NodeValueRow &value, const NodeGlobals &g ShaderCode CornerPinDistortNode::GetShaderCode(const QString &shader_id) const { Q_UNUSED(shader_id) - return ShaderCode(FileFunctions::ReadFileAsString(QStringLiteral(":/shaders/cornerpin.frag")), - FileFunctions::ReadFileAsString(QStringLiteral(":/shaders/cornerpin.vert"))); + QString frag = FileFunctions::ReadFileAsString(QStringLiteral(":/shaders/cornerpin.frag")); + QString vert = FileFunctions::ReadFileAsString(QStringLiteral(":/shaders/cornerpin.vert")); + + // HACK: No good, very bad hack +#ifndef Q_OS_MAC + frag.prepend(QStringLiteral("#version 130")); + vert.prepend(QStringLiteral("#version 130")); +#else + vert.prepend(QStringLiteral("#extension GL_EXT_gpu_shader4 : require")); +#endif + + return ShaderCode(frag, vert); } QPointF CornerPinDistortNode::ValueToPixel(int value, const NodeValueRow& row, const QVector2D &resolution) const diff --git a/app/shaders/cornerpin.frag b/app/shaders/cornerpin.frag index 84b9ece6b..7dd7e3306 100644 --- a/app/shaders/cornerpin.frag +++ b/app/shaders/cornerpin.frag @@ -1,5 +1,3 @@ -#version 130 - // Input texture uniform sampler2D ove_maintex; uniform sampler2D tex_in; diff --git a/app/shaders/cornerpin.vert b/app/shaders/cornerpin.vert index 21c2b0527..1eadf95fe 100644 --- a/app/shaders/cornerpin.vert +++ b/app/shaders/cornerpin.vert @@ -1,5 +1,3 @@ -#version 130 - uniform bool perspective_in; uniform vec2 top_left_in; uniform vec2 top_right_in; From 3e12fb1f963a9bfa304f4d659fed2f21111ef937 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Fri, 4 Mar 2022 15:50:55 -0800 Subject: [PATCH 040/114] cornerpin: fix bug with hack --- app/node/distort/cornerpin/cornerpindistortnode.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/node/distort/cornerpin/cornerpindistortnode.cpp b/app/node/distort/cornerpin/cornerpindistortnode.cpp index 327c7ccf7..b14909fe7 100644 --- a/app/node/distort/cornerpin/cornerpindistortnode.cpp +++ b/app/node/distort/cornerpin/cornerpindistortnode.cpp @@ -102,10 +102,10 @@ ShaderCode CornerPinDistortNode::GetShaderCode(const QString &shader_id) const // HACK: No good, very bad hack #ifndef Q_OS_MAC - frag.prepend(QStringLiteral("#version 130")); - vert.prepend(QStringLiteral("#version 130")); + frag.prepend(QStringLiteral("#version 130\n\n")); + vert.prepend(QStringLiteral("#version 130\n\n")); #else - vert.prepend(QStringLiteral("#extension GL_EXT_gpu_shader4 : require")); + vert.prepend(QStringLiteral("#extension GL_EXT_gpu_shader4 : require\n\n")); #endif return ShaderCode(frag, vert); From f75e91cf4d59e0df5d0cd4fe8202c78ba50c3cf3 Mon Sep 17 00:00:00 2001 From: Blendy <63923395+BlendyDev@users.noreply.github.com> Date: Sat, 5 Mar 2022 19:18:23 +0100 Subject: [PATCH 041/114] Fixed typo in Spanish translation (#1870) Avtivado -> Activado --- app/ts/es_ES.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/ts/es_ES.ts b/app/ts/es_ES.ts index c28761a8e..71bce4706 100644 --- a/app/ts/es_ES.ts +++ b/app/ts/es_ES.ts @@ -4883,7 +4883,7 @@ y salida. On - Avtivado + Activado From 6ccebcd988583bedf435a18912b0257bd046d59f Mon Sep 17 00:00:00 2001 From: Thomas Wilshaw Date: Wed, 9 Mar 2022 12:50:34 +0000 Subject: [PATCH 042/114] colormanager: Remove hard coded color space The hard coded color space was causing custom configs to crash if they didn't contain that specific color space. Also sets the default role in the config to sRGB EOTF to keep consistency with previous behaviour --- app/node/color/colormanager/colormanager.cpp | 2 +- app/render/ocioconf/config.ocio | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/node/color/colormanager/colormanager.cpp b/app/node/color/colormanager/colormanager.cpp index 956a8721a..4f946a513 100644 --- a/app/node/color/colormanager/colormanager.cpp +++ b/app/node/color/colormanager/colormanager.cpp @@ -50,7 +50,7 @@ ColorManager::ColorManager() : // Set config to our built-in default SetConfig(GetDefaultConfig()); - SetDefaultInputColorSpace(QStringLiteral("sRGB OETF")); + SetDefaultInputColorSpace(config_->getCanonicalName(OCIO::ROLE_DEFAULT)); } OCIO::ConstConfigRcPtr ColorManager::GetConfig() const diff --git a/app/render/ocioconf/config.ocio b/app/render/ocioconf/config.ocio index bb5d3069a..0253fb63b 100755 --- a/app/render/ocioconf/config.ocio +++ b/app/render/ocioconf/config.ocio @@ -16,7 +16,7 @@ luma: [0.2126, 0.7152, 0.0722] description: A filmlike dynamic range encoding set for Blender roles: - default: Linear + default: sRGB OETF reference: Linear scene_linear: Linear data: Non-Colour Data From d64f153e0b21afb1958838a693a6b853a861af51 Mon Sep 17 00:00:00 2001 From: Thomas Wilshaw Date: Wed, 9 Mar 2022 13:41:13 +0000 Subject: [PATCH 043/114] filefunctions: change permissions to allow deleting --- app/common/filefunctions.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/common/filefunctions.cpp b/app/common/filefunctions.cpp index 5c36ea0c7..24de67db0 100644 --- a/app/common/filefunctions.cpp +++ b/app/common/filefunctions.cpp @@ -139,7 +139,10 @@ void FileFunctions::CopyDirectory(const QString &source, const QString &dest, bo } else { // Copy file if (overwrite && QFile::exists(dest_file_path)) { - QFile::remove(dest_file_path); + QFile file(dest_file_path); + file.setPermissions(file.permissions() | QFileDevice::WriteOwner | QFileDevice::WriteUser | + QFileDevice::WriteGroup | QFileDevice::WriteOther); + file.remove(); } QFile::copy(info.absoluteFilePath(), dest_file_path); From 1e3e62026965c3e7c4268f695e1519f1d4eee859 Mon Sep 17 00:00:00 2001 From: Thomas Wilshaw Date: Wed, 9 Mar 2022 14:05:27 +0000 Subject: [PATCH 044/114] timeline-tests: Setup config before running --- tests/timeline/timeline-tests.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/timeline/timeline-tests.cpp b/tests/timeline/timeline-tests.cpp index a09ca4403..9b3186c7d 100644 --- a/tests/timeline/timeline-tests.cpp +++ b/tests/timeline/timeline-tests.cpp @@ -33,6 +33,7 @@ namespace olive { #define TIMELINE_TEST_START \ + ColorManager::SetUpDefaultConfig(); \ Project project; \ Sequence sequence; \ sequence.setParent(&project) From 1434f0f22509c8bfab09ae57fa2af9b80cdcf663 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu, 10 Mar 2022 11:37:51 -0800 Subject: [PATCH 045/114] blur: default to repeat edge pixels on --- app/node/filter/blur/blur.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/node/filter/blur/blur.cpp b/app/node/filter/blur/blur.cpp index a7eb1741d..c488b8008 100644 --- a/app/node/filter/blur/blur.cpp +++ b/app/node/filter/blur/blur.cpp @@ -42,7 +42,7 @@ BlurFilterNode::BlurFilterNode() AddInput(kVertInput, NodeValue::kBoolean, true); - AddInput(kRepeatEdgePixelsInput, NodeValue::kBoolean, false); + AddInput(kRepeatEdgePixelsInput, NodeValue::kBoolean, true); } Node *BlurFilterNode::copy() const From 43cef6e332039059f8e82454b82184a6be92a221 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu, 10 Mar 2022 12:22:14 -0800 Subject: [PATCH 046/114] opengl: set texture wrap R on 3D textures --- app/render/opengl/openglrenderer.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/render/opengl/openglrenderer.cpp b/app/render/opengl/openglrenderer.cpp index 7aa0955cb..49f8d3c89 100644 --- a/app/render/opengl/openglrenderer.cpp +++ b/app/render/opengl/openglrenderer.cpp @@ -807,6 +807,10 @@ void OpenGLRenderer::PrepareInputTexture(GLenum target, Texture::Interpolation i functions_->glTexParameteri(target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); functions_->glTexParameteri(target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + + if (target == GL_TEXTURE_3D) { + functions_->glTexParameteri(target, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE); + } } void OpenGLRenderer::ClearDestinationInternal(double r, double g, double b, double a) From edf7b483dc1c0371c3219f0b880b5cb7315326c0 Mon Sep 17 00:00:00 2001 From: Pablo Gil Date: Tue, 15 Mar 2022 16:40:45 +0100 Subject: [PATCH 047/114] adding "mute" and "lock" timeline icons --- app/ui/style/olive-dark/svg/eye_closed.svg | 150 ++++++++++++++++ app/ui/style/olive-dark/svg/eye_opened.svg | 157 +++++++++++++++++ .../style/olive-dark/svg/padlock_closed.svg | 160 ++++++++++++++++++ .../style/olive-dark/svg/padlock_opened.svg | 160 ++++++++++++++++++ app/ui/style/olive-light/svg/eye_closed.svg | 150 ++++++++++++++++ app/ui/style/olive-light/svg/eye_opened.svg | 157 +++++++++++++++++ .../style/olive-light/svg/padlock_closed.svg | 160 ++++++++++++++++++ .../style/olive-light/svg/padlock_opened.svg | 160 ++++++++++++++++++ 8 files changed, 1254 insertions(+) create mode 100644 app/ui/style/olive-dark/svg/eye_closed.svg create mode 100644 app/ui/style/olive-dark/svg/eye_opened.svg create mode 100644 app/ui/style/olive-dark/svg/padlock_closed.svg create mode 100644 app/ui/style/olive-dark/svg/padlock_opened.svg create mode 100644 app/ui/style/olive-light/svg/eye_closed.svg create mode 100644 app/ui/style/olive-light/svg/eye_opened.svg create mode 100644 app/ui/style/olive-light/svg/padlock_closed.svg create mode 100644 app/ui/style/olive-light/svg/padlock_opened.svg diff --git a/app/ui/style/olive-dark/svg/eye_closed.svg b/app/ui/style/olive-dark/svg/eye_closed.svg new file mode 100644 index 000000000..3788ff0c6 --- /dev/null +++ b/app/ui/style/olive-dark/svg/eye_closed.svg @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/eye_opened.svg b/app/ui/style/olive-dark/svg/eye_opened.svg new file mode 100644 index 000000000..88eaa089f --- /dev/null +++ b/app/ui/style/olive-dark/svg/eye_opened.svg @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/padlock_closed.svg b/app/ui/style/olive-dark/svg/padlock_closed.svg new file mode 100644 index 000000000..a30ca276a --- /dev/null +++ b/app/ui/style/olive-dark/svg/padlock_closed.svg @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/padlock_opened.svg b/app/ui/style/olive-dark/svg/padlock_opened.svg new file mode 100644 index 000000000..b15275e41 --- /dev/null +++ b/app/ui/style/olive-dark/svg/padlock_opened.svg @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/eye_closed.svg b/app/ui/style/olive-light/svg/eye_closed.svg new file mode 100644 index 000000000..02cd7d0b5 --- /dev/null +++ b/app/ui/style/olive-light/svg/eye_closed.svg @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/eye_opened.svg b/app/ui/style/olive-light/svg/eye_opened.svg new file mode 100644 index 000000000..a8b4eb2dd --- /dev/null +++ b/app/ui/style/olive-light/svg/eye_opened.svg @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/padlock_closed.svg b/app/ui/style/olive-light/svg/padlock_closed.svg new file mode 100644 index 000000000..7a9c20cd6 --- /dev/null +++ b/app/ui/style/olive-light/svg/padlock_closed.svg @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/padlock_opened.svg b/app/ui/style/olive-light/svg/padlock_opened.svg new file mode 100644 index 000000000..51dd9c23c --- /dev/null +++ b/app/ui/style/olive-light/svg/padlock_opened.svg @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + From ebf734fec05be01915f26d45af3d4aead35c9c0f Mon Sep 17 00:00:00 2001 From: Pablo Gil Date: Tue, 15 Mar 2022 16:47:57 +0100 Subject: [PATCH 048/114] autogenerated .png and manually updated .qrc --- app/ui/style/olive-dark/olive-dark.qrc | 16 ++++++++++++++++ .../olive-dark/png/eye_closed.128.disabled.png | Bin 0 -> 1575 bytes app/ui/style/olive-dark/png/eye_closed.128.png | Bin 0 -> 1935 bytes .../olive-dark/png/eye_closed.16.disabled.png | Bin 0 -> 519 bytes app/ui/style/olive-dark/png/eye_closed.16.png | Bin 0 -> 368 bytes .../olive-dark/png/eye_closed.32.disabled.png | Bin 0 -> 646 bytes app/ui/style/olive-dark/png/eye_closed.32.png | Bin 0 -> 563 bytes .../olive-dark/png/eye_closed.64.disabled.png | Bin 0 -> 947 bytes app/ui/style/olive-dark/png/eye_closed.64.png | Bin 0 -> 1033 bytes .../olive-dark/png/eye_opened.128.disabled.png | Bin 0 -> 2220 bytes app/ui/style/olive-dark/png/eye_opened.128.png | Bin 0 -> 3026 bytes .../olive-dark/png/eye_opened.16.disabled.png | Bin 0 -> 560 bytes app/ui/style/olive-dark/png/eye_opened.16.png | Bin 0 -> 441 bytes .../olive-dark/png/eye_opened.32.disabled.png | Bin 0 -> 757 bytes app/ui/style/olive-dark/png/eye_opened.32.png | Bin 0 -> 779 bytes .../olive-dark/png/eye_opened.64.disabled.png | Bin 0 -> 1179 bytes app/ui/style/olive-dark/png/eye_opened.64.png | Bin 0 -> 1464 bytes .../png/padlock_closed.128.disabled.png | Bin 0 -> 1343 bytes .../style/olive-dark/png/padlock_closed.128.png | Bin 0 -> 1611 bytes .../png/padlock_closed.16.disabled.png | Bin 0 -> 534 bytes .../style/olive-dark/png/padlock_closed.16.png | Bin 0 -> 385 bytes .../png/padlock_closed.32.disabled.png | Bin 0 -> 639 bytes .../style/olive-dark/png/padlock_closed.32.png | Bin 0 -> 529 bytes .../png/padlock_closed.64.disabled.png | Bin 0 -> 834 bytes .../style/olive-dark/png/padlock_closed.64.png | Bin 0 -> 896 bytes .../png/padlock_opened.128.disabled.png | Bin 0 -> 1380 bytes .../style/olive-dark/png/padlock_opened.128.png | Bin 0 -> 1651 bytes .../png/padlock_opened.16.disabled.png | Bin 0 -> 541 bytes .../style/olive-dark/png/padlock_opened.16.png | Bin 0 -> 392 bytes .../png/padlock_opened.32.disabled.png | Bin 0 -> 631 bytes .../style/olive-dark/png/padlock_opened.32.png | Bin 0 -> 537 bytes .../png/padlock_opened.64.disabled.png | Bin 0 -> 839 bytes .../style/olive-dark/png/padlock_opened.64.png | Bin 0 -> 918 bytes app/ui/style/olive-light/olive-light.qrc | 16 ++++++++++++++++ .../olive-light/png/eye_closed.128.disabled.png | Bin 0 -> 1771 bytes app/ui/style/olive-light/png/eye_closed.128.png | Bin 0 -> 2491 bytes .../olive-light/png/eye_closed.16.disabled.png | Bin 0 -> 541 bytes app/ui/style/olive-light/png/eye_closed.16.png | Bin 0 -> 450 bytes .../olive-light/png/eye_closed.32.disabled.png | Bin 0 -> 698 bytes app/ui/style/olive-light/png/eye_closed.32.png | Bin 0 -> 751 bytes .../olive-light/png/eye_closed.64.disabled.png | Bin 0 -> 1027 bytes app/ui/style/olive-light/png/eye_closed.64.png | Bin 0 -> 1298 bytes .../olive-light/png/eye_opened.128.disabled.png | Bin 0 -> 2684 bytes app/ui/style/olive-light/png/eye_opened.128.png | Bin 0 -> 4071 bytes .../olive-light/png/eye_opened.16.disabled.png | Bin 0 -> 612 bytes app/ui/style/olive-light/png/eye_opened.16.png | Bin 0 -> 582 bytes .../olive-light/png/eye_opened.32.disabled.png | Bin 0 -> 871 bytes app/ui/style/olive-light/png/eye_opened.32.png | Bin 0 -> 1062 bytes .../olive-light/png/eye_opened.64.disabled.png | Bin 0 -> 1431 bytes app/ui/style/olive-light/png/eye_opened.64.png | Bin 0 -> 1995 bytes .../png/padlock_closed.128.disabled.png | Bin 0 -> 1524 bytes .../olive-light/png/padlock_closed.128.png | Bin 0 -> 1990 bytes .../png/padlock_closed.16.disabled.png | Bin 0 -> 552 bytes .../style/olive-light/png/padlock_closed.16.png | Bin 0 -> 429 bytes .../png/padlock_closed.32.disabled.png | Bin 0 -> 674 bytes .../style/olive-light/png/padlock_closed.32.png | Bin 0 -> 625 bytes .../png/padlock_closed.64.disabled.png | Bin 0 -> 924 bytes .../style/olive-light/png/padlock_closed.64.png | Bin 0 -> 1095 bytes .../png/padlock_opened.128.disabled.png | Bin 0 -> 1557 bytes .../olive-light/png/padlock_opened.128.png | Bin 0 -> 2026 bytes .../png/padlock_opened.16.disabled.png | Bin 0 -> 565 bytes .../style/olive-light/png/padlock_opened.16.png | Bin 0 -> 461 bytes .../png/padlock_opened.32.disabled.png | Bin 0 -> 669 bytes .../style/olive-light/png/padlock_opened.32.png | Bin 0 -> 619 bytes .../png/padlock_opened.64.disabled.png | Bin 0 -> 934 bytes .../style/olive-light/png/padlock_opened.64.png | Bin 0 -> 1117 bytes 66 files changed, 32 insertions(+) create mode 100644 app/ui/style/olive-dark/png/eye_closed.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/eye_closed.128.png create mode 100644 app/ui/style/olive-dark/png/eye_closed.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/eye_closed.16.png create mode 100644 app/ui/style/olive-dark/png/eye_closed.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/eye_closed.32.png create mode 100644 app/ui/style/olive-dark/png/eye_closed.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/eye_closed.64.png create mode 100644 app/ui/style/olive-dark/png/eye_opened.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/eye_opened.128.png create mode 100644 app/ui/style/olive-dark/png/eye_opened.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/eye_opened.16.png create mode 100644 app/ui/style/olive-dark/png/eye_opened.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/eye_opened.32.png create mode 100644 app/ui/style/olive-dark/png/eye_opened.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/eye_opened.64.png create mode 100644 app/ui/style/olive-dark/png/padlock_closed.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/padlock_closed.128.png create mode 100644 app/ui/style/olive-dark/png/padlock_closed.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/padlock_closed.16.png create mode 100644 app/ui/style/olive-dark/png/padlock_closed.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/padlock_closed.32.png create mode 100644 app/ui/style/olive-dark/png/padlock_closed.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/padlock_closed.64.png create mode 100644 app/ui/style/olive-dark/png/padlock_opened.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/padlock_opened.128.png create mode 100644 app/ui/style/olive-dark/png/padlock_opened.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/padlock_opened.16.png create mode 100644 app/ui/style/olive-dark/png/padlock_opened.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/padlock_opened.32.png create mode 100644 app/ui/style/olive-dark/png/padlock_opened.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/padlock_opened.64.png create mode 100644 app/ui/style/olive-light/png/eye_closed.128.disabled.png create mode 100644 app/ui/style/olive-light/png/eye_closed.128.png create mode 100644 app/ui/style/olive-light/png/eye_closed.16.disabled.png create mode 100644 app/ui/style/olive-light/png/eye_closed.16.png create mode 100644 app/ui/style/olive-light/png/eye_closed.32.disabled.png create mode 100644 app/ui/style/olive-light/png/eye_closed.32.png create mode 100644 app/ui/style/olive-light/png/eye_closed.64.disabled.png create mode 100644 app/ui/style/olive-light/png/eye_closed.64.png create mode 100644 app/ui/style/olive-light/png/eye_opened.128.disabled.png create mode 100644 app/ui/style/olive-light/png/eye_opened.128.png create mode 100644 app/ui/style/olive-light/png/eye_opened.16.disabled.png create mode 100644 app/ui/style/olive-light/png/eye_opened.16.png create mode 100644 app/ui/style/olive-light/png/eye_opened.32.disabled.png create mode 100644 app/ui/style/olive-light/png/eye_opened.32.png create mode 100644 app/ui/style/olive-light/png/eye_opened.64.disabled.png create mode 100644 app/ui/style/olive-light/png/eye_opened.64.png create mode 100644 app/ui/style/olive-light/png/padlock_closed.128.disabled.png create mode 100644 app/ui/style/olive-light/png/padlock_closed.128.png create mode 100644 app/ui/style/olive-light/png/padlock_closed.16.disabled.png create mode 100644 app/ui/style/olive-light/png/padlock_closed.16.png create mode 100644 app/ui/style/olive-light/png/padlock_closed.32.disabled.png create mode 100644 app/ui/style/olive-light/png/padlock_closed.32.png create mode 100644 app/ui/style/olive-light/png/padlock_closed.64.disabled.png create mode 100644 app/ui/style/olive-light/png/padlock_closed.64.png create mode 100644 app/ui/style/olive-light/png/padlock_opened.128.disabled.png create mode 100644 app/ui/style/olive-light/png/padlock_opened.128.png create mode 100644 app/ui/style/olive-light/png/padlock_opened.16.disabled.png create mode 100644 app/ui/style/olive-light/png/padlock_opened.16.png create mode 100644 app/ui/style/olive-light/png/padlock_opened.32.disabled.png create mode 100644 app/ui/style/olive-light/png/padlock_opened.32.png create mode 100644 app/ui/style/olive-light/png/padlock_opened.64.disabled.png create mode 100644 app/ui/style/olive-light/png/padlock_opened.64.png diff --git a/app/ui/style/olive-dark/olive-dark.qrc b/app/ui/style/olive-dark/olive-dark.qrc index b9938f5fa..8285e3277 100644 --- a/app/ui/style/olive-dark/olive-dark.qrc +++ b/app/ui/style/olive-dark/olive-dark.qrc @@ -82,6 +82,14 @@ png/export.32.png png/export.64.png png/export.128.png + png/eye_closed.16.png + png/eye_closed.32.png + png/eye_closed.64.png + png/eye_closed.128.png + png/eye_opened.16.png + png/eye_opened.32.png + png/eye_opened.64.png + png/eye_opened.128.png png/ff.16.png png/ff.32.png png/ff.64.png @@ -154,6 +162,14 @@ png/open.32.png png/open.64.png png/open.128.png + png/padlock_closed.16.png + png/padlock_closed.32.png + png/padlock_closed.64.png + png/padlock_closed.128.png + png/padlock_closed.16.png + png/padlock_closed.32.png + png/padlock_closed.64.png + png/padlock_closed.128.png png/paste.16.png png/paste.32.png png/paste.64.png diff --git a/app/ui/style/olive-dark/png/eye_closed.128.disabled.png b/app/ui/style/olive-dark/png/eye_closed.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..7fb3fcc856e9478cf9bd13836f43e6985cf5ab69 GIT binary patch literal 1575 zcma)6do&Yz9RD#ak0C8I^2j5~nB}$MUa!4q6!H$s#uhfsme#F|ibEHr2O@4r9_4+m z(CsV~i=uK_A+J~pB_;Cc&bfcxbI(2Jp7Z_wKIilOd_L#%-!JWeCjq8_PyhhHNJKYp z3Gz30i;U!D*j6}6KqktW>Jinh~8uXP8v&m=K%OFIq}~Cz(oP@J{$mS zE&v*F1uX|1B!cu24}u#2l^F(T36qZ_2F3%hGj(&NvZfYjk|UHuBIBUb5ET`(ZMR+> z`XVX3MsjoZJ@I<(dZ5oF9**}K`kZ+)y!M7P8U?57t^7zdf^V006;b%%S+SpvFQWQ8 zE(9IrIU6^NpN!fd){gEc<8VP9Y#I?0uC~9Q;5tE!fj-AqDvag6mylzHT2hI)#{5 z7N(-F-jl_Zp$&EGXPRR%x(|>9T&XM`Jg;YE56GBCH0Mlg~nJky#;#~&?i^#AX z{hjR}xi4GHOD6{4X^pprYj=e6;ip@FB(xlhPIv1J^0^{gC3Pnt|Ld}PQyH(7)P3`KcdHf;T9t~SgY>B)F8`@_!; zt_u!FXH<rL+NXOJIAVd0fLgVHv!piU*~al-kABE=XVg_S`qPqDtgS<2JC(z&~sg_>He z@a6rYmN0Rb!?wNIl+;?xOq%OZm4e8Ul)c{POV9C%*C<(2%hx}w`(9i05|b2+Ul7H2 z$qm|Nmgo{wyl$R`BeZk*hmh1>Gt(t`mD49f;$rPj=cg^p{9HGG@iv{UTF@g;MiA2- zL!`&lHHQCqRBBS&MnEg)3}BSHX&5TmP+0Bi523S#>tiqd->7 z)My=5TM-;D{X$PA={fMgpIFYh8>cW5TE?iU4n zmVCWez9C)THV{&{y=mo$PO%N59jIm%K9k27hol~|A@zOcw`49lo zfii6jUNgtoc9d2t`eFb-8a0lW4nhn+(v&UlPo6|K+SI8O4hdV`C;tTnJetk` literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/eye_closed.128.png b/app/ui/style/olive-dark/png/eye_closed.128.png new file mode 100644 index 0000000000000000000000000000000000000000..fc39ebd68a812812cd9766451dbc075592492654 GIT binary patch literal 1935 zcmb7FdpOe#8~)9h4I`&T4sV|he7!WRD1~?ta>yJSbJ)_B#SUhgQ<++cl0%8*n7l|) zzI|yWSrbxoN>1f43~$-@lgN|~FW2|?_s4f%*Yn)h^E~%;|MfiAlX2ANFj8fU3IG5| z4|f;rI&(Gx4qMNy4#d~%gkZP_#{qy*`bI#qXBJ88O?{Rtj^$4$v)Du?31G9?yD7Bj zxJV*{w42U6Sp**3vM$ou5IM!OqUcP(o5*BQXj`%IanbbCk6w#;>vPP1P2!o6Bp`~# zV%VY4k#s7RPK(>krbJVyq!Se4h8=pNLI)6OC+QKCNIEUN%q#~0V9g#bP5}wU{}~Og z2@EvsSX`L+cc3*u=S-9W9eVhiX zA;+MR2Y$%O5?#U#9@X66=MKP-=L%JY<4T?33RS!jN7Ae72SEp*5K)ZJk>MpN82nIJ zBGfZLfV3={YBw$Ibsft$jc+QPYESPC;zz#M{b&PlI)$rRAAowMoO+}x-vxYT#0cz^ zP9vztYAk`#AC{6QdAbTR1;f&u@Hd9)vf`YdPlhkc4;P|&R zuFbtWWI(XCj}UtN0?=|on#+7={rO6qeA_7_^C!^a>wY6B$>l34*zUPQSVza&ksGd% zqnJ}F=9c^j%x4co1HBA0o)@n?Y}=5B6rRaQ+&>g4pDC00)RB`t#O@xam<NPOY}Kybi|U?a%pUUN#9P52SixxBqNso08w_ys`3v)qDHl=7 zn>i?8qcvMuK$7Oa9Mgc6nl|IrKW(<`6F<9`U;e;A57XUUqen2a92%3q7EdfZUVA3& zm+o~Co_EdC*b$`I=Bk7S4wFk?gb?z0XRh&DA~LfaHHIztm$EskV%b843#ovcweyP8 zLSCXZRY-E}G5PA7vh1KFyBYi{gCaEcb2%Q=TE5e><^S1|6!haX2vwdG~njC}DSE zWPg|ig!Tc=KA$kqqj>dxx!_MO7~Y-q{5!C|?_mh~y+E~<7??4n)QWGRdwqyG<@I3) z*COmdz)`7+NbhyeW2Lvc!1@uLvkZxMZzj1$bJEia;%JmQv-)G8QZU%0 zau?jNG)n8>>@wv90ol;|ZSt$(rq3+PR6-%L2x8w6PG_LGux>k0KD}b2y04+u`u2d( zP%V>n_h_(YhG@WHr?EM0iJEv_q$=>2z`4r*S8r^sjp&G!DN&XjCWL*LvqhOFZTS&XiR#-@Oh z^|v{FLI}4&;1)Ld@Tt3=HGSBq{uZRSd(0OGZcV*-x8*BBFeV1H4%L@IuUgvil zQ%-e}mHqfzd_$AQKT9g`wXZGrAo%OeD5y1j2j84rZpcfv zm2qx*nc;AAnYU_4QXs&Z0b3De|1wZEbcbK+L)Nb(iEaloasKWFL+(Qk63q{v zuX;MonOoN7$lB(A|L2Fe+_5UL6tEK)JbI2V&F51ZNByE3Zo6M>-?*^z&60SP>gOkT zojUX9DP;tizT&-Db40uO-i)lK8`isa&kRYKJ9n#Ltf&7Xix>CQ)TWz!)^bR3bu(T5 z>#(%^uO9jLz0c*30bL+c;u=xnSXz>iU&P>>SX7dkrw~+HoSk2`{q&icKzUV=d`e>t*I;7bhncr0V4trO$q6BL!4s3{g~Cl$^?tQBqQ1rLUiy zpPQSXSFBf_nVp%Nnv$6aQmzl;>4zldrRT?ICggTe~DWM4fNW-e{ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/eye_closed.16.png b/app/ui/style/olive-dark/png/eye_closed.16.png new file mode 100644 index 0000000000000000000000000000000000000000..d62fd8819c68ca44600db2c11c9e149bd05f740b GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9G08$g&*{RsbBprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesC}NNi(`mI@7sPuKF2@-*YhtjOhoqSY6N7MOjD{edE;vGZE=v- z6c_EXhZ*<8Sr#f6PS$*O&(d7-$7}B;->&{*|8BZ9TxaI4;C6Wt9^uJTx%gkK_{b*X zpl&E`9RB^4kM8~k?N>H;``#VixGOaLl}ql*t0uaovo@`rB_4BU>Xt@M0|u`% wU0rhI#9~BE8}%-DToa6NKl1Qqwf!1n+nj2T<>xyEfi7k6boFyt=akR{0E1PASO5S3 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/eye_closed.32.disabled.png b/app/ui/style/olive-dark/png/eye_closed.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..bf93f5271fbe89b2c0cf3a6e73ce471face9dd44 GIT binary patch literal 646 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/eye_opened.128.disabled.png b/app/ui/style/olive-dark/png/eye_opened.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..ce2219ccd9dd8356562c10e316d941d80032a683 GIT binary patch literal 2220 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 R6kjN%0V{$nzTp@p{(m*Ge=h(4 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/eye_opened.16.disabled.png b/app/ui/style/olive-dark/png/eye_opened.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..58bea24c0d84764e28aa8f28322f4abc9cd9d02f GIT binary patch literal 560 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlG=I7TDvEF+i94Iv3)5S4FmIp(WQKx<)0TY<-|e}?6Iz1;B(yWl&IY-7>P!(^HY=&?dz-!gu4`gd-z{z}|CN2A zDsufSLyl_smj#krdUbvVtuZ_qXQKLc$Ku?c6IHhS(}*UFRT&(yM2@`>18 zrX6=Ty$A|DkWiGgUX58}<-Il;+xd#;XK6?GbDzzh&wciEpmyV{0^3*epP1LIG>tQ7 zWoQRFRiwlErERAdZMR9cjr%8*e~QedU8pPZkYo1a&#SDu-j pnVXuDnFvy@58~;EB<7{($7d$z=f%y}m;lty;OXk;vd$@?2>^kMxV8WQ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/eye_opened.16.png b/app/ui/style/olive-dark/png/eye_opened.16.png new file mode 100644 index 0000000000000000000000000000000000000000..b694ff6e8683d7dc23910f8246495529f730e048 GIT binary patch literal 441 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9G08$g&*{RsbBprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesQtO8i(`mI@6}1xUPlr{TKCU3b-D23jU(HdV~3osFWB0DEbdN| z=lh~7nahMkPB*Ts>Dm2Z^9kM-fg@#ncb?7pzwcaq;$y+&C02~f4wMDmKj7_B^Dok2 zE|d8I#t)1-K~^l^8qybZc3j`MF8ozc?8@?2)2gNgt}4y){+cwSX67TW+EY({HfXco zv2<7%W?9zGS};kud>;|Gn`j_|!dkens^>P)Vo z!NzlQ{f)i0N*Wjb=>2`bw18zzwe|T1t{KeV1wWcaEeOw;{%u0pq*r_|v)}w}dn`WV X&z48eZmPTkdYQq~)z4*}Q$iB}K7qJt literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/eye_opened.32.disabled.png b/app/ui/style/olive-dark/png/eye_opened.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..e18729159fa6a5b3449fb0060992ee45fef4f1e0 GIT binary patch literal 757 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-!Z&#xouv+Kh_1_s6yPZ!4!kK=Erc>5m;5NO@M z(B{aZg*ppV1(iCh|Nq}#klWNWQOs9E%SGVSjs-hkPMv;C_TigncV-sLr$0Ny>CSM| zElaSU>$yllLkny0vLm0qax;GA*l}ayUF(HC-#Id7@=Y~~Fi=Tjo3irKf(f65cYWF! z>QEb{CUalwUS=0BC+rPfM{&k*ojQ;@8putD2*o4+E5chBR<4?BO>NYB0-?wEuVORA$u7Y~xOE zrDJCrj92|w#%^D6!_a4?$JB<_CMH%!hS~-ORt5$ORX5#2(U6;;l9^VCTf>D4t~8(qNstY}`DrEP ziAAXl<>lpinR(g8$%zH2dih1^v)|cB0TmfT6qObwr!r)eloVL$>nG>u=H}-W>y>9_ qXXd7+WF~@?>w|duA&GhE`SF>_`FU~kH6{SHGkCiCxvXVJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^MzIY~r8R9J=Wmc45f zQ5400$11P}F*XVk2xz57P{CH$`0*DA5?M77#6ml(4T4CtvPwb<*=X#;`rK z8-Wdgfv>;{um~&wk0pKjF9K{=fwRCqU|mVQKY(XILsILX1lZmVOagmyp=DqmXaVoS zvmxLhPy;sQ_%DFEq&FqSgYBB_*S42(*Ocu_B(Gw7x*%`S_Q|3gM^fth(q#L%^15IF{ zfYXq4J-ulUmF*K9ngh&-<|C2j0OxI2C4B?#bl{BJKK`2k+gpKpq;NXPV-Ze@l+%oG zE{C4&FK`6tizIvq>&_Aa(z$pa;q(EAvjW_i+cnZ!fAbh;1v~^+BjmxbzA7OgPPqh`AzsR_(R3eQMt+3qKC#Uk94 zbg$hv8wn;-2Tm6xJ^(HRBdU^2`*4W81m;3>0n@IgzeE_pLt824kptn zuiy4e2P+;e%86}8+ekK}y}8f|iOIBpx8d0k$(+KmzcEKMy3I%hv9phaT1xKLPiC6vlywqPqY9002ov JPDHLkV1nx9L)HKQ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/eye_opened.64.disabled.png b/app/ui/style/olive-dark/png/eye_opened.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..4a9b22f4cee2ae9d9dc0cdecbc188a8fe9325ac9 GIT binary patch literal 1179 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 K&t;ucLK6T1St(}# literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/padlock_closed.128.png b/app/ui/style/olive-dark/png/padlock_closed.128.png new file mode 100644 index 0000000000000000000000000000000000000000..0f3259c7c929f789df1b3d85f05605c0379efd3c GIT binary patch literal 1611 zcmcgsX;jjA6#W4LE-9KzNtvmol_?e~M($CHxkpV|PMU$DC>}-sj^hGZspCmA%~CTu zlO-;dNSaIOf2KJl$0c*ijiM=AP|-3ew;Y`LI`ehjIq$vm?!D)p_vvQ)`+8`q6*bEL78b=2Z1X(j< zqT<6sW9ioHxbRZBBVH-eTNSw_a3a`oz$Y}0!;IM+m=GVuPJGbOS*+xV|Cl7ih0#F- zhZ9RC5W?8e(d?LbYls=ejHaJvhOXKXRxbiAG$x#Vk{QO1`H{cvA^_;0s1!F^(zPkc zLBZj}8=rofZmT|(z1Duam8inL7Mt%B6T03`wS#qo9?+v1+2eXMz$<{((@w=@t#N-` z=jNrSLdO+uqTq5a{i1Dk4&!7y8}J}KcJfKcuy!I%z9PZfIN*{tJX)F#G&b^^ z%9ddw9M7=7)^w$4?gSW1#n-AgIzR+77P@F|WHIAS9H~bgYQrRDyz_B}=V1)Q=eOh^ z`QojVZXXETy9Xk8>_R6EO4wpayHJ*Wh}-fCyR$>$k#nSYxUZ>n{lPas0H`hFWoZg` zT<%=hk}b4NM#p|F2l=kXwRyUDdsUa3HF*HiKjn<5Tb)BT=w#?zp`*gfiP{lJ>bw zCX*yfmxWrbEq>q~B8OL_zZ~qeN=h5$*!aM*3>)T-2GlS{xlEs+i?orjagF zhBZ4$qBc}i!yW20!a#>KkL6`{O)3&CjN#5!JJBfDL*U%K-{G7Liau+O-Yi?3b%M(n zia>v-PL^h^-Zv}3+eImQvAp41cR+MmJ7TPj=n*`dO~-H# zB1fpbXF;b|%CehuAnQQTm))6dRMv|ooeSj=?x5Qv*~r|Yd>TH zmfANBrpVL|9Dj|V?PQ<^=aMT#xW8`)=MDk&3ZQ4bl)D+?@1L7_ ztWR61X4h1(0*!se%dZ^wN>;5-rMJGe+eE;k1|Bq8|LL#?*7dpfS$B$; zF9vOi9BuprM^<&2-kNOy`xr$JnT+c* zE{Vr~FmFDawLW4qSLfzg;t~wqHqr-Gmh>F}I!L6%HKN3^v?L?Hh`~3ps3bE_A*i%C zJHKrE=`%Bd@~R;Dl*E!$tK_0oAjM#0U}U6gV61Cs8e(W_WnyAwWUOsqU}a!nwrlZc z6b-rgDVb@NxHY&xm-Yv0kObKfoS#-wo>-L1P+nfHmzkGcoSayYs+V7sKKq@G6i|^d zL{Vu`aw~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesC~Vsi(`mI@7)Q8T!$P4T<^PhU-sgA!058!wB-@w3dZw`=f)}R z*b364JhZ^V=MKgZtvY z#wE%dUiAJrc=OD)*k-lBH^FBW>JBOVnR&3d;oZaTLWjJD)I|qRisuWPC*}3^JO+gf NgQu&X%Q~loCICI}lzRXG literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/padlock_closed.32.disabled.png b/app/ui/style/olive-dark/png/padlock_closed.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..6d6a4ee8bb4f4e8fdd1709d479f55b5d6ece1022 GIT binary patch literal 639 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-!Z&#xn4#NAT^6nf|B;uzv_{OyE;Sxkl^uIGh$ zgS161x^l;QEam?HKfWa|O))AuR%BH|^33b4GYuv$NZxXKXQax`_fMawU3igp^5vv$ zJB~BhzftjLS@Ez_Pot*&?6N(qvHCe z#OAMi^`&AZ*jg21x6k^l$E9WSiN|5O;_F!~Ja_&mdIvHDMt+hEInPkVy5P~eJ2m0_ z8gg6L?>M?Hn7`nDNzZ%VwPEKOg`Rf)Iv^2T^u=X4(=?xbhggn3UXa(K^}DU`56k2! zcaAh@UuBRwV9%U$$x@nm6HANgZquFD<@*=daNU}x+Y9u$NQrAiiDPL=Mt%{4Z(>nN zW}ZS&X>oRb+4j?CW&-6^LGmeyC8<`)MX5lF!N|bKNY}tv*U&V?(A3Jr#LCD-+rYre zz~Hm&+*%Y3x%nxXX_dG&G&!gq1Zt23*$|wcR#Ki=l*&+EUaps!mtCBkSdglhUz9%k zosASwkugM3X;E@2LqmdKI;Vst0KK!}fB*mh literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/padlock_closed.32.png b/app/ui/style/olive-dark/png/padlock_closed.32.png new file mode 100644 index 0000000000000000000000000000000000000000..f7206c0da4469e331e4a7dd17136870e16cedc64 GIT binary patch literal 529 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?5GL=a}2dU(e+prB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq~K9)5S3)qV?_MyAZP<7x8VCqqESbd=OY#qZZR!0--&FgTe~ HDWM4f`N+?X literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/padlock_closed.64.disabled.png b/app/ui/style/olive-dark/png/padlock_closed.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..e0e1f2adca5999548beddd846b2a64f13333d395 GIT binary patch literal 834 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$g4`T2DujJSJh7#J8gdb&7z}t3dMZ+c?Z_>^{3N(CEP(0lyiWQ@C5UypS@Qdoq0DjZM~DJl)#ve>xJfgloyWDiQu| zZ?1VOu-fWc2tA(v)KMkrjK}A%Z$BTfV~>g|Uan*&>3SxFlXVLpyG3B%^)qEv>1%Y; zpECr6*B{H%SJC%6v8&=OgXz8_NVN7)~6?# zWn>R*2t75S!|bXo-)-ajdiAF!bw)%orkq%N+SX{g(7P+@s(*!CmQHPN@Zf#P@b=Ov z>CLYhLYKQ#E={%nrS*Y9?f`QI1OEd?n+A3u$AR6WIHhp?_LeWkkSCon!mN?apK97{_w@{1UJ6N^eR^Av(g zi?j2~wx2#T6DY3=l21u2NwrEYN(E93Mg~Skx(3F&hNdBgrdB2cptHiCL$wBoXP=h4MhT#0PlJdl&REF~Ma=pyF?Be9af>gcyqV(DCY@~pS zj3J6ji;`0rGD=Dctn~Gh^K*0a^NRJ#GqW>uQ&Tb%LCW<(JpGWwy!8C|%;fyMxcM3r QfZ7>6UHx3vIVCg!07|nw$p8QV literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/padlock_closed.64.png b/app/ui/style/olive-dark/png/padlock_closed.64.png new file mode 100644 index 0000000000000000000000000000000000000000..e02e5b771e5656dec5e860d976eb6188f5a8a3d1 GIT binary patch literal 896 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq`kAr;B4q#hkaZ?6XB2C63jv?^-ai!q?}DpW_960l}aj%QtXn zH1+moBx*)vJgj9nC?b`+MPQAOAWQRtu*@k9@(ybjaR@4#iTiE|_#E{{DgDgbGk5pR z{@yn`zViJYwvc-(c##eKKyH*ziDi{UV3mSZY+c@oV%*YSbTO?{b9-yB@> zwq$;__hMhLD!SqNfpbl1s}F<<&g{Hm!+U2*MVDDapx{s0*QK^P>loWLO@ z=A1tvX_>>^d(t*3uP47==w`^+Gxhr;w+q!i4B5|X^fxMBS@8Zn6WHJ-410JhCNq67 zd*I7;;C6#K0YPD5hm7uBvm?KoL>U`0o{^OJs8n)DB`Z5e{^rm77d$uQEq2^yx-H_0 x#t;4z<`TzG_N~#sU9oyf>H|r^W`C6j{EyZ&tqM|Lu>dA~22WQ%mvv4FO#r|#buIt^ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/padlock_opened.128.disabled.png b/app/ui/style/olive-dark/png/padlock_opened.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..9f78b430cf4e85272b01b83f3974ac15a43531ff GIT binary patch literal 1380 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 W&d-aRuQ36rox#)9&t;ucLK6UM-?P^M literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/padlock_opened.16.png b/app/ui/style/olive-dark/png/padlock_opened.16.png new file mode 100644 index 0000000000000000000000000000000000000000..fa41af876db201eac870cb481e45ffc84c5e0e3c GIT binary patch literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9G08$g&*{RsbBprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesC}EKi(`mI@7+n(T!#__TJ{Tm6)T(P@ImC|mXAD(UhLG_@M9A~K;x8h0)?OCsDw7W7|mkCy|e9~y|WiHeI)GjI|&fxi;XTp?QY!ch^E^LTQ zvetaG)ccL}DNC6j`>La3RM&PfE&VDrcd6!|2ORZk6TZ!;PIdjKzOJ#-z0o_YhT)G+ W)~^ZA4`={=z~JfX=d#Wzp$P!J8JI-? literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/padlock_opened.32.disabled.png b/app/ui/style/olive-dark/png/padlock_opened.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..3d5aed04ac524012ec2549de0297d9b3eee7d217 GIT binary patch literal 631 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-!Z&#xoBn(6K_pwKf<7sn8f<8LS1avw4fXqzA0 zx#I`pBlfz6=E?v6FSoE15iJe4uxo{2ueZjwmD?6JcW;j=n*M#~?iL5f$^M*+GcG$Y z&YIAi!QUX*_9c0zy0uwS5o3?R(y51RHx&pjozna`#Bz(o&VyaS``xbVnM$8?n9Io3 zFz@DRRc43deWl5Ii17;F)Nk0d_E!bJ z+wLN>1DEf3-w|Uuaf?5oqUApGqVp-UeC~w*OPJ;0carbZX-C6C_Y?a4bN~HS{l{4E zAhTd^$t_kEIS$`|EuT-s?KC&A=~n&K3iPo^iEBiOV`)i7ei4IjVo^zEooc5!lIL8@MUQTpt6Hc~)E#t=oN zMaiiQ86_nJR{HwM`MJ6IdBu9=nc11SsVSL>Am#cXo_~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq~K8)5S3)qV?_cg?>jI1lsn`7vkY(;1!Z%D&%N#F65G9aP=rq zIG5xnuc&Bq&{BlYam52g2LX?$MrDp8sRpwzWWT?qn|WDyZpu-ge{=tzewQ}O>GZ-? z(r0v7_!{IkygS7yz*s)%ksHGq9fora$qA`_Z`gORx=m8s%4qR9JK?-LzYT-Boq+c| zUVW_@kGDLxJ9J6dV6*Q7IgX&G5<8gY#qQ&s!<6V{%=k@puh`e`mW_*hep+9cZZhr5 zvuhGBnB_HN8DyrJerLRK@`%NFfS5oGdvii<+u3NS3Kbutp-vZ_r3}QkGnHTiG-?!jSxFF#2rb<8T4-+esL;ha5 S0ySWaFnGH9xvXNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$g4`T2FES2Nu`#=yY1&C|s(B;(%OnZEvq97J5t zJ7_ktDlj@*N3bT;c0tHaJNA$ugLrAuo1(?YW*a0Z|?$_txd-y|>;ov+Ner ze_NMrms6&SnQFBh=;D92r|W7QLrQ1zt}DFG`6@P?kqQkheCZ+P9@CDf+@6uQaH{IL zOluBxo+Ih+7&e`1-S}}?#q)Eeu2W=APv2Rh$6vZGWrA{p$d{Ft)7e*CobGqG^tD6( zwXmm*v%bWn@byk&T;5i4szp*;VTt4I2PI1JE?LFp8IyZ>_CK8%u}0J*_N&6X+;`VB zCp7g6?-a zS60^_z8mK;Z|anJ zH?7$4NkCwwrtE^qh|0yg`6hh76McujPPBr7{{f>-13TCVAZG#d8si;1+MlgsKEuU& z!S2f|2Ia2bT2qWdf`8Xo&NVvo?fbj?efrirV!E4>FWd%3sz`}zM2TZ*Nk)DVgKuI{ zNoJlxP-$^?e%bcZXJ!KBRYCG8i6yC4$wjF^iowXh$Vk_~Sl7@r#L(2r#Kg+TT-(6F z%D~{z*Y*b}8glbfGSez?YuLQPJ_e{k5@bVgep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f z>~}U&Kt;w7MWsc_sSFtQ44$rjF6*2UngByFM%@4a literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/padlock_opened.64.png b/app/ui/style/olive-dark/png/padlock_opened.64.png new file mode 100644 index 0000000000000000000000000000000000000000..5a339a6d05bb18c90845f651f179b123b50fa290 GIT binary patch literal 918 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fr06Wr;B4q#hkaZZL>ohMcU>scD&$mM@=njxk5&^pkUCCzz7zR zgU8&qY!K1eQc&NJz}0IO#Sykl;Gn{aP$|_1`~s^roQ`yyU8ffHqfqCaYuK50XVT7{ zy}9A@6zlZ+mCx_at$u&*jMK9H6Suzc2`y)8Z?rwYVGv_h%Vx*;`M{cvniy^Wsq70@ z&2BJ0pqWtr7o;{#a zaL415WPz*8KIxZ#kJ>a8&AZR~P11Wmqh3V3ybp80RmTU48?Fa!Z>@Z=rK4t}(47R; zC99+xr9;dsG~UStr^c(zU}c!Y-Y4;DYqE?*wrZLYYsgl%Gfd8cPkA3$8nEk3Ti?sn zuAw(;D@U(dL5Pdg-Q9o1S2MgiuroliKz@g+QvB@~JdEO+b`K|PuU0Br>%IE_M45(F zd<^Rwa%E4|F;90*Q49L4QZV;i@D|3N&J*h+)@vsg@>+O2KgjHJluypVMUHtpbE;{A zPS|EyF-95gE&CT&=)IU`ec<NM z7@2#S*`)GR*cFs~xs~I-{1rLDSRwsEjr~FHf!Sb1i>|SRma+#dkC-I4=1QQ|X%X#n zla)T1g~;$MkohD0Xxi%PPBjC;TVCBWnM$wSf3PrO#a=0`F3tp-yWP@`?+qEh{F?Lr z$h82+`}bLk81Av{If-UIAwji<3z2){(vBwoTziDYAU)wo_l3aQE7oqjD^lOWCENMl zR7xZ|xqEI`)BT2`=E9~&`>Vap?rEiRR(KtGU@ZBAxuc@-`PqlM;lS*`;OXk;vd$@? F2>`F{eRco< literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/olive-light.qrc b/app/ui/style/olive-light/olive-light.qrc index 73795aa99..a26c26b6f 100644 --- a/app/ui/style/olive-light/olive-light.qrc +++ b/app/ui/style/olive-light/olive-light.qrc @@ -82,6 +82,14 @@ png/export.32.png png/export.64.png png/export.128.png + png/eye_closed.16.png + png/eye_closed.32.png + png/eye_closed.64.png + png/eye_closed.128.png + png/eye_opened.16.png + png/eye_opened.32.png + png/eye_opened.64.png + png/eye_opened.128.png png/ff.16.png png/ff.32.png png/ff.64.png @@ -154,6 +162,14 @@ png/open.32.png png/open.64.png png/open.128.png + png/padlock_closed.16.png + png/padlock_closed.32.png + png/padlock_closed.64.png + png/padlock_closed.128.png + png/padlock_closed.16.png + png/padlock_closed.32.png + png/padlock_closed.64.png + png/padlock_closed.128.png png/paste.16.png png/paste.32.png png/paste.64.png diff --git a/app/ui/style/olive-light/png/eye_closed.128.disabled.png b/app/ui/style/olive-light/png/eye_closed.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..fd260cbf4f82b0e753249f9b7ac1f73ad765b882 GIT binary patch literal 1771 zcmZ`(don zHa#k=JUjz{Q~=J&!8dVyd7SJwLsXUdv|}r)Z#<*8>?kJ@TTcjXCqA;bOMYap*RXs) zzvenK_N0`z1}-i^uO6knI)@17M(j+w^JQOKFU*}eq@T6Vaj(I@x6gJ4BeE{57w-Kk zT8|%ZJ61{L51IsOJQT_v7`h*S#cB)zv{pA)%I^1+5~sZBBD;GK*Agf$uD?)9)E%QYoKd682osVNKigX{w}qWaiwL7k58 zA^)D(m*S#5qnFNP&qS_Ta=RYmGR zWDz3m9Ny;bYTaopMg)~_@E!}ht1f0{TAw| znnqzY$72E>>`1zNlvd_WZEN|z?{19?k}PHtwEohYC?aY#hfeZCf(#1x)_ocKHYW6b zr+fMOC!Hwfnq2(ccC2c91@z-9y~RPxK*!P2W54viQ=3Ss<$DERN0RcA6G0#^6HMTJ`Et-R$>zyENSBOyT9+0~nUcKvAe-9k zC=__9`>PsP&*jRb&-R{h70#5*Bkj{Xj@uMYT?%A%&~T<6#h`||IR!BvexqgcxA@bl zkib_Ka6)sdp80Gwp^!~0iIjbzvORsD{&MyJL{MT41a^zsb zmBuey^rdZ4h3%gLINZis?!35Z6Yr*9XxCV{X(>3Sr!N7#POlqTLHuFb(OS=y1%D%w z@-+?v{?tZR=f3x8XlPuhcHexGvbG0I8Ql#p@Vl-)PRL6C#j}i06Rmm{aTozF%)E0i z84qB|`e!f7rxh>R@w5BCGklv3HPxaHc}nq(nsAW9kvcbp(2U_5KLu1JyVa<*DSw?hLOfJ6ZW@aBZ`lMs345Riou$jLyV{>Ml=(}rbp1Ds3CO9uH1YVnfp?rX^dbx#E1^6HZFqg N0OyQ%y5o5E!rxoC5%T~5 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/eye_closed.128.png b/app/ui/style/olive-light/png/eye_closed.128.png new file mode 100644 index 0000000000000000000000000000000000000000..ce7ed0c90b44570049d09b515870fcf0a94bfeed GIT binary patch literal 2491 zcmbtW`8(A67k__bD~(X~l@XFq zAvhLWX(goZnbWcW_c_Ye5~@crSO^PF>D=RD7Op0lO==7<&Fb8rs;K-|^_U zN+>b^tMNfTXx}f8#T6=v5(*q}p;Z4MC8sN40hI8%UKWGzNB=j;l~7+iAW^Bor*w6F zDP%GwC`^auAK*{M`}yO3rPKYT={nmfv5ywT~z# zvclo^d#$H-PP~q{dKN|_(0bk;viNv6QBk$cFpZSTc0%1vy;f#OwzS^S%NxwQ5N}K7 zSq!>6ICzM=1larf_`g%n`weC3>rpxDO)q>gxgS~$zuu_L>i@aXxt!UXaEU;;_Flob z*zE0kWbw&KA|ZToy-?_eq@}3x|G|bt_Zc=D_FW)6&3597w??QHI?_jGns1mrC9gkY z{xmHe*?1nwO^3l?o-ip+Be>n|m&A?|flqX>IQ1jYkR*DiEu>&R?(l&(RayZm=qWL! zqiYn5v-jK-7MY11Uiju_#@o;Y<4RIIvvzfbabCowF9GSaSsMrrl68_qnyjyPM_*L;@8x(r|8gF(n21Iy&rH z^9_(80aw}T783WKiy1a_&H4E}5Ry$?T`lPbo+L6kS_Mm@^8CB3eRzVjnz+7%ESg}co$zRX2asl%rQ=NrDRr;xO4VDQqO=nG7c zoIEFD`-)|R#bO5pQ{XLW>FGtv_b9@!04&4S%uL$irDUe@&hg~=NbTA$<(`lpTBIQt z&5h5&AGsWCe@~#dS_<<7pw`H?-MqlcO zHM}R{#mobEl}fgDDU%XPpLw<$hWh$dS&W~SH*yfYc2m&z1RFu%VL!Y@?YemGG%|Ao zhNkS5K7-+x7YO;)ymf`PRO~Im)XmPB0IQBvIX+Sp9s~K`G8K|dtP(TV z$GlELO3QV$n{fOMkID*Z@FDV`F1YY3b}JSh~Ck>AYY+QIks9GAMKuVScJFdE&Hbjcmwe zR90H#cBZy}%*o8m9F!(sr$EDnMl|N&n>V#*16~N5*N(S%fJeBwao?&jj85(!Vi1Su za7!wsO&A#k%aS)NpB%Kn>|!nkArOd)%Q?0GpqjHw&*b*sJpGp$e$HJ7AbjUKwR<;b zws}8WA7NPyYm1{;0|u)C^KCyk&VIZYKSZK>Xdjzq-v_a0a_g|?cy(_Xr-AYAX$c%B zEbRcjQwD>~9KREZLeoa8Dadz3*^beGEBTMypltQt>TvKZpAj&zZVhxv6~zbzg%}~z zzfa1uY*e$#YuWjFky0a6`eC>}niFzp9$WUIqKX|a2p(%KULZ^+XcC@iD&Ny5#H28O z|7OhLsHmtUM188iT~t)GDBgO}0aGVA)WNu+(vl z(wHt5e*OMv@)-;ToakaD!CE82NTkosCQ_wN51BqyV-K?3g{G}o&jp~VLYT4xW*u+9 zXo;eF)d>LAfef3&p=Pm0Ul>GHWRE^qA7G&Z@42i*T!C=#?c~WdV@`onDqYd6NJNLX zxmzw#znI|xX?-`Qz~S1$j|H0zkPTH{#E68Z8M)CbO&$X%&r4$7cF4@JlI+c6XxcI4 zl*@DzPzXLWpAe`$(w^Eukvpue~zqJ%dLJJXm!C}-c*vm z%Ms`)#cva>HqUb5XU~9XfnU2^Fg51 zTEHHM3d5w;Cr)3wA3n%%Gbws&8oOXePb(IBEO+!GF3$zDRiWpXcB2}d7@O@{`K2aUR~M-`1) zVL0ud&bLb;-9?o;Sa4+C01Jaz2F)yDiVd0@iPRM6(&zevot97KWHtVo_t3a9!l?`v f``@p_Nb3%iPDNFJ?{nSF|CxZTwIhaU=^ghUp^%3D literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/eye_closed.16.disabled.png b/app/ui/style/olive-light/png/eye_closed.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..2e1f71ad57d5f714f3c43680103e566f5403ba22 GIT binary patch literal 541 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlG=I7TowV3L54k*;)>EaloasKWETkb;!5-s!1 zx3VZ^s5Xc6Mu=Se|G&8_L~wh+u8{1<3y!L8ZZ?q1`Q3+r?h+|+jVN&}Ey>6)V(?8Y zD#^@K2r4bk&M(`3`pitAyeddOC9x#cD!C{XNHG{07#Zmr80#9Eh8UV!nHXD{8fzOE zSQ!}HTfA{HiiX_$l+3hB+#1&Z-L1P+nfHmzkGcoSayYs+V7s zKKq@G6i|^dL{Vu`aw~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesQrVdi(`mI@7oFcz1j*y+U9>2o?Z~JM)9*c*P|F-UEZzV?>a_b zxOB(W<7lP+FKa$fK#b7Mb$R)Nk7$@`!8J(vIU+1q2%6NB@g*Y5nc zNW*Nijx~e9wOc0&=lo8T@Ox(VVpkrc&f2XLXPU5nW0*N{`pMM{ez&*1cNC~$NZ-b8qw6t1i~K#c}upTZBaNx>vjO!i9mxuJu9(UWMWY0d`6ceeUB@atXi%l z#B@D0^lt6i%}TzPV+D6I^o3qsbKNC{MXurYs#Wu@z5nSZbKH8}>vznzCx5y1{crMR g6Mf^lFV}ytEO2*atSD+^0{Wf7)78&qol`;+075>wD*ylh literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/eye_closed.32.disabled.png b/app/ui/style/olive-light/png/eye_closed.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..804bf35e0b19338c5349014f3ab33d67f1a96da6 GIT binary patch literal 698 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-!Z&#!H^aE^Eh0|TR`r;B5V$MLrlWBm^~2)Lfl z>yG%Dak{x_k?yw6|NsAMgeEhXP7KTJ2r8>-Xz22iuQ7aR^X`tdbuoL{n;Re1BN!4- zzpo6l(#+?+UH9PZWzCF^)h?F;9K)w?m5c~vf8_7HmLX<)@_isv;IdCI+!-LFsqCXlQzn#CN|I=>kYk5B04yu2jKNY=n zXKSde#f+V2J;VOw*q81&z?x8D%W}>6J5wfe!jpwYJLcrhT5NlH;^Cv;vZmb8`5wuA zuK&!o zc5!lIL8@MUQTpt6Hc~)E#t=oNMaiiQ86_nJR{HwM`MJ6IdBu9=nc11SsVSL>Am#cX fo_VJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^Mz9Z5t%R9J=Wluc{Y zP!xvWliV>PWpX2ol=*-#6J{e+#f6KCh@$lmxN;--2VDEHba0{mfQoeGj}Si=rJ##0 ziZbG2CdncU$Y4w=*p_5++}xBXV;yv)n>?$W_nw^hJs}BDQc_Y5t;cIRmh0He`phnYXB(n!?K)!XiQmH&b;r*Bcx)9N1hG|eXfuH_mL-FIF0-F^T7h@z-(n&tu#ol#OZNs{x`YIQS??Pmei{;|(UYa(b-EQB=vg{7jm!WQ+F!Kh0b!Pq`ga{^+$ul_eiTn{F$^g6t@XYhP^#gln8K{CRGV>)OS|Xy8%zPYxsg7eJ3Yodj%NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$g4`T4cYugz9}1k_aI>EalYaqsQ4+rf_vM2_vB z91_9BB`U(cBuwmB>9_y?gUgPwKYf(yE*aLv5w&1W?FT2XiQSi`-~AIeYqH7Dee=}P znKDeIdfgUZ1X5@J^ZCwR+Hz)+%Jyr$e(yANjovK2Tfrw;5Mwux9^{A}*n$*Oxu&i^Pl0(t&zjiwX*y4Tpuy8nxYFh00>)6INwN$KP0zmUwVV3n!p6BBPWz@j z*d$ct$egPh>=ZJ$H{bcT!KyXSw#gbi*!m(;(&xbv1#`{$(;u;GS1wIo|MgPU)R!O6 zDLK)sL2m`m zw*9^qCUo~@wA+E_(@re=9h*P%KvLhOPcE883_rFN8uzC0wFMuWCnbDA%5=T@eBp8y z(Lj!W?pfFMuT-S1-nnk7!v_I1SF^{v{j*n3p6o1o&F6V-fZY^EhLW7mjw`-<-chmI zA9m)5zu|@*9Ra2fZ>Oy|b!iXl9Og}yHb!pjZ{6|}7pkR8TfR{$>FB(;=Kk542KBP( z>`xzDtDJA}(C+(DWnM$I`|`|}5;&WaJqjmHve`eO`q83mvv=QfpFe5(vfjUEMVPYq zrOM@HGNMd2&Uq%J{?YW;qpXXn{nO5FzkDg}^W;bVHFx*KPns(_ZDDfvca6>G-Yd9G zk1{R)c{WLunW5pm;Wjm~+|QG4Gx_c~K6mZ!&!YLE+R_#0-6r|Y5OMF>?vTP@!*-d& z`J2H4$G!3wYrQ~8WLEvO{qx**KHNL;aTzc{ij=rUlsJ}_WaJky_$C&WWacRZl@@2` zmu)|NW+qTx6(paMSdwa$T$Bo=7>o>zjC2i*bq!5J3{9;}jIB&fwG9lc3=H-bx2#0b zkei>9nO2Eg!x=prQJ@A%kPX54X(i=}MX3zs<>h*rdD+Fui3O>8`9 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/eye_closed.64.png b/app/ui/style/olive-light/png/eye_closed.64.png new file mode 100644 index 0000000000000000000000000000000000000000..58a0c9d119d5482e7634af4e31c192963f8c5fa8 GIT binary patch literal 1298 zcmV+t1?~EYP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H102FjZ zSad;kbZBpK08L?XbZKrNQgw4{Z+5rK%$WcH05fz&Saefwb#h~60BCe{a5^t9V{dJ3 zZ*FrgcWG;BZDnL>VJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^M#KuJVFRCt{2m|bXF zWf;f*&-=Drb4HVr)$gD#aa!zcZ)>4|ZEG4$--;1u2q&ZpIq_yJvyF1UYTrRh?J?XZWXf*0{b#+|=u%|{fwY0SK_{_}AwRM52)H;sy z3^o=I0DH97z3oqRdvF}54;zaIfSBVrPge?5jlof$m{Zwo_Rn@Cw-cn(>1hBtA9YoY zwGBx4IK2g+++tokNg2RtA6-?AwGCMHaq9Mw?^={nx+%Mw>)-1ciO4JQczmGctagZ4 zES4hqrjI&Xc~RSdv3edP9i`NJ#+Y3{2;=d1xTB-vEJ?@5q^icM29!#rk441uaZCX? z7mY^!0{`noB9XmHsdFS#_4Fd*mP(~hDrHsQ$>QSTaxfU25RoSVbkvD)tJeBJBoete zH#hfJ`%-V6!NI|x*7^eg2YgIQBv0gWx#>#bhCxv%6lVMS`U)f;@(I*mE|(AY^z@7` zEG#Uxn0H&~@9)12zy$#N{cMy{uX>*MeXYFiq@16hzZ?#SdjQ2)Ylrzih{%}hx-SA?J$=KqGM~@?5DtfL2QcUtAHc9uYNWTfw~){0uln7njc8-c zQ2_4%co+>HqKJIuy6#E%?{6Bu0qdw_GC4}}L=(1YrPRBDK;YZS$;q}3$)Ta4u41wH zD9PuswjwozjK|~mYpq`*c~`5kHpx|zZ)daF zuhGKF)2>%oC6mb`B#(*6gN@eZR=7UkeiV^UGnvddZZP4SirIQv)ud9XTSz{#y1IHq zMDA^HDr<`CLv(`Vcb%P`7t`tVY`by=wxIzv=wvcEO!7_ucZf(ofPExy2GA)YK>#4R z0AN`}W&!*`atgq2B67ub-AVkn{zh3W7K_DVu~;k?i)GjIH~lDOmr2c*fB*mh07*qo IM6N<$g8lDaoB#j- literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/eye_opened.128.disabled.png b/app/ui/style/olive-light/png/eye_opened.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..83477eb707ea7ce2a2a78422b0a79a9e83ff968b GIT binary patch literal 2684 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/eye_opened.128.png b/app/ui/style/olive-light/png/eye_opened.128.png new file mode 100644 index 0000000000000000000000000000000000000000..ea511c3cdae6a45236381f0ce7daaac8d8b4578a GIT binary patch literal 4071 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 D605gZ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/eye_opened.16.disabled.png b/app/ui/style/olive-light/png/eye_opened.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..11c713cfcc8839ae91ea354b854eef6a6041f56b GIT binary patch literal 612 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlG=I7V8a8t1Y$}?Q{ba4#PIKQ{w(EqT3gv)*L z-QOH0Pgubtx+Neq>EZwXvpqx&I~ZM>UM*C+k;cHdD&pZXX}|LK56-LJFUwBuWULJR zttZ2(=N%a+^n|sjH+BB+X#NEZX5KfGDzC%_`7G<7wag;>(hJ9fX)~{LIF{#|>trNl z@4B&Q5*Mqe7?f0EdM6a?1_}a9BwYR z`zk9hc+S?7lkl})yHch5wr$PU*t1XPT>euTtfTzhy56KbF}+wvK&@W(yEr+qAXP8FD1G)j8!4b7V~C>CqU2PDjFOT9D}DXs{M_99ykfob r%~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq}8a)5S5wqW9`V!*1a~k=Fg6)1HO8&Goz9lH!rA$S8PLOzfN3 zqWuZmHwrm^6z`aQ=-jcS{|()1r*`*F-Ehz@rAI$4arMh-XP=ziJd;zi>BhU2a`Mk* z-|ZCF+q;GL+wZ@9-|HCeFia?sa=mym#c1Y#;{~_h@~P})ddK834+|}2wb*=Z-{*VF4=5*}nQY>FzI&0xdi4{Va`an1 zEIU_JC}SVJHf;VY1BUdqwYy^U`lZr(Dy`@G@h|pUzB#$)C&!Fk@5SH$4fX6dzZLuW z-v3D@jCa=EYz|xf^=8i9H6efbnGMeEWHrcg;7F7>{xSSO?vFZk&mtKoi98lLi|1m3 z4uK+%ftIS?WnUK_IyEXgzT$oHgBwxSTBkpm7Whw^UNYhN&xci=y;Xbf$$Fk|Y*%bK zdQ7r?QdvX(fp(ko_3PAcUR!-P@4nZh6oxx%E@nnfQ~&()&v~=|s@LNaG+LEcMiw0e PMjwNxtDnm{r-UW|j^F+9 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/eye_opened.32.disabled.png b/app/ui/style/olive-light/png/eye_opened.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..5900f0c7882dd66a8cfd1711c3a2e7071f34ca75 GIT binary patch literal 871 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-!Z&#!H1sLb`0fr0Uwr;B5V$MLtpvH7ABYqmPp1X+eVuIu-kdW#C$qyFJH+b%hKdGe@cOQ{GJbtN}gF|OJ6T#TFh<}cU!bO ze%`{0DYHXY3-4j^T2PyM<>XgJMxPR%%{wPDA8C%}caiTX;`>mrh?%M5{pDi}48NHj zdYig=A8a_E-S$c+Agzj#=Rq;2KEqkZIZIbr9oT)_sr%7c%p4ECGH5Sf$*?V- z^%1MWZp)K5Un>?K{Aw*_dfCA@elM%nf~hC#Hiw-znw7F_>kQo>X~y%xQhGw4*1cMH z*H>LYbd|v6Y3bLvGW;!Mb#HF2EZQYzSoQJpQl_=9FTbA|S~uu@!x7KapO!oFw#XzTq8;xOG`5Hix_+pi%K%{6oN{Nv-8WgpFT4a zD6a~VPf09EwMs5Z1yT$~21Z7@2FALErXhx=Rwl+)rsmoP237_JT5qN{plHa=PsvQH z#H}HEqb?|AN`h<%&QB{TPb^AhC@(M9%goCzPEIUH)ypqRpZ(583aH2!qNubeIh7%! zq@=(~Uq3lNH#a}8Sg$-YJ2N*mB{LDETpz^K4@t~R&yUYc&d-aRuQ36rox#)9&t;uc GLK6TW6;RIr literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/eye_opened.32.png b/app/ui/style/olive-light/png/eye_opened.32.png new file mode 100644 index 0000000000000000000000000000000000000000..78c2a7ffeec7587b3f54651f5dba968602b50fbe GIT binary patch literal 1062 zcmV+>1ljwEP)VJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^M!R7pfZR9J=Wmd|S( zWgNzz?>m$1y0w{1jYLW5?o6V4sMT66depW4xOf#rS|xh+APB(}@dwd*=|u!l;xCl^ z2@$jnloCOThqQapBs(*bKyzrB7_;ognfLLKNwu@HKPo~m`@kG#-sk&#KQFxRyf4sK zUwz$XNw3CYv3Rdx7!{Hakvt5*24DdofImd!I?1Y1YDsH-&iDPR{|i8|SgeT1Ya;R} zN!3%Rhz9Vp)_OJwf`$JC;JWU8Bxgt-ONCz(k+0)8UWnt^2LPp%V;IJh08Wv-E9L)1 zM5b%C+H%hTj^msnIR#)a6*gb5*QYi%Hny|sMn^~Y6$*uqNIsVuYKq8*p67kr4L}^n zIZg8A7Nf|#=XtLKpzFFPwAPa%as&WKE|HuKg5Z3T@o@$OMC2>a^JcKSZU6vAYUa}< zU&$!ER;c z0YCx3#Kgow0MqSK<2YUb0Il_8hvs{*lS$3_b{>*%Cp~uowARl6$hRwKG#bAHfQUTM z4FJFq0BAOwK?hGhilV3g4ZsfOTM|hEz{to*w|@+80GOuv1As<5XFi`ll!RaI1|TAr z0bpxu>re+UtgHceznxntRY?G5y8&pezW@NkFrMlF`EJtlpIs1!Vb!v% zJ4NK-jDq`fx!m0P`ucCSZ4UrA-X{B#APDBl$)##t=|HWO9gyiC={lu)#{&Fb>(t-|IW_N8IsSYhMG#L4{EjAcP&s^ zK>#p5K0cwfo+0^23gS9|Z{j#!h@!{?0Mj%b!!Rn?J&f#B)Fs0(POq-6u4MJ;dK{NZ zr6)w>RRE9O;&J>FfLYJ;E_C$v5}1J8L$V?w4~ocPk_WJRApwBRy$cD+C8g9k&+|5V g&F-tOzHY1j1{b_!XR1?QC;$Ke07*qoM6N<$g6@ReZ~y=R literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/eye_opened.64.disabled.png b/app/ui/style/olive-light/png/eye_opened.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..0914bb98aca1a0336357702f4487aa0a065d3fad GIT binary patch literal 1431 zcmZ`(dpHw%82&N$Lc~EWlRxpekJ-DMs>9Zr{fMpwzZs5*>^RqIfCGa>uyHeuOA1o1rUA zFNcT&W!#+|vE+%Bz)|Lh^M}q@NFZ?zzYUGoNe@qqlxC%1w`Di`zd$ORO8xSye`wi^ zr@>PV5E{|G^E{qQ*m>?Rm3Gea@|5oNg4JFx4#dEXuj`mB^^MaLyUv-Nz4Orgpk_{3 zvJ%eYc&4Qj*M4VU;*Z@Yaup<;&_#N1Q1f8pqsG}i)K08qMZ`4UWAxN{T#@!M4XSaC z`URora5qi3iIhnkjr<0Ys8@}A|3PZ?&YSTls0`4G&r_&91;0}4YQz2}Et%Alpbm92 z7PaMnjAH-Zy<}|SN!W|)NxVllEDkEQI%xorxN_Pj;#$?S1};l`DLo_d1`HMBrBRS| zkk#?&Ny<&04f3+c><+&KlKp(uNToQhtD_IcHvKdozMD11B>QS>0sU3sv&lV@<>p+1 zTIqMIg@4Y^f4I-(yla}Od)Ek>QAT=Bq+zpQnFjhz_=Gp*tcQ){yV%Dissfrs;THi* zZz1!g`B!YcZ|jmwS#9`Iuq@cET`xW6G5#v(#=NOC)|Br9d11YJed}bfUR5Yw~%jX);^l$C#?l#$|02Ej9;2X zC!M3N`~^gf+>E?7+n0D}ut{h$^)s6j%Ez`>N1Id6n&ONzYz6tRBMlsCjn>q8D(Z*w zpFSLxF^{B)LJmkcLMg@;Ns-t&K8`&zqwXv%3dJb+kBz=M(OSZS-U?EYXw`2go>r|i z{D`x_cb9~wwNHPx)SIH;R+jrIQCL`iGBkVb?cL{%V8gYg|B>w)-h#=qf%&}0E_A7l z?n#kbpaf-M&r-88n6maXe!Y=Dlo|*dPuh@8^z-7v(oiF&8T|N58s!`QhKmojKW`k* zQam#`!V^iBS1%^$gU{%4Be)GnjJT;r)Udud_;oBQSEpzIA_ym`Q$*Ov?Fan#u1RHj znh|W*tFc*wlTHDBypi_%hU* zcGbQ0avXH~#dP(F&aevY?5-@8r40MTwB~7FOz+WLs6(iAVamW(U)68|@|lT8GI?RH zFIy)@XGD5OsV+yId=1^Fz37tOIlCEFi)Q9w3QZJ7R*q(Cb$cXMksEfFnZ{5bSFWJ9 z4{PAr>$oYpTOXEMoXh(AEY*9yAg^7PNFNYbCB|1LOctLhnz3sOXqeVfTP`2HG}E-w={sEpXBZ{FS)^M?C85ziu_2~3iB03-s5v_M!{Sfa3&D73W| z8g>p R314gn?k?WWkDYMI{{T8jZU+DW literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/eye_opened.64.png b/app/ui/style/olive-light/png/eye_opened.64.png new file mode 100644 index 0000000000000000000000000000000000000000..bb285b7cfe8e7eeed8c1c27ccadbf0daedc8c799 GIT binary patch literal 1995 zcmV;+2Q>JJP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H102FjZ zSad;kbZBpK08L?XbZKrNQgw4{Z+5rK%$WcH05fz&Saefwb#h~60BCe{a5^t9V{dJ3 zZ*FrgcWG;BZDnL>VJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^M%`AI}URCt{2np6MrU3N3|@K%!uWJ`|gf zrmf@RKD3miH-c#?P5R(CmD-r*LW?bosU2e~X=YckCC4`VZH%MK?#}6hR?h5dSDG0~ zX`%Cb`)>bp=Il4~UCsgt2?+@a2?+@a2?+@a|9@~Z#Rmrmn_So31z;!19RRukY$w?% zB256=DqY_rSrm~g0A>M912_-hoNe1@jvqf>+AJS8JOGa4+zen?M21LaMC7CE(IYu0 zA}5tnVCnw+CAXk_4H%Ld>w!Is`S4iG1B5H$lt03u%$QvY&xUM?}z+boKddK(n z_I_R|^{9yKT(2_`nGlgf*=+V00EsISI{=R3+ymfo5xF&#AyP!-EXgquIpO>MW#9K_ zDs5ecVRVwb6Tpy&^oR9>PEAd{5$8D~2cW;d|EBBLukQo!Kqv#G0C>gs{e#(T z)(tbpvaCMCFdhSNuZV>8@egxzbNeq{x^z8c|0VyTbhd5#E|SlP$R|S%$&q~2b=}iZ z>;&u$0C)~dt4A2#0Wjiu-ao_IFd{g!hvZL0q&?)2lf`0jPcD}W^{dxIYdve4=1U}Z z0q6-aq>beLrfDu}t;fUI2r~l=$8q+G$U|WS0f6K`dV72K)UMx|Or|-X&+qnqe~4s1 zfbEs084)=vBBPz1oulL9SFc|EHGn%K`0#@3x=&+`m15NZ3=R%9WwY5sB64q7 z!vJys?)N-T2Pj09+T-SXBK)F$$)m{OT zd{#v6i(pVlKJ0m3HfY1P?I!^|1t84p(+=Q1(=@ket=~dri7ONe^X={Jr&OaBdt4#Yi55LT}9mg3CR+LJmgE4fz z(bw1a^?D5}0^m5#4iOoNYC%NK1lRdYCesYyiKsetboW)X007g|(~~6Mj;iDP{yxjH zR&3g;0?^gfwFSV>0JKImK=QA_az3Bm4Zw=3Q-|&=SFQ{ND@3H>JG}}YF%08S4|1Y6EbhQQy@N5vQf4rRuv@`wDzHj&Mc1>X=IM zwzyh#*i~ce(mJ%h6fD#RAoi3k7K^n`ZHuc_hff3xrBZ2j9a_D?LTvzIA1lk{@}}J` ziAdFME|p4c*nLB-P%f@eYin!mFTS2>S_R1}t!vk=t!H)xH)$&Z@N!&Lk~as-B623K zRvoIeYHdY<-0wQj$m0tM&szzqgJcdR#-^7^YimZf^}5^xOnm6 z`vATNU_OR^)l%g+&REF>zh@yi)4v7zS>& zEURz1P&o?!FosSQN~r_E<8e<Utu}*8P-!e_J6+kA6#{hoedESo^Seh-%$|$8q5bY}OkDlj!zft3=S7KW0 zzok;CPa*vAlK}2+YioPCP$(>aN2C(Wb6DEZnQLfdl~PZ-uKQaA9=^M~yTdSy=MnBs zVaXZtsONc4V3k{;weAE(Yke%0O5FtD(;@A)ksL^;(|?|snYm$DYdtkEFz{kNpFgjZ zDw1p_*-ElVGDq@t0Ecbc{=unJrzV1enM|g6VPWByh%g&P^X{@(JWH~kVZn<2Z0RY1=wkxH!k-UTC zaKv@~j8f`HA6jax7R$0eYZ%5z*c{;o@^2CO>3=ObT7z;NXGlaIBzey!rpLO7sqX*) literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/padlock_closed.128.disabled.png b/app/ui/style/olive-light/png/padlock_closed.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..7ee3d319b061a16d7ee9300831d8617c8bff5b11 GIT binary patch literal 1524 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 II;Vst0E+XYW&i*H literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/padlock_closed.32.disabled.png b/app/ui/style/olive-light/png/padlock_closed.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..9c9ec96d34f67fe18df78b25e28a9e6072372fb5 GIT binary patch literal 674 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-!Z&#%K6mY}kSfq_xb)5S5w`&&kNsY_0 zri*N6dzCv`DnS1A`tU+mhxmHgQ+88LkIrHJZa!a|`P{aOg9i-tp8ooF^!v7&mphcF zeckc7nk1632UaxI>^HTJR4Oecr|02Y`uHbs=?Y!d;nK>N%_zPGVa{718n5yz% z-Cdu>oHINwy3CuCXUH%&rE_^@;m-_4>7@)CoqO+nes$yD$tcYR`|C&UZ@T<9xut8W zkpH%&>~n)79;hg^C2lDYTJglf;dkZcRI9CD_6V+6&2s+E*7pk-O&b2QcC0MYDNfH< zjFDAjOT7CevzEDCGhF3McjRYac!`v_MwB>~mSp4?G597Hm1O2A1eF$N=a+3ieP$+5 zUKJ#tl30>zm0Xkxq!^40jEr;*jCBo7Lkvx=OiZi{473dlfTU~rK4BCMx%nxXX_dG& zm}s%B2WpT6*$|wcR#Ki=l*&+EUaps!mtCBkSdglhUz9%kosASwkugM3X;E@2LqmdKI;Vst E0PO4Xh5!Hn literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/padlock_closed.32.png b/app/ui/style/olive-light/png/padlock_closed.32.png new file mode 100644 index 0000000000000000000000000000000000000000..e4c244669209c04ecfaa54487ad75f7c892919cc GIT binary patch literal 625 zcmV-%0*?KOP)VJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^MypGibPR9J=Wl)Z1$ zP!z?_u`NW{sv>ARBxy2LSyFQa*dOhPhjwo-f-_b_uSv}V4zf~e=N>3)M~XJMN#xZ(iQ+Xj`O=xsdT#C z?(Iqen$703IF1iU?n-*{Ac%}4efK=?q}S_REghiIXuOnkDrs$EAbCylpx^KRS{gvL zT5Y+m`&Ck98b5#=l6yfAbZkb)X7GLAb6xj1zntVb$sg%C&y76>aOC^GXUn%527|#{ zN!z*hQ4j=Y0OGWE>-G9RfWv!(r0p;a-vIbFDc|}9B)!hHJ{w~`W|jj$Y>fFp@{475 zb^ri7*&<1jPveZE(dfaQq@8izsR2l?XX`Kw2jjfM;n3t}pDqj_$<4LmLSw;Q!R+h+ ztJWX?fm*HhisX9$&(l^OGO=V9`bl0&Y8zvIPBO!BoOhY!_W{{sQ=wndM*6Ucw2-th z#ge%sY10buw^ag^03|>P@c#jjyj;~Xk{4D0N$piYq|4jO&Rtk{_VJtIUE>lu00000 LNkvXXu0mjfb5j-N literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/padlock_closed.64.disabled.png b/app/ui/style/olive-light/png/padlock_closed.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..5c7512f0af91f7532a11472f2b9a52d56a6283e6 GIT binary patch literal 924 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$g4`T2Di!xB{X05x%Yx;Tbp+BRC>14B;^EcSn{%;VMUT4xArMs~J|kDq_8%bOKtZ2Hb@j&q)5+v(h-7=MqTP%0u{-fUTsq78g^jTmcOO-N?+bm{NefW z;OUu84?e#*|H5@^p`7|#Nzd*ndw#q+%W&vrSNz6;nkIzib&x@O{F#)KZ!PC{xWt~$( F699PuXsiGL literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/padlock_closed.64.png b/app/ui/style/olive-light/png/padlock_closed.64.png new file mode 100644 index 0000000000000000000000000000000000000000..3a6c19f593739ccdf6f0de30bc8e26ae6ed35b56 GIT binary patch literal 1095 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 abJii{ENu=GK}%J=Sm2Kd@NMxvbN+9AVz|Em literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/padlock_opened.16.disabled.png b/app/ui/style/olive-light/png/padlock_opened.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..0284d485d34132db95b44455442324b5c61b25d4 GIT binary patch literal 565 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlG=I7U8-jU}z0VuS@)5S4FLn2>uXp3)tFVlq z3y%J~v=mnTPME%OYR?bZx6F#+GE!%&OFT=hxmDyMUY`~GQ)VRA@4PCy(wR3(v7y*& z`Syl6s$6k@%67$zV>#-3Lbx{@HpkqxpC6(fdqUUnV^Y^e(io?PZ*I z$xd_Y-L1P+nfHmzkGcoSayYs+V7sKKq@G6i|^dL{Vu`aw|cr literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/padlock_opened.16.png b/app/ui/style/olive-light/png/padlock_opened.16.png new file mode 100644 index 0000000000000000000000000000000000000000..df820953628ae9f151cc60d8800844d1b62ead67 GIT binary patch literal 461 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9G08$g&*{RsbBprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesQtI6i(`mI@7+oJy^bUZ9I5{uD-hIb(=fqa>{`2+U3>4*#;sv; z;lD)8>{|BrUNdXgY*uK@Db$~EX>v-go=|b;oy6xMhu^$0IQ^Yd+2it;4eMTOHaxG4 z3=~jMiK#Pv8C;f_ZLSX8`?^}aR?%}(vGHzJsRx1;?0pTJ6*$5|L-&^c zT_=CRZ+HOWY=%-#J@t z&R>_Vy70ZacA?Jc(~V(^C9D$lYwVL{j`OFP-7S0{8meDsawA#t!4lPayNB~x*SN>t p{*mGNT{*V<#7n)~Y1?vsir3EZVp}d&eh(N744$rjF6*2UngD7;xH|v< literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/padlock_opened.32.disabled.png b/app/ui/style/olive-light/png/padlock_opened.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..db7edeb071921ec362946a52c055aaab57b08101 GIT binary patch literal 669 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-!Z&#%Lx#&yA%fq{|7)5S5w@5MX1 z$pv3IcC)XU*VA{S`ICvHXWPul3LmyHFS@b1SK(e+^xog9?-;8aSQlg_MX$b|ulUjZ zfMq>|29-#OYeb1-X-P(Y5rc1HQAuW=LQrXOc7ECR(`RM^?)FK#IZ0z{p6~z*yJNG{n%<%EZLVz(m`?z{(yEr+qAXP8FD1G)j8!4b7V~C>CqU2PDjFOT9 zD}DXs{M_99ykfob%~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq`+Rr;B4qMC;q>`@Ii4$Q-@zy+$N<*Ube5uHOII+O0ZfPgYn| z-!Pfu+@(OluEk0n|C^d8N3(Bi{_n(mNn7@oQ+t!gMw6P@t|j)uxlS@gw{7q3{eJT9 zL;;0I2k+|zctxswXL!Q6guO`EA<|`D*48Lx9fn}dQnybM2Of!>7jIx+`<0hL-Gjk+ z^2s}lH$J}9&s^*O$6-d@r71zrRle6wV?I!&H8tv0iB+op;^%xRn{VYzn>YgVz>K`x3cU0u*aI92(acAdobJmXTkiMCBU4e1T;OXk;vd$@?2>_FM B|G5AF literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/padlock_opened.64.disabled.png b/app/ui/style/olive-light/png/padlock_opened.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..517ca21d6a0e230de27b5adbbb7c16cf417d687d GIT binary patch literal 934 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$g4`T2EN19=}T1!@xYba4#Hxc7GES-;y3BCY4= z9`T#&IwwNp7L!p&j)2oEjob+*&p*=Ky*uWgXoIog?WNoA#3Y&?&NX;dxRk-& zy5vAF(?O=@7u%E?m>2Wp(Kvi<4$t8^VkIFPdCt zDp;}Cc%H=8CIh1-Y2xz=D;YjqS{M0UYU_cI)%Sic{>1P>?Zi7do_W6dma85w=JL{1 z`zhkhur5RK!LCU&9(hlBb?3Deqr-2Vsp=1I$=3X~J#*}C-M0R6o$C4nQ_scTW}UBL zS7{llmx1o3d+|G0RK#cm(&5E-$A*9^C|I(*s2^TB!dytU%d@0qw079Ehu9V`Th}MyVR8)G@3;;u`yI!1 zwD$Gp156PNAY&R>H!z5SIIImk|G!S*IU0L+n*ZuG{-@gGSQXwc-n8Cn%BQ6@zLpv) zEA7R2cSy_2N*?`VtM#?|`~AN7FKH8Zi_VNV3QRL1C9V-Aj-@3T`9%!AiA5!uc?vpLQ!5h_D+5z)0|P4q19AU} zTTnFQ=BH$)RpQo=CZx#$)F276Aviy+q&%@Gm7%=6TrV>(yEr+qAXP8FD1G)j8!4b7 zV~C>CqU2PDjFOT9D}DXs{M_99ykfob%anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq}W()5S5QV$R#yjv2w8GROAk`yATVwUOWCTJ8yLvBb9*o0T|3 zZ7U)I#8?Ey^p!d`JUD2(rku4p;_l>oEROt-99hcwl~|W52z^tDTJbj9JgmF@+1h1d zm(JX878HFo`}!Ww<*M(?&;0rMY_|T)nJGs69xrotOqwg&eKhxGPTBrzRn{k&8qS_w zwq40+^^~fc876XmzP@|oH2rh=6AB6p!dGAIoBYSsrR92N#d+`oFYRQdql>|OC6jV7Ozk(HPK ze}CG7O{y#jvE}98=V#o1z?ks+(W6JA46k!Iql90*e{Zj;wExzn?gdXO@9o~Xb7y^S zN90VVeed&`J_sCeOKwjQJzyX8I*=iMmVSPy*IU*C4;QneFN|0U6gZl)R?oAa?5V}T zpmM&$5Z;qVqVpaxc;xkEg?rihDf~Zi zVV`QF8H4rw2B(n6hYlTD9oG8%`E%{INo&_;)vFaUC|#1hYG-V0e1FxqH*a!uJ%I-Q z46X2;#P;A;L$;M&!;$^0Q-XHqNEEt0Vo+04bCPz8x%e?yf%m{x#_LNMcbGkxWx{Zs zEk^jY&xR1KuUbpbG2c*EdVTwirl3l;lF_QIa`S+|;M#1iSWh8XDr zU#W&{=5?OT1-S=IGa1(L?odN_3Pf=aT2{D`HP{MN^*PZcwFWo7d@ zWZU-m`)91t^ayi((zNp2k39|&ZN)!p{>=+oCGMc#Fo(A}_lfOEcBLXKjwbVGpQfC9 ard*=KlXxj6_zy5wGkCiCxvX Date: Tue, 15 Mar 2022 17:27:21 +0100 Subject: [PATCH 049/114] fix missing "padlock_opened" references --- app/ui/style/olive-dark/olive-dark.qrc | 8 ++++---- app/ui/style/olive-light/olive-light.qrc | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/ui/style/olive-dark/olive-dark.qrc b/app/ui/style/olive-dark/olive-dark.qrc index 8285e3277..4d3efbfcb 100644 --- a/app/ui/style/olive-dark/olive-dark.qrc +++ b/app/ui/style/olive-dark/olive-dark.qrc @@ -166,10 +166,10 @@ png/padlock_closed.32.png png/padlock_closed.64.png png/padlock_closed.128.png - png/padlock_closed.16.png - png/padlock_closed.32.png - png/padlock_closed.64.png - png/padlock_closed.128.png + png/padlock_opened.16.png + png/padlock_opened.32.png + png/padlock_opened.64.png + png/padlock_opened.128.png png/paste.16.png png/paste.32.png png/paste.64.png diff --git a/app/ui/style/olive-light/olive-light.qrc b/app/ui/style/olive-light/olive-light.qrc index a26c26b6f..16800275d 100644 --- a/app/ui/style/olive-light/olive-light.qrc +++ b/app/ui/style/olive-light/olive-light.qrc @@ -166,10 +166,10 @@ png/padlock_closed.32.png png/padlock_closed.64.png png/padlock_closed.128.png - png/padlock_closed.16.png - png/padlock_closed.32.png - png/padlock_closed.64.png - png/padlock_closed.128.png + png/padlock_opened.16.png + png/padlock_opened.32.png + png/padlock_opened.64.png + png/padlock_opened.128.png png/paste.16.png png/paste.32.png png/paste.64.png From 60aa03733c88ef5266b91a4bc532e91d91920577 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu, 17 Mar 2022 11:55:30 -0700 Subject: [PATCH 050/114] node: declare bezier as interpolated type --- app/node/value.h | 1 + 1 file changed, 1 insertion(+) diff --git a/app/node/value.h b/app/node/value.h index 5ef2ff54f..5e131b06e 100644 --- a/app/node/value.h +++ b/app/node/value.h @@ -285,6 +285,7 @@ public: || type == kVec2 || type == kVec3 || type == kVec4 + || type == kBezier || type == kColor || type == kRational; } From 53154df9b2fa34479ea0e13df5eaa66f42e5bca0 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Fri, 18 Mar 2022 14:18:28 -0700 Subject: [PATCH 051/114] menu: add extra actions when clips are selected --- app/widget/menu/menushared.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/widget/menu/menushared.cpp b/app/widget/menu/menushared.cpp index 1cabcf6de..7d6644e36 100644 --- a/app/widget/menu/menushared.cpp +++ b/app/widget/menu/menushared.cpp @@ -137,6 +137,13 @@ void MenuShared::AddItemsForEditMenu(Menu *m, bool for_clips) m->addAction(edit_ripple_delete_item_); m->addAction(edit_split_item_); m->addAction(edit_speedduration_item_); + + m->addSeparator(); + + m->addAction(clip_add_default_transition_item_); + m->addAction(clip_link_unlink_item_); + m->addAction(clip_enable_disable_item_); + m->addAction(clip_nest_item_); } } From 2dacce58af86e46d20bdf24458fe29bc7b8594bc Mon Sep 17 00:00:00 2001 From: Simran Spiller Date: Fri, 18 Mar 2022 09:56:10 +0100 Subject: [PATCH 052/114] Docker: Update OCIO to v2.1.1 (2.1.x is VFX reference platform 2022) --- docker/README.md | 6 +++--- docker/ci-ocio/Dockerfile | 4 ++-- docker/ci-olive/Dockerfile | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docker/README.md b/docker/README.md index d70565bf7..e9ff45563 100644 --- a/docker/README.md +++ b/docker/README.md @@ -26,7 +26,7 @@ docker pull olivevideoeditor/ci-common:2 docker pull olivevideoeditor/ci-package-otio docker pull olivevideoeditor/ci-package-crashpad docker pull olivevideoeditor/ci-package-ffmpeg:4.2.4 -docker pull olivevideoeditor/ci-package-ocio:2021-2.0.0 +docker pull olivevideoeditor/ci-package-ocio:2022-2.1.1 docker pull olivevideoeditor/ci-olive:2021.4 ``` @@ -49,7 +49,7 @@ docker build -t olivevideoeditor/ci-common:2 -f ci-common/Dockerfile . docker build -t olivevideoeditor/ci-package-otio -f ci-otio/Dockerfile . docker build -t olivevideoeditor/ci-package-crashpad -f ci-crashpad/Dockerfile . docker build -t olivevideoeditor/ci-package-ffmpeg:4.2.4 -f ci-ffmpeg/Dockerfile . -docker build -t olivevideoeditor/ci-package-ocio:2021-2.0.0 -f ci-ocio/Dockerfile . +docker build -t olivevideoeditor/ci-package-ocio:2022-2.1.1 -f ci-ocio/Dockerfile . docker build -t olivevideoeditor/ci-olive:2021.4 -f ci-olive/Dockerfile . ``` @@ -64,6 +64,6 @@ docker push olivevideoeditor/ci-common:2 docker push olivevideoeditor/ci-package-otio docker push olivevideoeditor/ci-package-crashpad docker push olivevideoeditor/ci-package-ffmpeg:4.2.4 -docker push olivevideoeditor/ci-package-ocio:2021-2.0.0 +docker push olivevideoeditor/ci-package-ocio:2022-2.1.1 docker push olivevideoeditor/ci-olive:2021.4 ``` diff --git a/docker/ci-ocio/Dockerfile b/docker/ci-ocio/Dockerfile index 9aa60d565..0727821bd 100644 --- a/docker/ci-ocio/Dockerfile +++ b/docker/ci-ocio/Dockerfile @@ -2,14 +2,14 @@ # SPDX-License-Identifier: GPL-3.0-or-later # Build image (default): -# docker build -t olivevideoeditor/ci-package-ocio:2021-2.0.0 -f ci-ocio/Dockerfile . +# docker build -t olivevideoeditor/ci-package-ocio:2022-2.1.1 -f ci-ocio/Dockerfile . ARG OLIVE_ORG=olivevideoeditor ARG ASWF_PKG_ORG=aswftesting ARG CI_COMMON_VERSION=2 ARG VFXPLATFORM_VERSION=2021 # OCIO repo branch or tag name -ARG OCIO_VERSION=v2.1.0 +ARG OCIO_VERSION=v2.1.1 # Latest configs ~3 GB because of ACES 1.0.x. # Upstream only copies nuke-default, therefore we also use the older configs. ARG OCIO_CONFIGS_VERSION=1.0_r2 diff --git a/docker/ci-olive/Dockerfile b/docker/ci-olive/Dockerfile index ffdfd6ebd..3b0ff3166 100644 --- a/docker/ci-olive/Dockerfile +++ b/docker/ci-olive/Dockerfile @@ -12,7 +12,7 @@ ARG OLIVE_ORG=olivevideoeditor ARG ASWF_PKG_ORG=aswftesting ARG CI_COMMON_VERSION=2 ARG VFXPLATFORM_VERSION=2021 -ARG OCIO_VERSION=2.1.0 +ARG OCIO_VERSION=2.1.1 ARG FFMPEG_VERSION=4.2.4 FROM ${ASWF_PKG_ORG}/ci-package-qt:${VFXPLATFORM_VERSION} as ci-package-qt From b55961d5bb39b4d14bf5a2d7889e45cd28cfa12d Mon Sep 17 00:00:00 2001 From: Simran Spiller Date: Fri, 18 Mar 2022 23:39:41 +0100 Subject: [PATCH 053/114] Docker: Update deps (FFmpeg 5.0, OTIO 0.14.1, OpenEXR/Imath 3.1.3, etc.), add WIP OIIO package --- docker/README.md | 24 +++---- docker/ci-common/Dockerfile | 4 +- docker/ci-crashpad/Dockerfile | 2 +- docker/ci-ffmpeg/Dockerfile | 24 +++---- docker/ci-ocio/Dockerfile | 4 +- docker/ci-oiio/Dockerfile | 67 ++++++++++++++++++++ docker/ci-olive/Dockerfile | 26 ++++++-- docker/ci-otio/Dockerfile | 19 +++--- docker/scripts/build_crashpad.sh | 2 +- docker/scripts/build_ffmpeg.sh | 4 +- docker/scripts/build_ocio.sh | 2 +- docker/scripts/build_oiio.sh | 43 +++++++++++++ docker/scripts/build_otio.sh | 8 +-- docker/scripts/common/install_yumpackages.sh | 2 +- 14 files changed, 174 insertions(+), 57 deletions(-) create mode 100644 docker/ci-oiio/Dockerfile create mode 100644 docker/scripts/build_oiio.sh diff --git a/docker/README.md b/docker/README.md index e9ff45563..c5a824194 100644 --- a/docker/README.md +++ b/docker/README.md @@ -23,18 +23,18 @@ Pull images from [Docker Hub](https://hub.docker.com/u/olivevideoeditor): ``` docker pull olivevideoeditor/ci-common:2 -docker pull olivevideoeditor/ci-package-otio +docker pull olivevideoeditor/ci-package-otio:0.14.1 docker pull olivevideoeditor/ci-package-crashpad -docker pull olivevideoeditor/ci-package-ffmpeg:4.2.4 +docker pull olivevideoeditor/ci-package-ffmpeg:5.0 docker pull olivevideoeditor/ci-package-ocio:2022-2.1.1 -docker pull olivevideoeditor/ci-olive:2021.4 +docker pull olivevideoeditor/ci-olive:2022.1 ``` Use `ci-olive` image as local build container, by mounting working copy at `~/olive` into guest system at `/opt/olive/olive`: ```bash -docker run --rm -it -v ~/olive:/opt/olive/olive olivevideoeditor/ci-olive:2021.4 +docker run --rm -it -v ~/olive:/opt/olive/olive olivevideoeditor/ci-olive:2022.1 mkdir build cd build cmake .. -G Ninja @@ -46,24 +46,24 @@ Rebuild all images locally: ``` cd docker docker build -t olivevideoeditor/ci-common:2 -f ci-common/Dockerfile . -docker build -t olivevideoeditor/ci-package-otio -f ci-otio/Dockerfile . +docker build -t olivevideoeditor/ci-package-otio:0.14.1 -f ci-otio/Dockerfile . docker build -t olivevideoeditor/ci-package-crashpad -f ci-crashpad/Dockerfile . -docker build -t olivevideoeditor/ci-package-ffmpeg:4.2.4 -f ci-ffmpeg/Dockerfile . +docker build -t olivevideoeditor/ci-package-ffmpeg:5.0 -f ci-ffmpeg/Dockerfile . docker build -t olivevideoeditor/ci-package-ocio:2022-2.1.1 -f ci-ocio/Dockerfile . -docker build -t olivevideoeditor/ci-olive:2021.4 -f ci-olive/Dockerfile . +docker build -t olivevideoeditor/ci-olive:2022.1 -f ci-olive/Dockerfile . ``` -Note that `2021` in `ci-olive:2021.4` stands for the -[VFX Reference Platform](http://vfxplatform.com/) calendar year and `4` for the +Note that `2022` in `ci-olive:2022.1` stands for the +[VFX Reference Platform](http://vfxplatform.com/) calendar year and `1` for the build image revision (should be incremented each time a new image is published). Publish images: ``` docker push olivevideoeditor/ci-common:2 -docker push olivevideoeditor/ci-package-otio +docker push olivevideoeditor/ci-package-otio:0.14.1 docker push olivevideoeditor/ci-package-crashpad -docker push olivevideoeditor/ci-package-ffmpeg:4.2.4 +docker push olivevideoeditor/ci-package-ffmpeg:5.0 docker push olivevideoeditor/ci-package-ocio:2022-2.1.1 -docker push olivevideoeditor/ci-olive:2021.4 +docker push olivevideoeditor/ci-olive:2022.1 ``` diff --git a/docker/ci-common/Dockerfile b/docker/ci-common/Dockerfile index f6ef89435..f7da97214 100644 --- a/docker/ci-common/Dockerfile +++ b/docker/ci-common/Dockerfile @@ -1,4 +1,4 @@ -# Copyright (C) 2021 Olive Team +# Copyright (C) 2022 Olive Team # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: Apache-2.0 OR GPL-3.0-or-later @@ -9,7 +9,7 @@ ARG OLIVE_ORG=olivevideoeditor ARG ASWF_PKG_ORG=aswftesting ARG CI_COMMON_VERSION=2 ARG DTS_VERSION=9 -ARG CMAKE_VERSION=3.19.3 +ARG CMAKE_VERSION=3.22.3 FROM ${ASWF_PKG_ORG}/ci-package-clang:${CI_COMMON_VERSION} as ci-package-clang FROM ${ASWF_PKG_ORG}/ci-package-ninja:${CI_COMMON_VERSION} as ci-package-ninja diff --git a/docker/ci-crashpad/Dockerfile b/docker/ci-crashpad/Dockerfile index 76079b21c..0d2572a86 100644 --- a/docker/ci-crashpad/Dockerfile +++ b/docker/ci-crashpad/Dockerfile @@ -1,4 +1,4 @@ -# Copyright (C) 2021 Olive Team +# Copyright (C) 2022 Olive Team # SPDX-License-Identifier: GPL-3.0-or-later # Build image (default): diff --git a/docker/ci-ffmpeg/Dockerfile b/docker/ci-ffmpeg/Dockerfile index 952be59b3..bbfc50c34 100644 --- a/docker/ci-ffmpeg/Dockerfile +++ b/docker/ci-ffmpeg/Dockerfile @@ -1,26 +1,26 @@ -# Copyright (C) 2021 Olive Team +# Copyright (C) 2022 Olive Team # SPDX-License-Identifier: GPL-3.0-or-later # Build image (default): -# docker build -t olivevideoeditor/ci-package-ffmpeg:4.2.4 -f ci-ffmpeg/Dockerfile . +# docker build -t olivevideoeditor/ci-package-ffmpeg:5.0 -f ci-ffmpeg/Dockerfile . ARG OLIVE_ORG=olivevideoeditor ARG CI_COMMON_VERSION=2 -ARG FFMPEG_VERSION=4.2.4 -ARG NASM_VERSION=2.15.03 +ARG FFMPEG_VERSION=5.0 +ARG NASM_VERSION=2.15.05 ARG YASM_VERSION=1.3.0 -ARG AOM_VERSION=v2.0.1 -ARG X265_VERSION=3.4 -ARG OGG_VERSION=1.3.4 +ARG AOM_VERSION=v3.3.0 +ARG X265_VERSION=3.5 +ARG OGG_VERSION=1.3.5 ARG OPUS_VERSION=1.3.1 ARG VORBIS_VERSION=1.3.7 ARG THEORA_VERSION=1.1.1 -ARG VPX_VERSION=1.9.0 -ARG WEBP_VERSION=1.1.0 +ARG VPX_VERSION=1.11.0 +ARG WEBP_VERSION=1.2.2 ARG LAME_VERSION=3.100 -ARG XVID_VERSION=1.3.5 -ARG OPENJPEG_VERSION=2.3.1 -ARG LIBPNG_VERSION=1.6.31 +ARG XVID_VERSION=1.3.7 +ARG OPENJPEG_VERSION=2.4.0 +ARG LIBPNG_VERSION=1.6.37 # TODO: Make version of x264 selectable? ARG NUM_JOBS=2 diff --git a/docker/ci-ocio/Dockerfile b/docker/ci-ocio/Dockerfile index 0727821bd..60e7fd83f 100644 --- a/docker/ci-ocio/Dockerfile +++ b/docker/ci-ocio/Dockerfile @@ -1,4 +1,4 @@ -# Copyright (C) 2021 Olive Team +# Copyright (C) 2022 Olive Team # SPDX-License-Identifier: GPL-3.0-or-later # Build image (default): @@ -7,7 +7,7 @@ ARG OLIVE_ORG=olivevideoeditor ARG ASWF_PKG_ORG=aswftesting ARG CI_COMMON_VERSION=2 -ARG VFXPLATFORM_VERSION=2021 +ARG VFXPLATFORM_VERSION=2022 # OCIO repo branch or tag name ARG OCIO_VERSION=v2.1.1 # Latest configs ~3 GB because of ACES 1.0.x. diff --git a/docker/ci-oiio/Dockerfile b/docker/ci-oiio/Dockerfile new file mode 100644 index 000000000..27421beeb --- /dev/null +++ b/docker/ci-oiio/Dockerfile @@ -0,0 +1,67 @@ +# Copyright (C) 2022 Olive Team +# SPDX-License-Identifier: GPL-3.0-or-later + +# Build image (default): +# docker build -t olivevideoeditor/ci-package-oiio:2.3.13.0 -f ci-oiio/Dockerfile . + +ARG ASWF_PKG_ORG=aswftesting +ARG OLIVE_ORG=olivevideoeditor +ARG CI_COMMON_VERSION=2 +ARG VFXPLATFORM_VERSION=2022 +ARG OIIO_VERSION=v2.3.13.0 +ARG YASM_VERSION=1.3.0 +ARG JPEG_TURBO_VERSION=2.1.3 + +FROM ${ASWF_PKG_ORG}/ci-package-boost:${VFXPLATFORM_VERSION} as ci-package-boost +FROM ${ASWF_PKG_ORG}/ci-package-openexr:${VFXPLATFORM_VERSION} as ci-package-openexr +FROM ${ASWF_PKG_ORG}/ci-package-imath:${VFXPLATFORM_VERSION} as ci-package-imath + +FROM ${OLIVE_ORG}/ci-common:${CI_COMMON_VERSION} as ci-oiio + +ARG OLIVE_ORG +ARG VFXPLATFORM_VERSION +ARG OIIO_VERSION +ARG YASM_VERSION +ARG JPEG_TURBO_VERSION + +LABEL maintainer="olivevideoeditor@gmail.com" +LABEL com.vfxplatform.version=$VFXPLATFORM_VERSION +LABEL org.opencontainers.image.name="$OLIVE_ORG/ci-oiio" +LABEL org.opencontainers.image.description="CentOS OpenImageIO Build Image" +LABEL org.opencontainers.image.url="http://olivevideoeditor.org" +LABEL org.opencontainers.image.source="https://github.com/olive-editor/olive" +LABEL org.opencontainers.image.vendor="Olive Team" +LABEL org.opencontainers.image.version="1.0" +LABEL org.opencontainers.image.licenses="GPL-3.0-or-later" + +ENV OLIVE_ORG=${OLIVE_ORG} \ + VFXPLATFORM_VERSION=${VFXPLATFORM_VERSION} \ + OIIO_VERSION=${OIIO_VERSION} \ + YASM_VERSION=${YASM_VERSION} \ + JPEG_TURBO_VERSION=${JPEG_TURBO_VERSION} \ + OLIVE_INSTALL_PREFIX=/usr/local + +COPY scripts/build_oiio.sh \ + /tmp/ + +COPY --from=ci-package-boost /. /usr/local/ +COPY --from=ci-package-openexr /. /usr/local/ +COPY --from=ci-package-imath /. /usr/local/ + +RUN curl -fLsS -o yasm.tar.gz "http://www.tortall.net/projects/yasm/releases/yasm-${YASM_VERSION}.tar.gz" && \ + tar xf yasm.tar.gz && \ + rm -f yasm.tar.gz && \ + cd yasm* && \ + ./configure --prefix="${OLIVE_INSTALL_PREFIX}" && \ + make -j$(nproc) && \ + make install && \ + cd .. && \ + rm -rf yasm* + +RUN /tmp/before_build.sh && \ + /tmp/build_oiio.sh && \ + /tmp/copy_new_files.sh + +FROM scratch as ci-package-oiio + +COPY --from=ci-oiio /package/. / diff --git a/docker/ci-olive/Dockerfile b/docker/ci-olive/Dockerfile index 3b0ff3166..b4fb4ac11 100644 --- a/docker/ci-olive/Dockerfile +++ b/docker/ci-olive/Dockerfile @@ -1,8 +1,8 @@ -# Copyright (C) 2021 Olive Team +# Copyright (C) 2022 Olive Team # SPDX-License-Identifier: GPL-3.0-or-later # Build image (default): -# docker build -t olivevideoeditor/ci-olive:2021.4 -f ci-olive/Dockerfile . +# docker build -t olivevideoeditor/ci-olive:2022.1 -f ci-olive/Dockerfile . # # .n is the build image revision number. It should be incremented each time a # new image is published (also update the GitHub Actions workflow!). @@ -11,27 +11,36 @@ ARG OLIVE_ORG=olivevideoeditor ARG ASWF_PKG_ORG=aswftesting ARG CI_COMMON_VERSION=2 -ARG VFXPLATFORM_VERSION=2021 +ARG VFXPLATFORM_VERSION=2022 ARG OCIO_VERSION=2.1.1 -ARG FFMPEG_VERSION=4.2.4 +ARG FFMPEG_VERSION=5.0 +ARG OTIO_VERSION=0.14.1 +ARG OIIO_VERSION=2.3.13.0 FROM ${ASWF_PKG_ORG}/ci-package-qt:${VFXPLATFORM_VERSION} as ci-package-qt FROM ${ASWF_PKG_ORG}/ci-package-python:${VFXPLATFORM_VERSION} as ci-package-python FROM ${ASWF_PKG_ORG}/ci-package-boost:${VFXPLATFORM_VERSION} as ci-package-boost +FROM ${ASWF_PKG_ORG}/ci-package-imath:${VFXPLATFORM_VERSION} as ci-package-imath FROM ${ASWF_PKG_ORG}/ci-package-openexr:${VFXPLATFORM_VERSION} as ci-package-openexr +# A custom OIIO package without OpenVDB/Blosc/TBB would be smaller, +# but it currently does not pick up libwebp for some reason. +#FROM ${OLIVE_ORG}/ci-package-oiio:${OIIO_VERSION} as ci-package-oiio FROM ${ASWF_PKG_ORG}/ci-package-oiio:${VFXPLATFORM_VERSION} as ci-package-oiio +FROM ${ASWF_PKG_ORG}/ci-package-openvdb:${VFXPLATFORM_VERSION} as ci-package-openvdb +FROM ${ASWF_PKG_ORG}/ci-package-blosc:${VFXPLATFORM_VERSION} as ci-package-blosc +FROM ${ASWF_PKG_ORG}/ci-package-tbb:${VFXPLATFORM_VERSION} as ci-package-tbb #FROM ${ASWF_PKG_ORG}/ci-package-ocio:${VFXPLATFORM_VERSION}-${OCIO_VERSION} as ci-package-ocio # Our package is compiled as RelWithDebInfo FROM ${OLIVE_ORG}/ci-package-ocio:${VFXPLATFORM_VERSION}-${OCIO_VERSION} as ci-package-ocio FROM ${OLIVE_ORG}/ci-package-ffmpeg:${FFMPEG_VERSION} as ci-package-ffmpeg FROM ${OLIVE_ORG}/ci-package-crashpad:latest as ci-package-crashpad -FROM ${OLIVE_ORG}/ci-package-otio:latest as ci-package-otio +FROM ${OLIVE_ORG}/ci-package-otio:${OTIO_VERSION} as ci-package-otio FROM ${OLIVE_ORG}/ci-common:${CI_COMMON_VERSION} as ci-olive ARG OLIVE_ORG ARG VFXPLATFORM_VERSION -ARG PYTHON_VERSION=3.7 +ARG PYTHON_VERSION=3.9 LABEL maintainer="olivevideoeditor@gmail.com" LABEL com.vfxplatform.version=$VFXPLATFORM_VERSION @@ -50,8 +59,13 @@ ENV PYTHONPATH=/usr/local/lib/python${PYTHON_VERSION}/site-packages:${PYTHONPATH COPY --from=ci-package-qt /. /usr/local/ COPY --from=ci-package-python /. /usr/local/ COPY --from=ci-package-boost /. /usr/local/ +COPY --from=ci-package-imath /. /usr/local/ COPY --from=ci-package-openexr /. /usr/local/ COPY --from=ci-package-oiio /. /usr/local/ +# The ASWF OIIO package requires OpenVDB, Blosc, and TBB +COPY --from=ci-package-openvdb /. /usr/local/ +COPY --from=ci-package-blosc /. /usr/local/ +COPY --from=ci-package-tbb /. /usr/local/ COPY --from=ci-package-ocio /. /usr/local/ COPY --from=ci-package-ffmpeg /. /usr/local/ COPY --from=ci-package-crashpad /. /usr/local/ diff --git a/docker/ci-otio/Dockerfile b/docker/ci-otio/Dockerfile index aeed69e94..1c2bdc94f 100644 --- a/docker/ci-otio/Dockerfile +++ b/docker/ci-otio/Dockerfile @@ -1,13 +1,14 @@ -# Copyright (C) 2021 Olive Team +# Copyright (C) 2022 Olive Team # SPDX-License-Identifier: GPL-3.0-or-later # Build image (default): -# docker build -t olivevideoeditor/ci-package-otio -f ci-otio/Dockerfile . +# docker build -t olivevideoeditor/ci-package-otio:0.14.1 -f ci-otio/Dockerfile . ARG OLIVE_ORG=olivevideoeditor ARG ASWF_PKG_ORG=aswftesting ARG CI_COMMON_VERSION=2 -ARG VFXPLATFORM_VERSION=2021 +ARG VFXPLATFORM_VERSION=2022 +ARG OTIO_VERSION=v0.14.1 # We are currently not interested in the Python implementation and bindings #FROM ${ASWF_PKG_ORG}/ci-package-python:${VFXPLATFORM_VERSION} as ci-package-python @@ -18,7 +19,8 @@ FROM ${OLIVE_ORG}/ci-common:${CI_COMMON_VERSION} as ci-otio ARG OLIVE_ORG ARG VFXPLATFORM_VERSION -ARG PYTHON_VERSION=3.7 +ARG OTIO_VERSION +ARG PYTHON_VERSION=3.9 LABEL maintainer="olivevideoeditor@gmail.com" LABEL com.vfxplatform.version=$VFXPLATFORM_VERSION @@ -33,22 +35,17 @@ LABEL org.opencontainers.image.licenses="GPL-3.0-or-later" ENV OLIVE_ORG=${OLIVE_ORG} \ CI_COMMON_VERSION=${CI_COMMON_VERSION} \ VFXPLATFORM_VERSION=${VFXPLATFORM_VERSION} \ + OTIO_VERSION=${OTIO_VERSION} \ OLIVE_INSTALL_PREFIX=/usr/local # PYTHONPATH=/usr/local/lib/python${PYTHON_VERSION}/site-packages:/usr/local/lib/python \ -COPY scripts/base/install_cmake.sh \ - scripts/build_otio.sh \ +COPY scripts/build_otio.sh \ /tmp/ #COPY --from=ci-package-python /. /usr/local/ #COPY --from=ci-package-qt /. /usr/local/ #COPY --from=ci-package-pyside /. /usr/local/ -RUN export DOWNLOADS_DIR=/tmp/downloads && \ - mkdir /tmp/downloads && \ - /tmp/install_cmake.sh && \ - rm -rf /tmp/downloads - RUN /tmp/before_build.sh && \ /tmp/build_otio.sh && \ /tmp/copy_new_files.sh diff --git a/docker/scripts/build_crashpad.sh b/docker/scripts/build_crashpad.sh index 056fa3419..f973b7152 100644 --- a/docker/scripts/build_crashpad.sh +++ b/docker/scripts/build_crashpad.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Copyright (C) 2021 Olive Team +# Copyright (C) 2022 Olive Team # SPDX-License-Identifier: GPL-3.0-or-later set -ex diff --git a/docker/scripts/build_ffmpeg.sh b/docker/scripts/build_ffmpeg.sh index 646129a6a..1d59504ad 100644 --- a/docker/scripts/build_ffmpeg.sh +++ b/docker/scripts/build_ffmpeg.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Copyright (C) 2021 Olive Team +# Copyright (C) 2022 Olive Team # SPDX-License-Identifier: GPL-3.0-or-later # Largely based on https://trac.ffmpeg.org/wiki/CompilationGuide/Centos @@ -213,7 +213,7 @@ wait ### Set up xvid { - curl -fLsS -o xvidcore.tar.gz "http://downloads.xvid.org/downloads/xvidcore-${XVID_VERSION}.tar.gz" + curl -fLsS -o xvidcore.tar.gz "https://downloads.xvid.com/downloads/xvidcore-${XVID_VERSION}.tar.gz" tar xf xvidcore.tar.gz rm -f xvidcore.tar.gz cd xvidcore/build/generic diff --git a/docker/scripts/build_ocio.sh b/docker/scripts/build_ocio.sh index bff05dadb..9cc157dfe 100644 --- a/docker/scripts/build_ocio.sh +++ b/docker/scripts/build_ocio.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Copyright (C) 2021 Olive Team +# Copyright (C) 2022 Olive Team # SPDX-License-Identifier: GPL-3.0-or-later set -ex diff --git a/docker/scripts/build_oiio.sh b/docker/scripts/build_oiio.sh new file mode 100644 index 000000000..97d8c8b51 --- /dev/null +++ b/docker/scripts/build_oiio.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash +# Copyright (C) 2022 Olive Team +# SPDX-License-Identifier: GPL-3.0-or-later + +set -ex + +# TODO: Move to install_yumpackages.sh +yum install -y \ + libtiff \ + libtiff-devel \ + libpng \ + libpng-devel + +git clone --depth 1 --branch "$JPEG_TURBO_VERSION" https://github.com/libjpeg-turbo/libjpeg-turbo +cd libjpeg-turbo +mkdir build +cd build +cmake -DCMAKE_INSTALL_PREFIX="${OLIVE_INSTALL_PREFIX}" \ + .. +make -j$(nproc) +make install +cd ../.. +rm -rf libjpeg-turbo + + +# TODO: Make OIIO pick up WebP (missing: WEBPDEMUX_LIBRARY) +git clone --depth 1 --branch "$OIIO_VERSION" https://github.com/OpenImageIO/oiio.git +cd oiio + +mkdir build +cd build +cmake -DCMAKE_INSTALL_PREFIX="${OLIVE_INSTALL_PREFIX}" \ + -DOIIO_BUILD_TOOLS=OFF \ + -DOIIO_BUILD_TESTS=OFF \ + -DVERBOSE=ON \ + -DUSE_PYTHON=0 \ + -DBoost_NO_BOOST_CMAKE=ON \ + .. +make -j$(nproc) +make install + +cd ../.. +rm -rf oiio diff --git a/docker/scripts/build_otio.sh b/docker/scripts/build_otio.sh index 305af1ff9..b232e35ab 100644 --- a/docker/scripts/build_otio.sh +++ b/docker/scripts/build_otio.sh @@ -1,16 +1,12 @@ #!/usr/bin/env bash -# Copyright (C) 2021 Olive Team +# Copyright (C) 2022 Olive Team # SPDX-License-Identifier: GPL-3.0-or-later set -ex -git clone --depth 1 https://github.com/PixarAnimationStudios/OpenTimelineIO.git +git clone --depth 1 --branch "$OTIO_VERSION" https://github.com/PixarAnimationStudios/OpenTimelineIO.git cd OpenTimelineIO -#if [ "$OTIO_VERSION" != "latest" ]; then -# git checkout "tags/v${OTIO_VERSION}" -b "v${OTIO_VERSION}" -#fi - #pip install --prefix="${OLIVE_INSTALL_PREFIX}" . mkdir build diff --git a/docker/scripts/common/install_yumpackages.sh b/docker/scripts/common/install_yumpackages.sh index f32fa0d3c..f32c55b22 100644 --- a/docker/scripts/common/install_yumpackages.sh +++ b/docker/scripts/common/install_yumpackages.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Copyright (C) 2021 Olive Team +# Copyright (C) 2022 Olive Team # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: Apache-2.0 OR GPL-3.0-or-later From cdf9efa7f602a83c3f2cd4fd3cf79aa998ea6287 Mon Sep 17 00:00:00 2001 From: Simran Spiller Date: Fri, 18 Mar 2022 23:47:21 +0100 Subject: [PATCH 054/114] CI: Use new 2022.1 image --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 40381ae35..fee6e4f34 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,7 +50,7 @@ jobs: ${{ matrix.cmake-gen }}> runs-on: ubuntu-latest container: - image: olivevideoeditor/ci-olive:2021.4 + image: olivevideoeditor/ci-olive:2022.1 steps: - name: Checkout Source Code From a4056d84545a6a4a87c4764bd8ab12d38288e326 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun, 20 Mar 2022 11:17:18 -0700 Subject: [PATCH 055/114] Upgrade to OpenGL ES 3.2 (#1879) * upgrade to opengl 3.2 * cornerpin: no need for hack * renderer: Update OCIO shader language to ES 3.0 Co-authored-by: Thomas Wilshaw --- app/main.cpp | 3 +- .../cornerpin/cornerpindistortnode.cpp | 13 +---- app/node/math/math/mathbase.cpp | 11 ++-- app/render/opengl/openglrenderer.cpp | 9 +-- app/render/renderer.cpp | 2 +- app/shaders/alphaover.frag | 15 ++--- app/shaders/blur.frag | 7 ++- app/shaders/colormanage.frag | 7 ++- app/shaders/cornerpin.frag | 57 ++++++++++--------- app/shaders/cornerpin.vert | 20 +++---- app/shaders/crop.frag | 7 ++- app/shaders/crossdissolve.frag | 5 +- app/shaders/default.frag | 5 +- app/shaders/default.vert | 6 +- app/shaders/deinterlace.frag | 5 +- app/shaders/diptoblack.frag | 11 ++-- app/shaders/flip.frag | 7 ++- app/shaders/interlace.frag | 7 ++- app/shaders/mosaic.frag | 5 +- app/shaders/noise.frag | 22 +++---- app/shaders/rgbhistogram.frag | 5 +- app/shaders/rgbhistogram.vert | 6 +- app/shaders/rgbhistogram_secondary.frag | 5 +- app/shaders/rgbwaveform.frag | 5 +- app/shaders/rgbwaveform.vert | 6 +- app/shaders/shape.frag | 5 +- app/shaders/solid.frag | 4 +- app/shaders/stroke.frag | 7 ++- 28 files changed, 136 insertions(+), 131 deletions(-) diff --git a/app/main.cpp b/app/main.cpp index 7e729216f..34ce118e4 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -190,9 +190,8 @@ int main(int argc, char *argv[]) // // https://bugreports.qt.io/browse/QTBUG-46140 QCoreApplication::setAttribute(Qt::AA_UseDesktopOpenGL); - format.setVersion(2, 0); + format.setVersion(3, 2); format.setProfile(QSurfaceFormat::CoreProfile); - format.setOption(QSurfaceFormat::DeprecatedFunctions); format.setDepthBufferSize(24); QSurfaceFormat::setDefaultFormat(format); diff --git a/app/node/distort/cornerpin/cornerpindistortnode.cpp b/app/node/distort/cornerpin/cornerpindistortnode.cpp index b14909fe7..4197f9649 100644 --- a/app/node/distort/cornerpin/cornerpindistortnode.cpp +++ b/app/node/distort/cornerpin/cornerpindistortnode.cpp @@ -97,18 +97,9 @@ void CornerPinDistortNode::Value(const NodeValueRow &value, const NodeGlobals &g ShaderCode CornerPinDistortNode::GetShaderCode(const QString &shader_id) const { Q_UNUSED(shader_id) - QString frag = FileFunctions::ReadFileAsString(QStringLiteral(":/shaders/cornerpin.frag")); - QString vert = FileFunctions::ReadFileAsString(QStringLiteral(":/shaders/cornerpin.vert")); - // HACK: No good, very bad hack -#ifndef Q_OS_MAC - frag.prepend(QStringLiteral("#version 130\n\n")); - vert.prepend(QStringLiteral("#version 130\n\n")); -#else - vert.prepend(QStringLiteral("#extension GL_EXT_gpu_shader4 : require\n\n")); -#endif - - return ShaderCode(frag, vert); + return ShaderCode(FileFunctions::ReadFileAsString(QStringLiteral(":/shaders/cornerpin.frag")), + FileFunctions::ReadFileAsString(QStringLiteral(":/shaders/cornerpin.vert"))); } QPointF CornerPinDistortNode::ValueToPixel(int value, const NodeValueRow& row, const QVector2D &resolution) const diff --git a/app/node/math/math/mathbase.cpp b/app/node/math/math/mathbase.cpp index 7043b2f2f..3cdbdff4b 100644 --- a/app/node/math/math/mathbase.cpp +++ b/app/node/math/math/mathbase.cpp @@ -52,10 +52,10 @@ ShaderCode MathNodeBase::GetShaderCodeInternal(const QString &shader_id, const Q vert = QStringLiteral("uniform mat4 %1;\n" "\n" - "attribute vec4 a_position;\n" - "attribute vec2 a_texcoord;\n" + "in vec4 a_position;\n" + "in vec2 a_texcoord;\n" "\n" - "varying vec2 ove_texcoord;\n" + "out vec2 ove_texcoord;\n" "\n" "void main() {\n" " gl_Position = %1 * a_position;\n" @@ -97,12 +97,13 @@ ShaderCode MathNodeBase::GetShaderCodeInternal(const QString &shader_id, const Q frag = QStringLiteral("uniform %1 %3;\n" "uniform %2 %4;\n" "\n" - "varying vec2 ove_texcoord;\n" + "in vec2 ove_texcoord;\n" + "out vec4 frag_color;\n" "\n" "void main(void) {\n" " vec4 c = %5;\n" " c.a = clamp(c.a, 0.0, 1.0);\n" // Ensure alpha is between 0.0 and 1.0 - " gl_FragColor = c;\n" + " frag_color = c;\n" "}\n").arg(GetShaderUniformType(type_a), GetShaderUniformType(type_b), param_a_in, diff --git a/app/render/opengl/openglrenderer.cpp b/app/render/opengl/openglrenderer.cpp index 49f8d3c89..6464580cf 100644 --- a/app/render/opengl/openglrenderer.cpp +++ b/app/render/opengl/openglrenderer.cpp @@ -887,14 +887,9 @@ GLuint OpenGLRenderer::GetCachedTexture(int width, int height, int depth, VideoP GLuint OpenGLRenderer::CompileShader(GLenum type, const QString &code) { static const QString shader_preamble = -#ifndef Q_OS_MAC - // Use appropriate GL ES 2.0 shader header - QStringLiteral("#version 100\n\n" + // Use appropriate GL 3.2 shader header + QStringLiteral("#version 150\n\n" "precision highp float;\n\n"); -#else - // Use desktop GL equivalent header because apparently macOS doesn't support the ES header - QStringLiteral("#version 120\n\n"); -#endif QString complete_code; diff --git a/app/render/renderer.cpp b/app/render/renderer.cpp index a3701c2ff..b78df3df4 100644 --- a/app/render/renderer.cpp +++ b/app/render/renderer.cpp @@ -116,7 +116,7 @@ bool Renderer::GetColorContext(ColorProcessorPtr color_processor, Renderer::Colo // Create shader description const char* ocio_func_name = "OCIODisplay"; auto shader_desc = OCIO::GpuShaderDesc::CreateShaderDesc(); - shader_desc->setLanguage(OCIO::GPU_LANGUAGE_GLSL_1_3); + shader_desc->setLanguage(OCIO::GPU_LANGUAGE_GLSL_ES_3_0); shader_desc->setFunctionName(ocio_func_name); shader_desc->setResourcePrefix("ocio_"); diff --git a/app/shaders/alphaover.frag b/app/shaders/alphaover.frag index 58c4be721..45acd2cfa 100644 --- a/app/shaders/alphaover.frag +++ b/app/shaders/alphaover.frag @@ -3,29 +3,30 @@ uniform sampler2D blend_in; uniform bool base_in_enabled; uniform bool blend_in_enabled; -varying vec2 ove_texcoord; +in vec2 ove_texcoord; +out vec4 frag_color; void main(void) { - vec4 base_col = texture2D(base_in, ove_texcoord); - vec4 blend_col = texture2D(blend_in, ove_texcoord); + vec4 base_col = texture(base_in, ove_texcoord); + vec4 blend_col = texture(blend_in, ove_texcoord); if (!base_in_enabled && !blend_in_enabled) { - gl_FragColor = vec4(0.0); + frag_color = vec4(0.0); return; } if (!base_in_enabled) { - gl_FragColor = blend_col; + frag_color = blend_col; return; } if (!blend_in_enabled) { - gl_FragColor = base_col; + frag_color = base_col; return; } base_col *= 1.0 - blend_col.a; base_col += blend_col; - gl_FragColor = base_col; + frag_color = base_col; } diff --git a/app/shaders/blur.frag b/app/shaders/blur.frag index fb60660f0..319ed8ea0 100644 --- a/app/shaders/blur.frag +++ b/app/shaders/blur.frag @@ -8,7 +8,8 @@ uniform vec2 resolution_in; uniform int ove_iteration; -varying vec2 ove_texcoord; +in vec2 ove_texcoord; +out vec4 frag_color; // Gaussian function uses PI #define M_PI 3.1415926535897932384626433832795 @@ -63,7 +64,7 @@ void main(void) { int mode = determine_mode(); if (mode == MODE_NONE) { - gl_FragColor = texture2D(tex_in, ove_texcoord); + frag_color = texture2D(tex_in, ove_texcoord); return; } @@ -119,5 +120,5 @@ void main(void) { } } - gl_FragColor = composite; + frag_color = composite; } diff --git a/app/shaders/colormanage.frag b/app/shaders/colormanage.frag index 55b394eed..dc0be4a45 100644 --- a/app/shaders/colormanage.frag +++ b/app/shaders/colormanage.frag @@ -10,7 +10,8 @@ uniform mat4 ove_cropmatrix; #define ALPHA_ASSOC 2 // Main texture coordinate -varying vec2 ove_texcoord; +in vec2 ove_texcoord; +out vec4 frag_color; // Program will replace this with OCIO's auto-generated shader code %1 @@ -31,7 +32,7 @@ vec4 deassoc(vec4 c) { void main() { vec2 cropped_coord = (vec4(ove_texcoord-vec2(0.5, 0.5), 0.0, 1.0)*ove_cropmatrix).xy + vec2(0.5, 0.5); if (cropped_coord.x < 0.0 || cropped_coord.x >= 1.0 || cropped_coord.y < 0.0 || cropped_coord.y >= 1.0) { - gl_FragColor = vec4(0.0); + frag_color = vec4(0.0); return; } @@ -52,5 +53,5 @@ void main() { col = assoc(col); } - gl_FragColor = col; + frag_color = col; } diff --git a/app/shaders/cornerpin.frag b/app/shaders/cornerpin.frag index 7dd7e3306..ce688b669 100644 --- a/app/shaders/cornerpin.frag +++ b/app/shaders/cornerpin.frag @@ -4,45 +4,46 @@ uniform sampler2D tex_in; uniform bool perspective_in; // Input texture coordinate -varying vec2 ove_texcoord; +in vec2 ove_texcoord; +out vec4 frag_color; -varying vec2 q; -varying vec2 b1; -varying vec2 b2; -varying vec2 b3; +in vec2 q; +in vec2 b1; +in vec2 b2; +in vec2 b3; float Wedge2D(vec2 v, vec2 w) { - return (v.x*w.y) - (v.y*w.x); + return (v.x*w.y) - (v.y*w.x); } void main() { if(perspective_in){ - gl_FragColor = texture2D(tex_in, ove_texcoord); + frag_color = texture2D(tex_in, ove_texcoord); } else { - float A = Wedge2D(b2, b3); - float B = Wedge2D(b3, q) - Wedge2D(b1, b2); - float C = Wedge2D(b1, q); + float A = Wedge2D(b2, b3); + float B = Wedge2D(b3, q) - Wedge2D(b1, b2); + float C = Wedge2D(b1, q); - vec2 uv; + vec2 uv; - // solve for v - if (abs(A) < 0.001) { - uv.y = -C/B; - } else { - float discrim = B*B - 4.0*A*C; - uv.y = 0.5 * (-B + sqrt(discrim)) / A; - } + // solve for v + if (abs(A) < 0.001) { + uv.y = -C/B; + } else { + float discrim = B*B - 4.0*A*C; + uv.y = 0.5 * (-B + sqrt(discrim)) / A; + } - // solve for u - vec2 denom = b1 + uv.y * b3; - if (abs(denom.x) > abs(denom.y)) { - uv.x = (q.x - b2.x * uv.y) / denom.x; - } else { - uv.x = (q.y - b2.y * uv.y) / denom.y; - } + // solve for u + vec2 denom = b1 + uv.y * b3; + if (abs(denom.x) > abs(denom.y)) { + uv.x = (q.x - b2.x * uv.y) / denom.x; + } else { + uv.x = (q.y - b2.y * uv.y) / denom.y; + } - uv.y = 1.0 - uv.y; + uv.y = 1.0 - uv.y; - gl_FragColor = texture2D(tex_in, uv); - } + frag_color = texture2D(tex_in, uv); + } } diff --git a/app/shaders/cornerpin.vert b/app/shaders/cornerpin.vert index 1eadf95fe..673c3e16c 100644 --- a/app/shaders/cornerpin.vert +++ b/app/shaders/cornerpin.vert @@ -8,15 +8,15 @@ uniform vec2 resolution_in; uniform mat4 ove_mvpmat; -attribute vec4 a_position; -attribute vec2 a_texcoord; +in vec4 a_position; +in vec2 a_texcoord; -varying vec2 ove_texcoord; +out vec2 ove_texcoord; -varying vec2 q; -varying vec2 b1; -varying vec2 b2; -varying vec2 b3; +out vec2 q; +out vec2 b1; +out vec2 b2; +out vec2 b3; void main() { // The slider inputs only contain the amount they have changed rather than @@ -37,7 +37,7 @@ void main() { float c1 = b_l.y - m1 * b_l.x; float m2 = (b_r.y - t_l.y)/(b_r.x - t_l.x); float c2 = t_l.y - m2 * t_l.x; - + // Find the intersection by setting the two line equations equal and rearrange. float mid_x = (c2 - c1) / (m1 - m2); float mid_y = m1 * mid_x + c1; @@ -70,7 +70,7 @@ void main() { } else { q = (d2+d0)/d0; } - + gl_Position[0] *= q; gl_Position[1] *= q; gl_Position[3] = q; @@ -93,7 +93,7 @@ void main() { b2 = t_l - b_l; b3 = b_l - b_r - t_l + t_r; } - + ove_texcoord = a_texcoord; } diff --git a/app/shaders/crop.frag b/app/shaders/crop.frag index a76b1219d..b022f9959 100644 --- a/app/shaders/crop.frag +++ b/app/shaders/crop.frag @@ -8,7 +8,8 @@ uniform float feather_in; uniform vec2 resolution_in; // Input texture coordinate -varying vec2 ove_texcoord; +in vec2 ove_texcoord; +out vec4 frag_color; void main() { float multiplier = 1.0; @@ -45,8 +46,8 @@ void main() { if (multiplier > 0.0) { vec4 color = texture2D(tex_in, ove_texcoord) * multiplier; - gl_FragColor = color; + frag_color = color; } else { - gl_FragColor = vec4(0.0); + frag_color = vec4(0.0); } } diff --git a/app/shaders/crossdissolve.frag b/app/shaders/crossdissolve.frag index 7ddfa9055..e15c7b8d0 100644 --- a/app/shaders/crossdissolve.frag +++ b/app/shaders/crossdissolve.frag @@ -10,7 +10,8 @@ uniform int curve_in; uniform float ove_tprog_all; -varying vec2 ove_texcoord; +in vec2 ove_texcoord; +out vec4 frag_color; float TransformCurve(float linear) { if (curve_in == EXPONENTIAL_CURVE) { @@ -33,5 +34,5 @@ void main(void) { composite += texture2D(in_block_in, ove_texcoord) * TransformCurve(ove_tprog_all); } - gl_FragColor = composite; + frag_color = composite; } diff --git a/app/shaders/default.frag b/app/shaders/default.frag index 1182bd241..ee738debf 100644 --- a/app/shaders/default.frag +++ b/app/shaders/default.frag @@ -2,9 +2,10 @@ uniform sampler2D ove_maintex; // Input texture coordinate -varying vec2 ove_texcoord; +in vec2 ove_texcoord; +out vec4 frag_color; void main() { vec4 color = texture2D(ove_maintex, ove_texcoord); - gl_FragColor = color; + frag_color = color; } diff --git a/app/shaders/default.vert b/app/shaders/default.vert index 0b3105a9b..9b2d55798 100644 --- a/app/shaders/default.vert +++ b/app/shaders/default.vert @@ -1,9 +1,9 @@ uniform mat4 ove_mvpmat; -attribute vec4 a_position; -attribute vec2 a_texcoord; +in vec4 a_position; +in vec2 a_texcoord; -varying vec2 ove_texcoord; +out vec2 ove_texcoord; void main() { gl_Position = ove_mvpmat * a_position; diff --git a/app/shaders/deinterlace.frag b/app/shaders/deinterlace.frag index d4f7b4c66..ea4fcbe0b 100644 --- a/app/shaders/deinterlace.frag +++ b/app/shaders/deinterlace.frag @@ -2,7 +2,8 @@ uniform sampler2D ove_maintex; uniform vec2 resolution_in; -varying vec2 ove_texcoord; +in vec2 ove_texcoord; +out vec4 frag_color; float round(float x) { @@ -19,5 +20,5 @@ void main() { using_texcoord.y = (round(using_texcoord.y * half_vert) + 0.25) / half_vert; vec4 color = texture2D(ove_maintex, using_texcoord); - gl_FragColor = color; + frag_color = color; } diff --git a/app/shaders/diptoblack.frag b/app/shaders/diptoblack.frag index cc3a8d68b..f2d6ffcfd 100644 --- a/app/shaders/diptoblack.frag +++ b/app/shaders/diptoblack.frag @@ -8,19 +8,20 @@ uniform float ove_tprog_all; uniform float ove_tprog_out; uniform float ove_tprog_in; -varying vec2 ove_texcoord; +in vec2 ove_texcoord; +out vec4 frag_color; void main(void) { if (out_block_in_enabled && in_block_in_enabled) { vec4 out_block_col = mix(texture2D(out_block_in, ove_texcoord), color_in, ove_tprog_out); vec4 in_block_col = mix(texture2D(in_block_in, ove_texcoord), color_in, 1.0 - ove_tprog_in); - gl_FragColor = out_block_col + in_block_col; + frag_color = out_block_col + in_block_col; } else if (out_block_in_enabled) { - gl_FragColor = mix(texture2D(out_block_in, ove_texcoord), color_in, ove_tprog_all); + frag_color = mix(texture2D(out_block_in, ove_texcoord), color_in, ove_tprog_all); } else if (in_block_in_enabled) { - gl_FragColor = mix(texture2D(in_block_in, ove_texcoord), color_in, 1.0 - ove_tprog_all); + frag_color = mix(texture2D(in_block_in, ove_texcoord), color_in, 1.0 - ove_tprog_all); } else { - gl_FragColor = vec4(0.0); + frag_color = vec4(0.0); } } diff --git a/app/shaders/flip.frag b/app/shaders/flip.frag index efc4fcf1d..2cbaa7671 100644 --- a/app/shaders/flip.frag +++ b/app/shaders/flip.frag @@ -2,11 +2,12 @@ uniform sampler2D tex_in; uniform bool horiz_in; uniform bool vert_in; -varying vec2 ove_texcoord; +in vec2 ove_texcoord; +out vec4 frag_color; void main(void) { if (!horiz_in && !vert_in) { - gl_FragColor = texture2D(tex_in, ove_texcoord); + frag_color = texture2D(tex_in, ove_texcoord); return; } @@ -15,5 +16,5 @@ void main(void) { if (horiz_in) new_coord.x = 1.0 - new_coord.x; if (vert_in) new_coord.y = 1.0 - new_coord.y; - gl_FragColor = texture2D(tex_in, new_coord); + frag_color = texture2D(tex_in, new_coord); } diff --git a/app/shaders/interlace.frag b/app/shaders/interlace.frag index 15cf182b9..f459d4f4b 100644 --- a/app/shaders/interlace.frag +++ b/app/shaders/interlace.frag @@ -2,14 +2,15 @@ uniform sampler2D top_tex_in; uniform sampler2D bottom_tex_in; uniform vec2 resolution_in; -varying vec2 ove_texcoord; +in vec2 ove_texcoord; +out vec4 frag_color; void main() { float y_pixel = floor(ove_texcoord.y * resolution_in.y); if (mod(y_pixel, 2.0) == 0.0) { - gl_FragColor = texture2D(top_tex_in, ove_texcoord); + frag_color = texture2D(top_tex_in, ove_texcoord); } else { - gl_FragColor = texture2D(bottom_tex_in, ove_texcoord); + frag_color = texture2D(bottom_tex_in, ove_texcoord); } } diff --git a/app/shaders/mosaic.frag b/app/shaders/mosaic.frag index a56f7c191..b9c2644a7 100644 --- a/app/shaders/mosaic.frag +++ b/app/shaders/mosaic.frag @@ -5,7 +5,8 @@ uniform float horiz_in; uniform float vert_in; // Input texture coordinate -varying vec2 ove_texcoord; +in vec2 ove_texcoord; +out vec4 frag_color; void main() { float x; @@ -24,5 +25,5 @@ void main() { } vec4 color = texture2D(tex_in, vec2(x, y)); - gl_FragColor = color; + frag_color = color; } diff --git a/app/shaders/noise.frag b/app/shaders/noise.frag index 377c87357..4a2296e91 100644 --- a/app/shaders/noise.frag +++ b/app/shaders/noise.frag @@ -1,13 +1,13 @@ uniform float time_in; -varying vec2 ove_texcoord; uniform float strength_in; uniform bool color_in; //uniform bool blend; -// precision lowp float; +in vec2 ove_texcoord; +out vec4 frag_color; -float PHI = 1.61803398874989484820459 * 00000.1; // Golden Ratio +float PHI = 1.61803398874989484820459 * 00000.1; // Golden Ratio float PI = 3.14159265358979323846264 * 00000.1; // PI float SQ2 = 1.41421356237309504880169 * 10000.0; // Square Root of Two @@ -23,16 +23,16 @@ bool isNan( float val ) float gold_noise(vec2 coordinate, float seed){ float value = fract(tan(distance(coordinate*(seed+PHI), vec2(PHI, PI)))*SQ2)*(strength_in*0.01); - return isNan(value) ? 0.0 : value; + return isNan(value) ? 0.0 : value; } void main(void) { - vec3 noise; - if (color_in) { - noise = vec3(gold_noise(ove_texcoord, time_in + 42069.0), gold_noise(ove_texcoord, time_in + 69220.0), gold_noise(ove_texcoord, time_in + 1337.0)); - } else { - noise = vec3(gold_noise(ove_texcoord, time_in + 69420.0)); - } + vec3 noise; + if (color_in) { + noise = vec3(gold_noise(ove_texcoord, time_in + 42069.0), gold_noise(ove_texcoord, time_in + 69220.0), gold_noise(ove_texcoord, time_in + 1337.0)); + } else { + noise = vec3(gold_noise(ove_texcoord, time_in + 69420.0)); + } - gl_FragColor = vec4(noise, 1.0); + frag_color = vec4(noise, 1.0); } diff --git a/app/shaders/rgbhistogram.frag b/app/shaders/rgbhistogram.frag index 8fdfe53a6..845806000 100644 --- a/app/shaders/rgbhistogram.frag +++ b/app/shaders/rgbhistogram.frag @@ -2,7 +2,8 @@ uniform sampler2D ove_maintex; uniform vec2 viewport; uniform float histogram_scale; -varying vec2 ove_texcoord; +in vec2 ove_texcoord; +out vec4 frag_color; void main(void) { float histogram_width = ceil(histogram_scale * viewport.y); @@ -27,5 +28,5 @@ void main(void) { ); } - gl_FragColor = vec4(sum, 1.0); + frag_color = vec4(sum, 1.0); } diff --git a/app/shaders/rgbhistogram.vert b/app/shaders/rgbhistogram.vert index 6c3283f07..44100df79 100644 --- a/app/shaders/rgbhistogram.vert +++ b/app/shaders/rgbhistogram.vert @@ -1,9 +1,9 @@ uniform float histogram_scale; -attribute vec4 a_position; -attribute vec2 a_texcoord; +in vec4 a_position; +in vec2 a_texcoord; -varying vec2 ove_texcoord; +out vec2 ove_texcoord; mat4 scale_mat4(vec3 scale) { return mat4( diff --git a/app/shaders/rgbhistogram_secondary.frag b/app/shaders/rgbhistogram_secondary.frag index 1a6dc17b8..4cef66372 100644 --- a/app/shaders/rgbhistogram_secondary.frag +++ b/app/shaders/rgbhistogram_secondary.frag @@ -4,7 +4,8 @@ uniform vec2 viewport; uniform float histogram_scale; uniform float histogram_power; -varying vec2 ove_texcoord; +in vec2 ove_texcoord; +out vec4 frag_color; void main(void) { vec3 col = vec3(0.0); @@ -26,5 +27,5 @@ void main(void) { histogram_ratio = pow(sum / total_pixels, vec3(histogram_power)); col = step(vec3(ove_texcoord.y), histogram_ratio); - gl_FragColor = vec4(col, 1.0); + frag_color = vec4(col, 1.0); } diff --git a/app/shaders/rgbwaveform.frag b/app/shaders/rgbwaveform.frag index c43905055..d39ff4ab7 100644 --- a/app/shaders/rgbwaveform.frag +++ b/app/shaders/rgbwaveform.frag @@ -5,7 +5,8 @@ uniform vec3 luma_coeffs; uniform float waveform_scale; -varying vec2 ove_texcoord; +in vec2 ove_texcoord; +out vec4 frag_color; void main(void) { float waveform_height = ceil(waveform_scale * viewport.y); @@ -33,5 +34,5 @@ void main(void) { } col.rgb += vec3(col.w); - gl_FragColor = vec4(col.rgb, 1.0); + frag_color = vec4(col.rgb, 1.0); } diff --git a/app/shaders/rgbwaveform.vert b/app/shaders/rgbwaveform.vert index af1eec88b..33980f284 100644 --- a/app/shaders/rgbwaveform.vert +++ b/app/shaders/rgbwaveform.vert @@ -1,9 +1,9 @@ uniform float waveform_scale; -attribute vec4 a_position; -attribute vec2 a_texcoord; +in vec4 a_position; +in vec2 a_texcoord; -varying vec2 ove_texcoord; +out vec2 ove_texcoord; mat4 scale_mat4(vec3 scale) { return mat4( diff --git a/app/shaders/shape.frag b/app/shaders/shape.frag index 49ef8d309..f06b2ce7b 100644 --- a/app/shaders/shape.frag +++ b/app/shaders/shape.frag @@ -1,5 +1,6 @@ // Input texture coordinate -varying vec2 ove_texcoord; +in vec2 ove_texcoord; +out vec4 frag_color; // Match with ShapeNode::Type #define SHAPE_RECTANGLE 0 @@ -37,5 +38,5 @@ void main() { col = color_in * (1.0-t); } - gl_FragColor = col; + frag_color = col; } diff --git a/app/shaders/solid.frag b/app/shaders/solid.frag index 159841e79..a5eafc268 100644 --- a/app/shaders/solid.frag +++ b/app/shaders/solid.frag @@ -1,5 +1,7 @@ uniform vec4 color_in; +out vec4 frag_color; + void main(void) { - gl_FragColor = color_in; + frag_color = color_in; } diff --git a/app/shaders/stroke.frag b/app/shaders/stroke.frag index ce6fef99f..1f286327b 100644 --- a/app/shaders/stroke.frag +++ b/app/shaders/stroke.frag @@ -9,7 +9,8 @@ uniform vec2 resolution_in; // Standard inputs uniform int ove_iteration; -varying vec2 ove_texcoord; +in vec2 ove_texcoord; +out vec4 frag_color; void main(void) { vec4 pixel_here = texture2D(tex_in, ove_texcoord); @@ -20,7 +21,7 @@ void main(void) { || (inner_in && pixel_here.a == 0.0) || (!inner_in && pixel_here.a == 1.0)) { // No-op, do nothing - gl_FragColor = pixel_here; + frag_color = pixel_here; return; } @@ -74,5 +75,5 @@ void main(void) { stroke_col = stroke_col * (1.0 - pixel_here.a) + pixel_here; } - gl_FragColor = stroke_col; + frag_color = stroke_col; } From a8bb3a988005695cab86bf11736d93d9f4b3072c Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu, 24 Mar 2022 09:30:53 -0700 Subject: [PATCH 056/114] opengl: replace all texture2Ds with texture No idea how this passed through the cracks but oh well --- app/node/math/math/mathbase.cpp | 4 ++-- app/shaders/blur.frag | 4 ++-- app/shaders/colormanage.frag | 2 +- app/shaders/cornerpin.frag | 4 ++-- app/shaders/crop.frag | 2 +- app/shaders/crossdissolve.frag | 4 ++-- app/shaders/default.frag | 2 +- app/shaders/deinterlace.frag | 2 +- app/shaders/diptoblack.frag | 8 ++++---- app/shaders/flip.frag | 4 ++-- app/shaders/interlace.frag | 4 ++-- app/shaders/mosaic.frag | 2 +- app/shaders/rgbhistogram.frag | 2 +- app/shaders/rgbhistogram_secondary.frag | 2 +- app/shaders/rgbwaveform.frag | 2 +- app/shaders/stroke.frag | 4 ++-- 16 files changed, 26 insertions(+), 26 deletions(-) diff --git a/app/node/math/math/mathbase.cpp b/app/node/math/math/mathbase.cpp index 3cdbdff4b..1876416c2 100644 --- a/app/node/math/math/mathbase.cpp +++ b/app/node/math/math/mathbase.cpp @@ -48,7 +48,7 @@ ShaderCode MathNodeBase::GetShaderCodeInternal(const QString &shader_id, const Q const QString& mat_in = (type_a == NodeValue::kTexture) ? param_b_in : param_a_in; // No-op frag shader (can we return QString() instead?) - operation = QStringLiteral("texture2D(%1, ove_texcoord)").arg(tex_in); + operation = QStringLiteral("texture(%1, ove_texcoord)").arg(tex_in); vert = QStringLiteral("uniform mat4 %1;\n" "\n" @@ -130,7 +130,7 @@ QString MathNodeBase::GetShaderUniformType(const olive::NodeValue::Type &type) QString MathNodeBase::GetShaderVariableCall(const QString &input_id, const NodeValue::Type &type, const QString& coord_op) { if (type == NodeValue::kTexture) { - return QStringLiteral("texture2D(%1, ove_texcoord%2)").arg(input_id, coord_op); + return QStringLiteral("texture(%1, ove_texcoord%2)").arg(input_id, coord_op); } return input_id; diff --git a/app/shaders/blur.frag b/app/shaders/blur.frag index 319ed8ea0..e0378a4bf 100644 --- a/app/shaders/blur.frag +++ b/app/shaders/blur.frag @@ -64,7 +64,7 @@ void main(void) { int mode = determine_mode(); if (mode == MODE_NONE) { - frag_color = texture2D(tex_in, ove_texcoord); + frag_color = texture(tex_in, ove_texcoord); return; } @@ -116,7 +116,7 @@ void main(void) { && pixel_coord.x < 1.0 && pixel_coord.y >= 0.0 && pixel_coord.y < 1.0)) { - composite += texture2D(tex_in, pixel_coord) * weight; + composite += texture(tex_in, pixel_coord) * weight; } } diff --git a/app/shaders/colormanage.frag b/app/shaders/colormanage.frag index dc0be4a45..e9461e71e 100644 --- a/app/shaders/colormanage.frag +++ b/app/shaders/colormanage.frag @@ -36,7 +36,7 @@ void main() { return; } - vec4 col = texture2D(ove_maintex, cropped_coord); + vec4 col = texture(ove_maintex, cropped_coord); // If alpha is associated, de-associate now if (ove_maintex_alpha == ALPHA_ASSOC) { diff --git a/app/shaders/cornerpin.frag b/app/shaders/cornerpin.frag index ce688b669..2255c2d23 100644 --- a/app/shaders/cornerpin.frag +++ b/app/shaders/cornerpin.frag @@ -18,7 +18,7 @@ float Wedge2D(vec2 v, vec2 w) { void main() { if(perspective_in){ - frag_color = texture2D(tex_in, ove_texcoord); + frag_color = texture(tex_in, ove_texcoord); } else { float A = Wedge2D(b2, b3); float B = Wedge2D(b3, q) - Wedge2D(b1, b2); @@ -44,6 +44,6 @@ void main() { uv.y = 1.0 - uv.y; - frag_color = texture2D(tex_in, uv); + frag_color = texture(tex_in, uv); } } diff --git a/app/shaders/crop.frag b/app/shaders/crop.frag index b022f9959..79970b30b 100644 --- a/app/shaders/crop.frag +++ b/app/shaders/crop.frag @@ -45,7 +45,7 @@ void main() { } if (multiplier > 0.0) { - vec4 color = texture2D(tex_in, ove_texcoord) * multiplier; + vec4 color = texture(tex_in, ove_texcoord) * multiplier; frag_color = color; } else { frag_color = vec4(0.0); diff --git a/app/shaders/crossdissolve.frag b/app/shaders/crossdissolve.frag index e15c7b8d0..3a3534cfc 100644 --- a/app/shaders/crossdissolve.frag +++ b/app/shaders/crossdissolve.frag @@ -27,11 +27,11 @@ void main(void) { vec4 composite = vec4(0.0); if (out_block_in_enabled) { - composite += texture2D(out_block_in, ove_texcoord) * TransformCurve(1.0 - ove_tprog_all); + composite += texture(out_block_in, ove_texcoord) * TransformCurve(1.0 - ove_tprog_all); } if (in_block_in_enabled) { - composite += texture2D(in_block_in, ove_texcoord) * TransformCurve(ove_tprog_all); + composite += texture(in_block_in, ove_texcoord) * TransformCurve(ove_tprog_all); } frag_color = composite; diff --git a/app/shaders/default.frag b/app/shaders/default.frag index ee738debf..4ff806e9a 100644 --- a/app/shaders/default.frag +++ b/app/shaders/default.frag @@ -6,6 +6,6 @@ in vec2 ove_texcoord; out vec4 frag_color; void main() { - vec4 color = texture2D(ove_maintex, ove_texcoord); + vec4 color = texture(ove_maintex, ove_texcoord); frag_color = color; } diff --git a/app/shaders/deinterlace.frag b/app/shaders/deinterlace.frag index ea4fcbe0b..b85e2b2d8 100644 --- a/app/shaders/deinterlace.frag +++ b/app/shaders/deinterlace.frag @@ -19,6 +19,6 @@ void main() { float half_vert = round(resolution_in.y / 2.0); using_texcoord.y = (round(using_texcoord.y * half_vert) + 0.25) / half_vert; - vec4 color = texture2D(ove_maintex, using_texcoord); + vec4 color = texture(ove_maintex, using_texcoord); frag_color = color; } diff --git a/app/shaders/diptoblack.frag b/app/shaders/diptoblack.frag index f2d6ffcfd..30a9c918d 100644 --- a/app/shaders/diptoblack.frag +++ b/app/shaders/diptoblack.frag @@ -13,14 +13,14 @@ out vec4 frag_color; void main(void) { if (out_block_in_enabled && in_block_in_enabled) { - vec4 out_block_col = mix(texture2D(out_block_in, ove_texcoord), color_in, ove_tprog_out); - vec4 in_block_col = mix(texture2D(in_block_in, ove_texcoord), color_in, 1.0 - ove_tprog_in); + vec4 out_block_col = mix(texture(out_block_in, ove_texcoord), color_in, ove_tprog_out); + vec4 in_block_col = mix(texture(in_block_in, ove_texcoord), color_in, 1.0 - ove_tprog_in); frag_color = out_block_col + in_block_col; } else if (out_block_in_enabled) { - frag_color = mix(texture2D(out_block_in, ove_texcoord), color_in, ove_tprog_all); + frag_color = mix(texture(out_block_in, ove_texcoord), color_in, ove_tprog_all); } else if (in_block_in_enabled) { - frag_color = mix(texture2D(in_block_in, ove_texcoord), color_in, 1.0 - ove_tprog_all); + frag_color = mix(texture(in_block_in, ove_texcoord), color_in, 1.0 - ove_tprog_all); } else { frag_color = vec4(0.0); } diff --git a/app/shaders/flip.frag b/app/shaders/flip.frag index 2cbaa7671..1da073c9e 100644 --- a/app/shaders/flip.frag +++ b/app/shaders/flip.frag @@ -7,7 +7,7 @@ out vec4 frag_color; void main(void) { if (!horiz_in && !vert_in) { - frag_color = texture2D(tex_in, ove_texcoord); + frag_color = texture(tex_in, ove_texcoord); return; } @@ -16,5 +16,5 @@ void main(void) { if (horiz_in) new_coord.x = 1.0 - new_coord.x; if (vert_in) new_coord.y = 1.0 - new_coord.y; - frag_color = texture2D(tex_in, new_coord); + frag_color = texture(tex_in, new_coord); } diff --git a/app/shaders/interlace.frag b/app/shaders/interlace.frag index f459d4f4b..9edac96ce 100644 --- a/app/shaders/interlace.frag +++ b/app/shaders/interlace.frag @@ -9,8 +9,8 @@ void main() { float y_pixel = floor(ove_texcoord.y * resolution_in.y); if (mod(y_pixel, 2.0) == 0.0) { - frag_color = texture2D(top_tex_in, ove_texcoord); + frag_color = texture(top_tex_in, ove_texcoord); } else { - frag_color = texture2D(bottom_tex_in, ove_texcoord); + frag_color = texture(bottom_tex_in, ove_texcoord); } } diff --git a/app/shaders/mosaic.frag b/app/shaders/mosaic.frag index b9c2644a7..723353a96 100644 --- a/app/shaders/mosaic.frag +++ b/app/shaders/mosaic.frag @@ -24,6 +24,6 @@ void main() { y = ove_texcoord.y; } - vec4 color = texture2D(tex_in, vec2(x, y)); + vec4 color = texture(tex_in, vec2(x, y)); frag_color = color; } diff --git a/app/shaders/rgbhistogram.frag b/app/shaders/rgbhistogram.frag index 845806000..b4ef1fb9a 100644 --- a/app/shaders/rgbhistogram.frag +++ b/app/shaders/rgbhistogram.frag @@ -14,7 +14,7 @@ void main(void) { for (int i = 0; float(i) < histogram_width; i++) { ratio = float(i) / float(histogram_width - 1.0); - cur_col = texture2D( + cur_col = texture( ove_maintex, vec2(ove_texcoord.y, ratio) ).rgb; diff --git a/app/shaders/rgbhistogram_secondary.frag b/app/shaders/rgbhistogram_secondary.frag index 4cef66372..57d114ed2 100644 --- a/app/shaders/rgbhistogram_secondary.frag +++ b/app/shaders/rgbhistogram_secondary.frag @@ -18,7 +18,7 @@ void main(void) { for (int i = 0; float(i) < histogram_height; i++) { ratio = float(i) / float(histogram_height - 1.0); - sum += texture2D( + sum += texture( ove_maintex, vec2(ove_texcoord.x, ratio) ).rgb; diff --git a/app/shaders/rgbwaveform.frag b/app/shaders/rgbwaveform.frag index d39ff4ab7..cb3a00830 100644 --- a/app/shaders/rgbwaveform.frag +++ b/app/shaders/rgbwaveform.frag @@ -18,7 +18,7 @@ void main(void) { for (int i = 0; float(i) < waveform_height; i++) { ratio = float(i) / float(waveform_height - 1.0); - cur_col.rgb = texture2D( + cur_col.rgb = texture( ove_maintex, vec2(ove_texcoord.x, ratio) ).rgb; diff --git a/app/shaders/stroke.frag b/app/shaders/stroke.frag index 1f286327b..6827ec9c4 100644 --- a/app/shaders/stroke.frag +++ b/app/shaders/stroke.frag @@ -13,7 +13,7 @@ in vec2 ove_texcoord; out vec4 frag_color; void main(void) { - vec4 pixel_here = texture2D(tex_in, ove_texcoord); + vec4 pixel_here = texture(tex_in, ove_texcoord); // Detect no-op situations if (radius_in == 0.0 @@ -38,7 +38,7 @@ void main(void) { if (abs(length(vec2(i, j))) < radius) { // Get pixel here - float alpha = texture2D(tex_in, ove_texcoord + vec2(x_coord, y_coord)).a; + float alpha = texture(tex_in, ove_texcoord + vec2(x_coord, y_coord)).a; if (inner_in) { alpha = 1.0 - alpha; From cbd7c992199ba2b555d195f2773074ee9d5e2e06 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun, 27 Mar 2022 17:23:27 -0700 Subject: [PATCH 057/114] nodeparamview: span columns where possible --- .../nodeparamview/nodeparamviewitem.cpp | 20 +++++++++++-------- app/widget/nodeparamview/nodeparamviewitem.h | 1 + 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/app/widget/nodeparamview/nodeparamviewitem.cpp b/app/widget/nodeparamview/nodeparamviewitem.cpp index e1bfe51b3..997772ddf 100644 --- a/app/widget/nodeparamview/nodeparamviewitem.cpp +++ b/app/widget/nodeparamview/nodeparamviewitem.cpp @@ -40,6 +40,7 @@ const int NodeParamViewItemBody::kOptionalCheckBox = 0; const int NodeParamViewItemBody::kArrayCollapseBtnColumn = 1; const int NodeParamViewItemBody::kLabelColumn = 2; const int NodeParamViewItemBody::kWidgetStartColumn = 3; +const int NodeParamViewItemBody::kMaxWidgetColumn = kKeyControlColumn; #define super NodeParamViewItemBase @@ -216,13 +217,6 @@ void NodeParamViewItemBody::CreateWidgets(QGridLayout* layout, Node *node, const // Place widgets into layout PlaceWidgetsFromBridge(layout, ui_objects.widget_bridge, row); - // Add widgets for this parameter to the layout - for (int i=0; iwidgets().size(); i++) { - QWidget* w = ui_objects.widget_bridge->widgets().at(i); - - layout->addWidget(w, row, i+kWidgetStartColumn); - } - // In case this input is a group, resolve that actual input to use for connected labels NodeInput resolved = NodeGroup::ResolveInput(input_ref); @@ -355,7 +349,17 @@ void NodeParamViewItemBody::PlaceWidgetsFromBridge(QGridLayout* layout, NodePara for (int i=0; iwidgets().size(); i++) { QWidget* w = bridge->widgets().at(i); - layout->addWidget(w, row, i+kWidgetStartColumn); + int col = i+kWidgetStartColumn; + + int colspan; + if (i == bridge->widgets().size()-1) { + // Span this widget among remaining columns + colspan = kMaxWidgetColumn - col; + } else { + colspan = 1; + } + + layout->addWidget(w, row, col, 1, colspan); } } diff --git a/app/widget/nodeparamview/nodeparamviewitem.h b/app/widget/nodeparamview/nodeparamviewitem.h index 93044ad86..e06d98d72 100644 --- a/app/widget/nodeparamview/nodeparamviewitem.h +++ b/app/widget/nodeparamview/nodeparamviewitem.h @@ -134,6 +134,7 @@ private: static const int kArrayCollapseBtnColumn; static const int kLabelColumn; static const int kWidgetStartColumn; + static const int kMaxWidgetColumn; private slots: void EdgeChanged(Node *output, const NodeInput &input); From 1c30c4d361b96742174f3d2e8cec083cae05368c Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun, 27 Mar 2022 17:43:07 -0700 Subject: [PATCH 058/114] ffmpeg: use best effort timestamp instead of pts --- app/codec/ffmpeg/ffmpegdecoder.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/codec/ffmpeg/ffmpegdecoder.cpp b/app/codec/ffmpeg/ffmpegdecoder.cpp index 9b2a0da1b..14bcf0e1e 100644 --- a/app/codec/ffmpeg/ffmpegdecoder.cpp +++ b/app/codec/ffmpeg/ffmpegdecoder.cpp @@ -323,7 +323,7 @@ FootageDescription FFmpegDecoder::Probe(const QString &filename, const QAtomicIn int64_t new_dur; do { - new_dur = frame->pts; + new_dur = frame->best_effort_timestamp; } while (instance.GetFrame(pkt, frame) >= 0); avstream->duration = new_dur; @@ -388,7 +388,7 @@ FootageDescription FFmpegDecoder::Probe(const QString &filename, const QAtomicIn int64_t new_dur; do { - new_dur = frame->pts; + new_dur = frame->best_effort_timestamp; } while (instance.GetFrame(pkt, frame) >= 0); avstream->duration = new_dur; @@ -540,7 +540,7 @@ bool FFmpegDecoder::ConformAudioInternal(const QVector &filenames, cons break; } - SignalProcessingProgress(frame->pts, duration); + SignalProcessingProgress(frame->best_effort_timestamp, duration); } wave_out.close(); @@ -733,7 +733,7 @@ FFmpegFramePool::ElementPtr FFmpegDecoder::RetrieveFrame(const rational& time, c if (still_seeking) { // Handle a failure to seek (occurs on some media) // We'll only be here if the frame cache was emptied earlier - if (!cache_at_zero_ && (ret == AVERROR_EOF || working_frame->pts > target_ts)) { + if (!cache_at_zero_ && (ret == AVERROR_EOF || working_frame->best_effort_timestamp > target_ts)) { seek_ts = qMax(min_seek, seek_ts - second_ts_); instance_.Seek(seek_ts); @@ -784,7 +784,7 @@ FFmpegFramePool::ElementPtr FFmpegDecoder::RetrieveFrame(const rational& time, c av_image_copy(&destination_data, &destination_linesize, const_cast(working_frame->data), working_frame->linesize, static_cast(working_frame->format), working_frame->width, working_frame->height); // Set timestamp so this frame can be identified later - cached->set_timestamp(working_frame->pts); + cached->set_timestamp(working_frame->best_effort_timestamp); // Store frame before just in case FFmpegFramePool::ElementPtr previous; From 16580841a63f0f7830bd31218311787780570297 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 28 Mar 2022 00:01:48 -0700 Subject: [PATCH 059/114] Squashed commit of the following: commit 8619bb044081da81b4eef238d138bd051e678a4c Merge: 1a767e0c2 1c30c4d36 Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun Mar 27 23:59:10 2022 -0700 Merge branch 'master' into gizmo-rework commit 1a767e0c2279cac3baf96a9028c1b78ec0491e00 Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun Mar 27 17:23:07 2022 -0700 implement custom html parser/exporter commit bbd9361d345ce864d198f4340b3d59f526e642e5 Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Wed Mar 9 22:27:17 2022 -0800 textgizmo: further improved behavior commit 27634d5d377f03cab009bca418765d73764893f2 Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Wed Mar 9 22:26:19 2022 -0800 textgizmo: improved double click behavior commit 0897ebfa36e676461c7a47305a3c1bf66e7a9fd1 Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Wed Mar 9 10:20:57 2022 -0800 text: added more features and improvements commit 9d6446a25d977ea0c66e5f5c69239aed0e92fe83 Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Wed Mar 9 10:14:59 2022 -0800 text: don't create color input commit d1d3b9d46e74d8197ba3485a8e965068eb245166 Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Wed Mar 9 09:10:23 2022 -0800 text: convert to reference space commit 3ba1565129a0bdd74b860b1869fec5ef30025abb Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon Mar 7 17:57:26 2022 -0800 finally got scaling to work holy shit I never thought it'd be this easy commit 081368cfac9b49a171db6c1d576e134903dffac0 Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon Mar 7 11:25:58 2022 -0800 improved text behavior commit f3eda52eee29b7cd354d7d90b3ae1a819e1b1cf2 Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon Mar 7 11:08:31 2022 -0800 implemented font styles (weights and italics) commit 0898b613ec9b473ac93996536d00541e0a2a3f74 Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon Mar 7 01:26:13 2022 -0800 implemented beginnings of text gizmo commit bffb8ede2d425e7391d16bc03e613d4d90367add Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun Mar 6 17:55:03 2022 -0800 conformed transform node to new gizmos commit 1a1f86fa9bec9ea6b67f77032748c04b6b4c95fd Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sat Mar 5 11:16:34 2022 -0800 update polygon node commit 2388dd69164e8c57e0a1d221c7680a0d39173c2c Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Fri Mar 4 15:31:39 2022 -0800 implement glsl hack for corner pin commit e96df6cb326fb278cc6555890ff0ac1d37ebf4bf Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu Mar 3 17:06:14 2022 -0800 updated corner pin commit c70aa0e72d4e83045c84259294608c1380e8929b Merge: 5afed6383 780342881 Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu Mar 3 17:04:40 2022 -0800 Merge branch 'master' into gizmo-rework commit 5afed6383952d7d936b5eeda2556339c854610af Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu Mar 3 16:55:57 2022 -0800 use float points for more precise math commit 159ade0d2812d556dee57f99e3f733ef1e838d01 Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu Mar 3 16:55:40 2022 -0800 ported shape node commit 28f9500d7bc6cd2661ee9ea591db7b3f8d583196 Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu Mar 3 15:50:19 2022 -0800 implemented enough dragging code to reimplement crop Requires far less boiler-plate code per node commit 5aeaa59227ad2f1dc3c7f499c636de843a262a88 Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Wed Mar 2 19:45:04 2022 -0800 update just merged corner pin for new gizmos commit 8a2d041650d1b873c6d87664564ebcdf92a3760f Merge: c916e8e08 f5b4729a1 Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Wed Mar 2 19:38:36 2022 -0800 Merge branch 'master' into gizmo-rework commit c916e8e08016c1d0b72d85087db76e4137587d52 Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Wed Mar 2 19:35:09 2022 -0800 gizmos: rewrote drawing into standard routines Work towards a far more maintainable gizmo system --- CMakeLists.txt | 2 +- app/common/CMakeLists.txt | 3 + app/common/html.cpp | 469 +++++++++++++++++ app/common/html.h | 60 +++ app/common/qtutils.cpp | 7 + app/common/qtutils.h | 2 + app/common/util.h | 30 ++ app/node/CMakeLists.txt | 1 + .../cornerpin/cornerpindistortnode.cpp | 91 +--- .../distort/cornerpin/cornerpindistortnode.h | 25 +- app/node/distort/crop/cropdistortnode.cpp | 184 ++----- app/node/distort/crop/cropdistortnode.h | 35 +- .../transform/transformdistortnode.cpp | 496 ++++++++---------- .../distort/transform/transformdistortnode.h | 50 +- app/node/factory.cpp | 18 +- app/node/factory.h | 5 +- app/node/generator/polygon/polygon.cpp | 183 +++---- app/node/generator/polygon/polygon.h | 27 +- app/node/generator/shape/shapenodebase.cpp | 295 +++++------ app/node/generator/shape/shapenodebase.h | 40 +- app/node/generator/text/CMakeLists.txt | 10 +- .../text/{textlegacy.cpp => textv1.cpp} | 30 +- .../generator/text/{textlegacy.h => textv1.h} | 14 +- .../generator/text/{text.cpp => textv2.cpp} | 30 +- app/node/generator/text/{text.h => textv2.h} | 14 +- app/node/generator/text/textv3.cpp | 140 +++++ app/node/generator/text/textv3.h | 60 +++ app/node/gizmo/CMakeLists.txt | 36 ++ app/node/gizmo/draggable.cpp | 52 ++ app/node/gizmo/draggable.h | 85 +++ app/node/gizmo/gizmo.cpp | 30 ++ app/node/gizmo/gizmo.h | 51 ++ app/node/gizmo/line.cpp | 38 ++ app/node/gizmo/line.h | 48 ++ app/node/gizmo/path.cpp | 39 ++ app/node/gizmo/path.h | 48 ++ app/node/gizmo/point.cpp | 99 ++++ app/node/gizmo/point.h | 72 +++ app/node/gizmo/polygon.cpp | 38 ++ app/node/gizmo/polygon.h | 48 ++ app/node/gizmo/screen.cpp | 31 ++ app/node/gizmo/screen.h | 38 ++ app/node/gizmo/text.cpp | 43 ++ app/node/gizmo/text.h | 56 ++ app/node/globals.h | 2 + app/node/inputdragger.h | 10 + app/node/node.cpp | 103 ++-- app/node/node.h | 53 +- app/node/value.h | 2 + app/render/job/generatejob.h | 5 + app/render/renderprocessor.cpp | 9 + app/ui/icons/icons.cpp | 15 + app/ui/icons/icons.h | 9 + .../nodeparamviewwidgetbridge.cpp | 35 +- app/widget/slider/base/sliderbase.cpp | 1 + app/widget/timelinewidget/tool/add.cpp | 4 +- app/widget/viewer/CMakeLists.txt | 2 + app/widget/viewer/viewerdisplay.cpp | 175 +++++- app/widget/viewer/viewerdisplay.h | 13 +- app/widget/viewer/viewertexteditor.cpp | 483 +++++++++++++++++ app/widget/viewer/viewertexteditor.h | 178 +++++++ 61 files changed, 3257 insertions(+), 1015 deletions(-) create mode 100644 app/common/html.cpp create mode 100644 app/common/html.h create mode 100644 app/common/util.h rename app/node/generator/text/{textlegacy.cpp => textv1.cpp} (82%) rename app/node/generator/text/{textlegacy.h => textv1.h} (85%) rename app/node/generator/text/{text.cpp => textv2.cpp} (86%) rename app/node/generator/text/{text.h => textv2.h} (86%) create mode 100644 app/node/generator/text/textv3.cpp create mode 100644 app/node/generator/text/textv3.h create mode 100644 app/node/gizmo/CMakeLists.txt create mode 100644 app/node/gizmo/draggable.cpp create mode 100644 app/node/gizmo/draggable.h create mode 100644 app/node/gizmo/gizmo.cpp create mode 100644 app/node/gizmo/gizmo.h create mode 100644 app/node/gizmo/line.cpp create mode 100644 app/node/gizmo/line.h create mode 100644 app/node/gizmo/path.cpp create mode 100644 app/node/gizmo/path.h create mode 100644 app/node/gizmo/point.cpp create mode 100644 app/node/gizmo/point.h create mode 100644 app/node/gizmo/polygon.cpp create mode 100644 app/node/gizmo/polygon.h create mode 100644 app/node/gizmo/screen.cpp create mode 100644 app/node/gizmo/screen.h create mode 100644 app/node/gizmo/text.cpp create mode 100644 app/node/gizmo/text.h create mode 100644 app/widget/viewer/viewertexteditor.cpp create mode 100644 app/widget/viewer/viewertexteditor.h diff --git a/CMakeLists.txt b/CMakeLists.txt index cd0c6d89a..8df0764d3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,7 +22,7 @@ option(BUILD_DOXYGEN "Build Doxygen documentation" OFF) option(BUILD_TESTS "Build unit tests" ON) option(USE_WERROR "Error on compile warning" ON) -set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) diff --git a/app/common/CMakeLists.txt b/app/common/CMakeLists.txt index 2938ad229..cc881d473 100644 --- a/app/common/CMakeLists.txt +++ b/app/common/CMakeLists.txt @@ -37,6 +37,8 @@ set(OLIVE_SOURCES common/flipmodifiers.cpp common/flipmodifiers.h common/functiontimer.h + common/html.cpp + common/html.h common/jobtime.cpp common/jobtime.h common/lerp.h @@ -61,6 +63,7 @@ set(OLIVE_SOURCES common/timerange.cpp common/timerange.h common/tohex.h + common/util.h common/xmlutils.cpp common/xmlutils.h PARENT_SCOPE diff --git a/app/common/html.cpp b/app/common/html.cpp new file mode 100644 index 000000000..1b58418fa --- /dev/null +++ b/app/common/html.cpp @@ -0,0 +1,469 @@ +#include "html.h" + +#include +#include + +#include "xmlutils.h" + +namespace olive { + +const QVector Html::kBlockTags = { + QStringLiteral("p"), + QStringLiteral("div") +}; + +inline bool StrEquals(const QString &a, const QStringRef &b) +{ + return !a.compare(b, Qt::CaseInsensitive); +} + +inline bool StrEquals(const QString &a, const QString &b) +{ + return !a.compare(b, Qt::CaseInsensitive); +} + +inline bool StrEquals(const QStringRef &a, const QString &b) +{ + return !a.compare(b, Qt::CaseInsensitive); +} + +inline bool StrEquals(const QStringRef &a, const QStringRef &b) +{ + return !a.compare(b, Qt::CaseInsensitive); +} + +QString Html::DocToHtml(const QTextDocument *doc) +{ + QString html; + QXmlStreamWriter writer(&html); + + //writer.setAutoFormatting(true); + + for (auto it=doc->begin(); it!=doc->end(); it=it.next()) { + WriteBlock(&writer, it); + } + + return html; +} + +struct HtmlNode { + QString tag; + QTextCharFormat format; +}; + +QTextCharFormat MergeHtmlFormats(const QVector &stack) +{ + QTextCharFormat f; + + for (int i=0; iclear(); + bool inside_block = true; + + // Create cursor, which appears to be Qt's official way of inserting blocks and fragments + QTextCursor c(doc); + + QString wrapped = QStringLiteral("").append(html).append(""); + QXmlStreamReader reader(wrapped); + + QVector fmt_stack; + + QTextCharFormat default_fmt; + default_fmt.setFontWeight(QFont::Normal); + fmt_stack.append({QStringLiteral("html"), default_fmt}); + + QTextCharFormat current_fmt; + + while (!reader.atEnd()) { + reader.readNext(); + + if (reader.tokenType() == QXmlStreamReader::StartElement) { + + QString tag = reader.name().toString().toLower(); + + fmt_stack.append({tag, ReadCharFormat(reader.attributes())}); + current_fmt = MergeHtmlFormats(fmt_stack); + + if (kBlockTags.contains(tag)) { + QTextBlockFormat block_fmt = ReadBlockFormat(reader.attributes()); + if (inside_block) { + c.setBlockFormat(block_fmt); + c.setBlockCharFormat(current_fmt); + } else { + c.insertBlock(block_fmt, current_fmt); + inside_block = true; + } + } + + } else if (reader.tokenType() == QXmlStreamReader::Characters) { + + QString characters = reader.text().toString(); + c.insertText(characters, current_fmt); + + } else if (reader.tokenType() == QXmlStreamReader::EndElement) { + + QString tag = reader.name().toString().toLower(); + + for (int i=fmt_stack.size()-1; i>=0; i--) { + if (fmt_stack.at(i).tag == tag) { + fmt_stack.removeAt(i); + current_fmt = MergeHtmlFormats(fmt_stack); + + if (kBlockTags.contains(tag)) { + inside_block = false; + } + break; + } + } + + } + } + + if (reader.error()) { + qCritical() << "Failed to parse HTML:" << reader.errorString(); + } +} + +void Html::WriteBlock(QXmlStreamWriter *writer, const QTextBlock &block) +{ + writer->writeStartElement(QStringLiteral("p")); + + const QTextBlockFormat &fmt = block.blockFormat(); + + // Write block alignment + if (!(fmt.alignment() & Qt::AlignLeft)) { + if (fmt.alignment() & Qt::AlignRight) { + writer->writeAttribute(QStringLiteral("align"), QStringLiteral("right")); + } else if (fmt.alignment() & Qt::AlignCenter) { + writer->writeAttribute(QStringLiteral("align"), QStringLiteral("center")); + } else if (fmt.alignment() & Qt::AlignJustify) { + writer->writeAttribute(QStringLiteral("align"), QStringLiteral("justify")); + } + } + + // RTL support + if (block.textDirection() == Qt::RightToLeft) { + writer->writeAttribute(QStringLiteral("dir"), QStringLiteral("rtl")); + } + + // Write CSS attributes + QString style; + + if (fmt.lineHeightType() != QTextBlockFormat::SingleHeight) { + WriteCSSProperty(&style, QStringLiteral("line-height"), QStringLiteral("%1%").arg(fmt.lineHeight())); + } + + //WriteCharFormat(&style, block.charFormat()); + + if (!style.isEmpty()) { + writer->writeAttribute(QStringLiteral("style"), style); + } + + auto it = block.begin(); + + if (it == block.end()) { + // FIXME: Might not be necessary with our custom HTML implementation + QString s; + s.append(QChar::Nbsp); + writer->writeCharacters(s); + } else { + for (; it!=block.end(); it++) { + WriteFragment(writer, it.fragment()); + } + } + + writer->writeEndElement(); // p +} + +void Html::WriteFragment(QXmlStreamWriter *writer, const QTextFragment &fragment) +{ + const QTextCharFormat &fmt = fragment.charFormat(); + + writer->writeStartElement(QStringLiteral("span")); + + // Write CSS attributes + QString style; + + WriteCharFormat(&style, fmt); + + if (!style.isEmpty()) { + writer->writeAttribute(QStringLiteral("style"), style); + } + + QStringList lines = fragment.text().split(QChar::LineSeparator); + bool first_line = true; + foreach (const QString &l, lines) { + if (first_line) { + first_line = false; + } else { + writer->writeEmptyElement(QStringLiteral("br")); + } + writer->writeCharacters(l); + } + + writer->writeEndElement(); // span +} + +void Html::WriteCSSProperty(QString *style, const QString &key, const QStringList &values) +{ + QString value; + foreach (QString v, values) { + if (v.contains(' ')) { + v = QStringLiteral("'%1'").arg(v); + } + + AppendStringAutoSpace(&value, v); + } + + AppendStringAutoSpace(style, QStringLiteral("%1: %2;").arg(key, value)); +} + +void Html::WriteCharFormat(QString *style, const QTextCharFormat &fmt) +{ + if (!fmt.fontFamily().isEmpty()) { + WriteCSSProperty(style, QStringLiteral("font-family"), fmt.fontFamily()); + } + + if (fmt.hasProperty(QTextFormat::FontPointSize)) { + WriteCSSProperty(style, QStringLiteral("font-size"), QStringLiteral("%1pt").arg(QString::number(fmt.fontPointSize()))); + } + + if (fmt.hasProperty(QTextFormat::FontWeight)) { + WriteCSSProperty(style, QStringLiteral("font-weight"), QString::number(fmt.fontWeight() * 8)); + } + + if (fmt.hasProperty(QTextFormat::FontItalic)) { + WriteCSSProperty(style, QStringLiteral("font-style"), fmt.fontItalic() ? QStringLiteral("italic") : QStringLiteral("normal")); + } + + if (fmt.hasProperty(QTextFormat::FontStyleName)) { + WriteCSSProperty(style, QStringLiteral("-ove-font-style"), fmt.fontStyleName().toString()); + } + + QStringList deco; + + if (fmt.fontUnderline()) { + deco.append(QStringLiteral("underline")); + } + + if (fmt.fontStrikeOut()) { + deco.append(QStringLiteral("line-through")); + } + + if (fmt.fontOverline()) { + deco.append(QStringLiteral("overline")); + } + + if (!deco.isEmpty()) { + WriteCSSProperty(style, QStringLiteral("text-decoration"), deco); + } + + if (fmt.foreground().style() != Qt::NoBrush) { + const QColor &color = fmt.foreground().color(); + QString cs; + + if (color.alpha() == 255) { + cs = color.name(); + } else if (color.alpha()) { + cs = QStringLiteral("rgba(%1, %2, %3, %4)").arg(QString::number(color.red()), QString::number(color.green()), QString::number(color.blue()), QString::number(color.alphaF())); + } + + WriteCSSProperty(style, QStringLiteral("color"), cs); + } + + if (fmt.fontCapitalization() != QFont::MixedCase) { + if (fmt.fontCapitalization() == QFont::SmallCaps) { + WriteCSSProperty(style, QStringLiteral("font-variant"), QStringLiteral("small-caps")); + // TODO: Add others + } + } + + if (fmt.fontLetterSpacing() != 0.0) { + WriteCSSProperty(style, QStringLiteral("letter-spacing"), QStringLiteral("%1%").arg(QString::number(fmt.fontLetterSpacing()))); + } + + if (fmt.fontStretch() != 0) { + WriteCSSProperty(style, QStringLiteral("font-stretch"), QStringLiteral("%1%").arg(QString::number(fmt.fontStretch()))); + } +} + +QTextCharFormat Html::ReadCharFormat(const QXmlStreamAttributes &attributes) +{ + QTextCharFormat fmt; + + foreach (const QXmlStreamAttribute &attr, attributes) { + if (StrEquals(attr.name(), QStringLiteral("style"))) { + auto css = GetCSSFromStyle(attr.value().toString()); + + for (auto it=css.begin(); it!=css.end(); it++) { + const QString &first_val = it.value().first(); + + if (it.key() == QStringLiteral("font-family")) { + fmt.setFontFamily(first_val); + } else if (it.key() == QStringLiteral("font-size")) { + if (first_val.endsWith(QStringLiteral("pt"), Qt::CaseInsensitive)) { + fmt.setFontPointSize(first_val.chopped(2).toDouble()); + } + } else if (it.key() == QStringLiteral("font-weight")) { + fmt.setFontWeight(first_val.toInt()/8); + } else if (it.key() == QStringLiteral("font-style")) { + fmt.setFontItalic(StrEquals(first_val, QStringLiteral("italic"))); + } else if (it.key() == QStringLiteral("text-decoration")) { + foreach (const QString &v, it.value()) { + if (StrEquals(v, QStringLiteral("underline"))) { + fmt.setFontUnderline(true); + } else if (StrEquals(v, QStringLiteral("line-through"))) { + fmt.setFontStrikeOut(true); + } else if (StrEquals(v, QStringLiteral("overline"))) { + fmt.setFontOverline(true); + } + } + } else if (it.key() == QStringLiteral("color")) { + if (first_val.startsWith(QStringLiteral("rgba"), Qt::CaseInsensitive)) { + QString vals_only = first_val; + vals_only.remove(QStringLiteral("rgba")); + vals_only.remove(QStringLiteral("(")); + vals_only.remove(QStringLiteral(")")); + QStringList rgba = vals_only.split(','); + if (rgba.size() == 4) { + QColor c; + c.setRedF(rgba.at(0).toDouble()); + c.setGreenF(rgba.at(1).toDouble()); + c.setBlueF(rgba.at(2).toDouble()); + c.setAlphaF(rgba.at(3).toDouble()); + fmt.setForeground(c); + } + } else { + fmt.setForeground(QColor(first_val)); + } + } else if (it.key() == QStringLiteral("font-variant")) { + if (StrEquals(first_val, QStringLiteral("small-caps"))) { + fmt.setFontCapitalization(QFont::SmallCaps); + } + } else if (it.key() == QStringLiteral("letter-spacing")) { + if (first_val.contains(QChar('%'))) { + fmt.setFontLetterSpacing(first_val.chopped(1).toDouble()); + } + } else if (it.key() == QStringLiteral("font-stretch")) { + if (first_val.contains(QChar('%'))) { + fmt.setFontStretch(first_val.chopped(1).toInt()); + } + } else if (it.key() == QStringLiteral("-ove-font-style")) { + fmt.setFontStyleName(first_val); + } + } + } + } + return fmt; +} + +QTextBlockFormat Html::ReadBlockFormat(const QXmlStreamAttributes &attributes) +{ + QTextBlockFormat block_fmt; + + foreach (const QXmlStreamAttribute &attr, attributes) { + if (StrEquals(attr.name(), QStringLiteral("align"))) { + if (StrEquals(attr.value(), QStringLiteral("right"))) { + block_fmt.setAlignment(Qt::AlignRight); + } else if (StrEquals(attr.value(), QStringLiteral("center"))) { + block_fmt.setAlignment(Qt::AlignCenter); + } else if (StrEquals(attr.value(), QStringLiteral("justify"))) { + block_fmt.setAlignment(Qt::AlignJustify); + } + } else if (StrEquals(attr.name(), QStringLiteral("dir"))) { + if (StrEquals(attr.value(), QStringLiteral("rtl"))) { + block_fmt.setLayoutDirection(Qt::RightToLeft); + } + } else if (StrEquals(attr.name(), QStringLiteral("style"))) { + auto css = GetCSSFromStyle(attr.value().toString()); + + for (auto it=css.begin(); it!=css.end(); it++) { + if (it.key() == QStringLiteral("line-height")) { + const QString &first_val = it.value().constFirst(); + if (first_val.contains(QChar('%'))) { + block_fmt.setLineHeight(first_val.chopped(1).toDouble(), QTextBlockFormat::ProportionalHeight); + } + } + } + } + } + + return block_fmt; +} + +void Html::AppendStringAutoSpace(QString *s, const QString &append) +{ + if (!s->isEmpty()) { + s->append(QChar(' ')); + } + + s->append(append); +} + +QMap Html::GetCSSFromStyle(const QString &s) +{ + QMap map; + + QStringList list = s.split(QChar(';')); + + foreach (const QString &a, list) { + QStringList kv = a.split(QChar(':')); + + if (kv.size() != 2) { + continue; + } + + // I'm sure there's regex that could do this, but I couldn't figure it out. It needs to split + // by space EXCEPT within quotes OR double-quotes, and said quotes should be EXCLUDED from each + // match. Also commas should be filtered out. + QStringList values; + const QString &val = kv.at(1); + QChar in_quote = 0; + QString current_str; + for (int i=0; i +#include +#include +#include + +namespace olive { + +/** + * @brief Functions for converting HTML to QTextDocument and vice versa + * + * Qt does contain its own functions for this, however they have some limitations. Some things that + * we want to support (e.g. kerning/spacing and font stretch) are not implemented in Qt's + * QTextHtmlExporter and QTextHtmlParser. Additionally, since these functions are not part of Qt's + * public API, and make many references to other parts of Qt that are not part of the public API, + * there is no way to subclass or extend their functionality without forking Qt as a whole. + * + * Therefore, it became necessary to write a custom class for the conversion so that we can + * ensure support for the features we need. + * + * If someone wishes to extend this class for more feature support, feel free to open a pull + * request. But this is NOT intended to be an exhaustive HTML implementation, and is primarily + * designed to store rich text in a standard format for the purpose of text formatting for video. + */ +class Html { +public: + static QString DocToHtml(const QTextDocument *doc); + + static void HtmlToDoc(QTextDocument *doc, const QString &html); + +private: + static void WriteBlock(QXmlStreamWriter *writer, const QTextBlock &block); + + static void WriteFragment(QXmlStreamWriter *writer, const QTextFragment &fragment); + + static void WriteCSSProperty(QString *style, const QString &key, const QStringList &value); + static void WriteCSSProperty(QString *style, const QString &key, const QString &value) + { + WriteCSSProperty(style, key, QStringList({value})); + } + + static void WriteCharFormat(QString *style, const QTextCharFormat &fmt); + + static QTextCharFormat ReadCharFormat(const QXmlStreamAttributes &attributes); + + static QTextBlockFormat ReadBlockFormat(const QXmlStreamAttributes &attributes); + + static void AppendStringAutoSpace(QString *s, const QString &append); + + static QMap GetCSSFromStyle(const QString &s); + + static const QVector kBlockTags; + +}; + +} + +#endif // HTML_H diff --git a/app/common/qtutils.cpp b/app/common/qtutils.cpp index 757ca2617..f4f363880 100644 --- a/app/common/qtutils.cpp +++ b/app/common/qtutils.cpp @@ -38,6 +38,13 @@ QFrame *QtUtils::CreateHorizontalLine() return horizontal_line; } +QFrame *QtUtils::CreateVerticalLine() +{ + QFrame *l = CreateHorizontalLine(); + l->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Expanding); + return l; +} + int QtUtils::MessageBox(QWidget *parent, QMessageBox::Icon icon, const QString &title, const QString &message, QMessageBox::StandardButtons buttons) { QMessageBox b(parent); diff --git a/app/common/qtutils.h b/app/common/qtutils.h index 2247f89d8..45321c76b 100644 --- a/app/common/qtutils.h +++ b/app/common/qtutils.h @@ -54,6 +54,8 @@ public: static QFrame* CreateHorizontalLine(); + static QFrame* CreateVerticalLine(); + static int MessageBox(QWidget *parent, QMessageBox::Icon icon, const QString& title, const QString& message, QMessageBox::StandardButtons buttons = QMessageBox::Ok); static QDateTime GetCreationDate(const QFileInfo &info); diff --git a/app/common/util.h b/app/common/util.h new file mode 100644 index 000000000..bc1642f81 --- /dev/null +++ b/app/common/util.h @@ -0,0 +1,30 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#ifndef UTIL_H +#define UTIL_H + +template +inline T mid(T a, T b) +{ + return (a + b) * 0.5; +} + +#endif // UTIL_H diff --git a/app/node/CMakeLists.txt b/app/node/CMakeLists.txt index c97d250ca..aa1a090d4 100644 --- a/app/node/CMakeLists.txt +++ b/app/node/CMakeLists.txt @@ -21,6 +21,7 @@ add_subdirectory(distort) add_subdirectory(effect) add_subdirectory(filter) add_subdirectory(generator) +add_subdirectory(gizmo) add_subdirectory(group) add_subdirectory(input) add_subdirectory(math) diff --git a/app/node/distort/cornerpin/cornerpindistortnode.cpp b/app/node/distort/cornerpin/cornerpindistortnode.cpp index 4197f9649..e4429ede7 100644 --- a/app/node/distort/cornerpin/cornerpindistortnode.cpp +++ b/app/node/distort/cornerpin/cornerpindistortnode.cpp @@ -41,6 +41,13 @@ CornerPinDistortNode::CornerPinDistortNode() AddInput(kTopRightInput, NodeValue::kVec2, QVector2D(0.0, 0.0)); AddInput(kBottomRightInput, NodeValue::kVec2, QVector2D(0.0, 0.0)); AddInput(kBottomLeftInput, NodeValue::kVec2, QVector2D(0.0, 0.0)); + + // Initiate gizmos + gizmo_whole_rect_ = AddDraggableGizmo(); + gizmo_resize_handle_[0] = AddDraggableGizmo({NodeKeyframeTrackReference(NodeInput(this, kTopLeftInput), 0), NodeKeyframeTrackReference(NodeInput(this, kTopLeftInput), 1)}); + gizmo_resize_handle_[1] = AddDraggableGizmo({NodeKeyframeTrackReference(NodeInput(this, kTopRightInput), 0), NodeKeyframeTrackReference(NodeInput(this, kTopRightInput), 1)}); + gizmo_resize_handle_[2] = AddDraggableGizmo({NodeKeyframeTrackReference(NodeInput(this, kBottomRightInput), 0), NodeKeyframeTrackReference(NodeInput(this, kBottomRightInput), 1)}); + gizmo_resize_handle_[3] = AddDraggableGizmo({NodeKeyframeTrackReference(NodeInput(this, kBottomLeftInput), 0), NodeKeyframeTrackReference(NodeInput(this, kBottomLeftInput), 1)}); } void CornerPinDistortNode::Retranslate() @@ -127,14 +134,20 @@ QPointF CornerPinDistortNode::ValueToPixel(int value, const NodeValueRow& row, c } } -void CornerPinDistortNode::DrawGizmos(const NodeValueRow &row, const NodeGlobals &globals, QPainter *p) +void CornerPinDistortNode::GizmoDragMove(double x, double y, const Qt::KeyboardModifiers &modifiers) +{ + DraggableGizmo *gizmo = static_cast(sender()); + + if (gizmo != gizmo_whole_rect_) { + gizmo->GetDraggers()[0].Drag(gizmo->GetDraggers()[0].GetStartValue().toDouble() + x); + gizmo->GetDraggers()[1].Drag(gizmo->GetDraggers()[1].GetStartValue().toDouble() + y); + } +} + +void CornerPinDistortNode::UpdateGizmoPositions(const NodeValueRow &row, const NodeGlobals &globals) { const QVector2D &resolution = globals.resolution(); - const double handle_radius = GetGizmoHandleRadius(p->transform()); - - p->setPen(QPen(Qt::white, 0)); - QPointF top_left = ValueToPixel(0, row, resolution); QPointF top_right = ValueToPixel(1, row, resolution); QPointF bottom_right = ValueToPixel(2, row, resolution); @@ -147,71 +160,13 @@ void CornerPinDistortNode::DrawGizmos(const NodeValueRow &row, const NodeGlobals SetInputProperty(kBottomLeftInput, QStringLiteral("offset"), QVector2D(0.0, resolution.y())); // Draw bounding box - p->drawLine(QLineF(top_left, top_right)); - p->drawLine(QLineF(top_right, bottom_right)); - p->drawLine(QLineF(bottom_right, bottom_left)); - p->drawLine(QLineF(bottom_left, top_left)); + gizmo_whole_rect_->SetPolygon(QPolygonF({top_left, top_right, bottom_right, bottom_left, top_left})); // Create handles - gizmo_resize_handle_[0] = CreateGizmoHandleRect(top_left, handle_radius); - gizmo_resize_handle_[1] = CreateGizmoHandleRect(top_right, handle_radius); - gizmo_resize_handle_[2] = CreateGizmoHandleRect(bottom_right, handle_radius); - gizmo_resize_handle_[3] = CreateGizmoHandleRect(bottom_left, handle_radius); - - // Draw handles - DrawAndExpandGizmoHandles(p, handle_radius, gizmo_resize_handle_, kGizmoCornerCount); -} - -bool CornerPinDistortNode::GizmoPress(const NodeValueRow &row, const NodeGlobals &globals, const QPointF &p) -{ - bool gizmo_active[kGizmoCornerCount] = {false}; - - for (int i = 0; i < kGizmoCornerCount; i++) { - gizmo_active[i] = gizmo_resize_handle_[i].contains(p); - - if (gizmo_active[i]) { - gizmo_drag_start_ = p; - gizmo_res_ = globals.resolution(); - gizmo_drag_ = i; - return true; - } - } - - return false; -} - -void CornerPinDistortNode::GizmoMove(const QPointF &p, const rational &time, const Qt::KeyboardModifiers &modifiers) -{ - if (gizmo_dragger_.isEmpty()) { - gizmo_dragger_.resize(2); - if (gizmo_drag_ == 0) { - gizmo_dragger_[0].Start(NodeKeyframeTrackReference(NodeInput(this, kTopLeftInput), 0), time); - gizmo_dragger_[1].Start(NodeKeyframeTrackReference(NodeInput(this, kTopLeftInput), 1), time); - } - if (gizmo_drag_ == 1) { - gizmo_dragger_[0].Start(NodeKeyframeTrackReference(NodeInput(this, kTopRightInput), 0), time); - gizmo_dragger_[1].Start(NodeKeyframeTrackReference(NodeInput(this, kTopRightInput), 1), time); - } - if (gizmo_drag_ == 2) { - gizmo_dragger_[0].Start(NodeKeyframeTrackReference(NodeInput(this, kBottomRightInput), 0), time); - gizmo_dragger_[1].Start(NodeKeyframeTrackReference(NodeInput(this, kBottomRightInput), 1), time); - } - if (gizmo_drag_ == 3) { - gizmo_dragger_[0].Start(NodeKeyframeTrackReference(NodeInput(this, kBottomLeftInput), 0), time); - gizmo_dragger_[1].Start(NodeKeyframeTrackReference(NodeInput(this, kBottomLeftInput), 1), time); - } - } - - QPointF diff = p - gizmo_drag_start_; - gizmo_dragger_[0].Drag(gizmo_dragger_[0].GetStartValue().toDouble() + diff.x()); - gizmo_dragger_[1].Drag(gizmo_dragger_[1].GetStartValue().toDouble() + diff.y()); -} - -void CornerPinDistortNode::GizmoRelease(MultiUndoCommand *command) { - for (NodeInputDragger &i : gizmo_dragger_) { - i.End(command); - } - gizmo_dragger_.clear(); + gizmo_resize_handle_[0]->SetPoint(top_left); + gizmo_resize_handle_[1]->SetPoint(top_right); + gizmo_resize_handle_[2]->SetPoint(bottom_right); + gizmo_resize_handle_[3]->SetPoint(bottom_left); } } diff --git a/app/node/distort/cornerpin/cornerpindistortnode.h b/app/node/distort/cornerpin/cornerpindistortnode.h index 6261d7e1a..86d80952f 100644 --- a/app/node/distort/cornerpin/cornerpindistortnode.h +++ b/app/node/distort/cornerpin/cornerpindistortnode.h @@ -23,6 +23,8 @@ #include +#include "node/gizmo/point.h" +#include "node/gizmo/polygon.h" #include "node/inputdragger.h" #include "node/node.h" @@ -66,16 +68,7 @@ public: virtual ShaderCode GetShaderCode(const QString &shader_id) const override; - virtual bool HasGizmos() const override - { - return true; - } - - virtual void DrawGizmos(const NodeValueRow& row, const NodeGlobals &globals, QPainter *p) override; - - virtual bool GizmoPress(const NodeValueRow& row, const NodeGlobals &globals, const QPointF &p) override; - virtual void GizmoMove(const QPointF &p, const rational &time, const Qt::KeyboardModifiers &modifiers) override; - virtual void GizmoRelease(MultiUndoCommand *command) override; + virtual void UpdateGizmoPositions(const NodeValueRow &row, const NodeGlobals &globals) override; /** * @brief Convenience function - converts the 2D slider values from being @@ -90,16 +83,14 @@ public: static const QString kBottomRightInput; static const QString kBottomLeftInput; +protected slots: + virtual void GizmoDragMove(double x, double y, const Qt::KeyboardModifiers &modifiers) override; + private: // Gizmo variables static const int kGizmoCornerCount = 4; - QRectF gizmo_resize_handle_[kGizmoCornerCount]; - QRectF gizmo_whole_rect_; - - int gizmo_drag_; - QVector gizmo_dragger_; - QPointF gizmo_drag_start_; - QVector2D gizmo_res_; + PointGizmo *gizmo_resize_handle_[kGizmoCornerCount]; + PolygonGizmo *gizmo_whole_rect_; }; diff --git a/app/node/distort/crop/cropdistortnode.cpp b/app/node/distort/crop/cropdistortnode.cpp index 3307502e3..b204c7eda 100644 --- a/app/node/distort/crop/cropdistortnode.cpp +++ b/app/node/distort/crop/cropdistortnode.cpp @@ -20,7 +20,7 @@ #include "cropdistortnode.h" -#include "common/lerp.h" +#include "common/util.h" #include "core.h" #include "widget/slider/floatslider.h" @@ -44,6 +44,18 @@ CropDistortNode::CropDistortNode() AddInput(kFeatherInput, NodeValue::kFloat, 0.0); SetInputProperty(kFeatherInput, QStringLiteral("min"), 0.0); + + // Initiate gizmos + poly_gizmo_ = AddDraggableGizmo({kLeftInput, kTopInput, kRightInput, kBottomInput}); + + point_gizmo_[kGizmoScaleTopLeft] = AddDraggableGizmo({kLeftInput, kTopInput}); + point_gizmo_[kGizmoScaleTopCenter] = AddDraggableGizmo({kTopInput}); + point_gizmo_[kGizmoScaleTopRight] = AddDraggableGizmo({kRightInput, kTopInput}); + point_gizmo_[kGizmoScaleBottomLeft] = AddDraggableGizmo({kLeftInput, kBottomInput}); + point_gizmo_[kGizmoScaleBottomCenter] = AddDraggableGizmo({kBottomInput}); + point_gizmo_[kGizmoScaleBottomRight] = AddDraggableGizmo({kRightInput, kBottomInput}); + point_gizmo_[kGizmoScaleCenterLeft] = AddDraggableGizmo({kLeftInput}); + point_gizmo_[kGizmoScaleCenterRight] = AddDraggableGizmo({kRightInput}); } void CropDistortNode::Retranslate() @@ -81,164 +93,50 @@ ShaderCode CropDistortNode::GetShaderCode(const QString &shader_id) const return ShaderCode(FileFunctions::ReadFileAsString(QStringLiteral(":/shaders/crop.frag"))); } -void CropDistortNode::DrawGizmos(const NodeValueRow &row, const NodeGlobals &globals, QPainter *p) +void CropDistortNode::UpdateGizmoPositions(const NodeValueRow &row, const NodeGlobals &globals) { const QVector2D &resolution = globals.resolution(); - const double handle_radius = GetGizmoHandleRadius(p->transform()); - - p->setPen(QPen(Qt::white, 0)); - double left_pt = resolution.x() * row[kLeftInput].data().toDouble(); double top_pt = resolution.y() * row[kTopInput].data().toDouble(); double right_pt = resolution.x() * (1.0 - row[kRightInput].data().toDouble()); double bottom_pt = resolution.y() * (1.0 - row[kBottomInput].data().toDouble()); - double center_x_pt = lerp(left_pt, right_pt, 0.5); - double center_y_pt = lerp(top_pt, bottom_pt, 0.5); + double center_x_pt = mid(left_pt, right_pt); + double center_y_pt = mid(top_pt, bottom_pt); - gizmo_whole_rect_ = QRectF(left_pt, top_pt, right_pt - left_pt, bottom_pt - top_pt); - p->drawRect(gizmo_whole_rect_); + point_gizmo_[kGizmoScaleTopLeft]->SetPoint(QPointF(left_pt, top_pt)); + point_gizmo_[kGizmoScaleTopCenter]->SetPoint(QPointF(center_x_pt, top_pt)); + point_gizmo_[kGizmoScaleTopRight]->SetPoint(QPointF(right_pt, top_pt)); + point_gizmo_[kGizmoScaleBottomLeft]->SetPoint(QPointF(left_pt, bottom_pt)); + point_gizmo_[kGizmoScaleBottomCenter]->SetPoint(QPointF(center_x_pt, bottom_pt)); + point_gizmo_[kGizmoScaleBottomRight]->SetPoint(QPointF(right_pt, bottom_pt)); + point_gizmo_[kGizmoScaleCenterLeft]->SetPoint(QPointF(left_pt, center_y_pt)); + point_gizmo_[kGizmoScaleCenterRight]->SetPoint(QPointF(right_pt, center_y_pt)); - gizmo_resize_handle_[kGizmoScaleTopLeft] = CreateGizmoHandleRect(QPointF(left_pt, top_pt), handle_radius); - gizmo_resize_handle_[kGizmoScaleTopCenter] = CreateGizmoHandleRect(QPointF(center_x_pt, top_pt), handle_radius); - gizmo_resize_handle_[kGizmoScaleTopRight] = CreateGizmoHandleRect(QPointF(right_pt, top_pt), handle_radius); - gizmo_resize_handle_[kGizmoScaleBottomLeft] = CreateGizmoHandleRect(QPointF(left_pt, bottom_pt), handle_radius); - gizmo_resize_handle_[kGizmoScaleBottomCenter] = CreateGizmoHandleRect(QPointF(center_x_pt, bottom_pt), handle_radius); - gizmo_resize_handle_[kGizmoScaleBottomRight] = CreateGizmoHandleRect(QPointF(right_pt, bottom_pt), handle_radius); - gizmo_resize_handle_[kGizmoScaleCenterLeft] = CreateGizmoHandleRect(QPointF(left_pt, center_y_pt), handle_radius); - gizmo_resize_handle_[kGizmoScaleCenterRight] = CreateGizmoHandleRect(QPointF(right_pt, center_y_pt), handle_radius); - - DrawAndExpandGizmoHandles(p, handle_radius, gizmo_resize_handle_, kGizmoScaleCount); + poly_gizmo_->SetPolygon(QRectF(left_pt, top_pt, right_pt - left_pt, bottom_pt - top_pt)); } -bool CropDistortNode::GizmoPress(const NodeValueRow &row, const NodeGlobals &globals, const QPointF &p) +void CropDistortNode::GizmoDragMove(double x_diff, double y_diff, const Qt::KeyboardModifiers &modifiers) { - bool found_handle = false; + DraggableGizmo *gizmo = static_cast(sender()); - bool gizmo_active[kGizmoScaleCount] = {false}; + QVector2D res = gizmo->GetGlobals().resolution(); + x_diff /= res.x(); + y_diff /= res.y(); - for (int i=0; iGetDraggers().size(); j++) { + NodeInputDragger& i = gizmo->GetDraggers()[j]; + double s = i.GetStartValue().toDouble(); + if (i.GetInput().input().input() == kLeftInput) { + i.Drag(s + x_diff); + } else if (i.GetInput().input().input() == kTopInput) { + i.Drag(s + y_diff); + } else if (i.GetInput().input().input() == kRightInput) { + i.Drag(s - x_diff); + } else if (i.GetInput().input().input() == kBottomInput) { + i.Drag(s - y_diff); } } - - bool in_rect = found_handle ? false : gizmo_whole_rect_.contains(p); - - gizmo_drag_ = kGizmoNone; - - // Drag handle - if (gizmo_active[kGizmoScaleTopLeft] - || gizmo_active[kGizmoScaleCenterLeft] - || gizmo_active[kGizmoScaleBottomLeft] - || in_rect) { - gizmo_drag_ |= kGizmoLeft; - - gizmo_start_.append(row[kLeftInput].data()); - } - - if (gizmo_active[kGizmoScaleTopLeft] - || gizmo_active[kGizmoScaleTopCenter] - || gizmo_active[kGizmoScaleTopRight] - || in_rect) { - gizmo_drag_ |= kGizmoTop; - - gizmo_start_.append(row[kTopInput].data()); - } - - if (gizmo_active[kGizmoScaleTopRight] - || gizmo_active[kGizmoScaleCenterRight] - || gizmo_active[kGizmoScaleBottomRight] - || in_rect) { - gizmo_drag_ |= kGizmoRight; - - gizmo_start_.append(row[kRightInput].data()); - } - - if (gizmo_active[kGizmoScaleBottomLeft] - || gizmo_active[kGizmoScaleBottomCenter] - || gizmo_active[kGizmoScaleBottomRight] - || in_rect) { - gizmo_drag_ |= kGizmoBottom; - - gizmo_start_.append(row[kBottomInput].data()); - } - - if (gizmo_drag_ > kGizmoNone) { - gizmo_res_ = globals.resolution(); - gizmo_drag_start_ = p; - - return true; - } - - return false; -} - -void CropDistortNode::GizmoMove(const QPointF &p, const rational &time, const Qt::KeyboardModifiers &modifiers) -{ - if (gizmo_dragger_.isEmpty()) { - gizmo_dragger_.resize(gizmo_start_.size()); - - int counter = 0; - - if (gizmo_drag_ & kGizmoLeft) { - gizmo_dragger_[counter].Start(NodeInput(this, kLeftInput), time); - counter++; - } - - if (gizmo_drag_ & kGizmoTop) { - gizmo_dragger_[counter].Start(NodeInput(this, kTopInput), time); - counter++; - } - - if (gizmo_drag_ & kGizmoRight) { - gizmo_dragger_[counter].Start(NodeInput(this, kRightInput), time); - counter++; - } - - if (gizmo_drag_ & kGizmoBottom) { - gizmo_dragger_[counter].Start(NodeInput(this, kBottomInput), time); - counter++; - } - } - - int counter = 0; - - double x_diff = (p.x() - gizmo_drag_start_.x()) / gizmo_res_.x(); - double y_diff = (p.y() - gizmo_drag_start_.y()) / gizmo_res_.y(); - - if (gizmo_drag_ & kGizmoLeft) { - gizmo_dragger_[counter].Drag(gizmo_start_[counter].toDouble() + x_diff); - counter++; - } - - if (gizmo_drag_ & kGizmoTop) { - gizmo_dragger_[counter].Drag(gizmo_start_[counter].toDouble() + y_diff); - counter++; - } - - if (gizmo_drag_ & kGizmoRight) { - gizmo_dragger_[counter].Drag(gizmo_start_[counter].toDouble() - x_diff); - counter++; - } - - if (gizmo_drag_ & kGizmoBottom) { - gizmo_dragger_[counter].Drag(gizmo_start_[counter].toDouble() - y_diff); - counter++; - } -} - -void CropDistortNode::GizmoRelease(MultiUndoCommand *command) -{ - for (NodeInputDragger& i : gizmo_dragger_) { - i.End(command); - } - gizmo_dragger_.clear(); - - gizmo_start_.clear(); } void CropDistortNode::CreateCropSideInput(const QString &id) diff --git a/app/node/distort/crop/cropdistortnode.h b/app/node/distort/crop/cropdistortnode.h index 24f2c0b50..d2916a24d 100644 --- a/app/node/distort/crop/cropdistortnode.h +++ b/app/node/distort/crop/cropdistortnode.h @@ -23,6 +23,8 @@ #include +#include "node/gizmo/point.h" +#include "node/gizmo/polygon.h" #include "node/inputdragger.h" #include "node/node.h" @@ -67,16 +69,7 @@ public: virtual ShaderCode GetShaderCode(const QString &shader_id) const override; - virtual bool HasGizmos() const override - { - return true; - } - - virtual void DrawGizmos(const NodeValueRow& row, const NodeGlobals &globals, QPainter *p) override; - - virtual bool GizmoPress(const NodeValueRow& row, const NodeGlobals &globals, const QPointF &p) override; - virtual void GizmoMove(const QPointF &p, const rational &time, const Qt::KeyboardModifiers &modifiers) override; - virtual void GizmoRelease(MultiUndoCommand *command) override; + virtual void UpdateGizmoPositions(const NodeValueRow &row, const NodeGlobals &globals) override; static const QString kTextureInput; static const QString kLeftInput; @@ -85,27 +78,15 @@ public: static const QString kBottomInput; static const QString kFeatherInput; +protected slots: + virtual void GizmoDragMove(double delta_x, double delta_y, const Qt::KeyboardModifiers &modifiers) override; + private: void CreateCropSideInput(const QString& id); // Gizmo variables - QRectF gizmo_resize_handle_[kGizmoScaleCount]; - QRectF gizmo_whole_rect_; - - enum GizmoDragDirection { - kGizmoNone = 0x0, - kGizmoLeft = 0x1, - kGizmoTop = 0x2, - kGizmoRight = 0x4, - kGizmoBottom = 0x8, - kGizmoRectangle = 0xFF - }; - - int gizmo_drag_; - QVector gizmo_dragger_; - QVector gizmo_start_; - QPointF gizmo_drag_start_; - QVector2D gizmo_res_; + PointGizmo *point_gizmo_[kGizmoScaleCount]; + PolygonGizmo *poly_gizmo_; }; diff --git a/app/node/distort/transform/transformdistortnode.cpp b/app/node/distort/transform/transformdistortnode.cpp index 260445b66..59ec09bc2 100644 --- a/app/node/distort/transform/transformdistortnode.cpp +++ b/app/node/distort/transform/transformdistortnode.cpp @@ -41,6 +41,29 @@ TransformDistortNode::TransformDistortNode() AddInput(kInterpolationInput, NodeValue::kCombo, 2); PrependInput(kTextureInput, NodeValue::kTexture, InputFlags(kInputFlagNotKeyframable)); + + // Initiate gizmos + rotation_gizmo_ = AddDraggableGizmo(); + rotation_gizmo_->AddInput(NodeInput(this, kRotationInput)); + rotation_gizmo_->SetDragValueBehavior(ScreenGizmo::kAbsolute); + + poly_gizmo_ = AddDraggableGizmo(); + poly_gizmo_->AddInput(NodeKeyframeTrackReference(NodeInput(this, kPositionInput), 0)); + poly_gizmo_->AddInput(NodeKeyframeTrackReference(NodeInput(this, kPositionInput), 1)); + + anchor_gizmo_ = AddDraggableGizmo(); + anchor_gizmo_->SetShape(PointGizmo::kAnchorPoint); + anchor_gizmo_->AddInput(NodeKeyframeTrackReference(NodeInput(this, kAnchorInput), 0)); + anchor_gizmo_->AddInput(NodeKeyframeTrackReference(NodeInput(this, kAnchorInput), 1)); + anchor_gizmo_->AddInput(NodeKeyframeTrackReference(NodeInput(this, kPositionInput), 0)); + anchor_gizmo_->AddInput(NodeKeyframeTrackReference(NodeInput(this, kPositionInput), 1)); + + for (int i=0; i(); + point_gizmo_[i]->AddInput(NodeKeyframeTrackReference(NodeInput(this, kScaleInput), 0)); + point_gizmo_[i]->AddInput(NodeKeyframeTrackReference(NodeInput(this, kScaleInput), 1)); + point_gizmo_[i]->SetDragValueBehavior(PointGizmo::kAbsolute); + } } void TransformDistortNode::Retranslate() @@ -101,218 +124,6 @@ ShaderCode TransformDistortNode::GetShaderCode(const QString &shader_id) const return ShaderCode(); } -bool TransformDistortNode::GizmoPress(const NodeValueRow &row, const NodeGlobals &globals, const QPointF &p) -{ - TexturePtr tex = row[kTextureInput].data().value(); - if (!tex) { - return false; - } - - // Store cursor position - gizmo_drag_pos_ = p; - - // Check scaling - bool gizmo_scale_active[kGizmoScaleCount] = {false}; - bool scaling = false; - - for (int i=0; iparams(); - QVector2D texture_sz(texture_params.square_pixel_width(), texture_params.height()); - gizmo_scale_anchor_ = row[kAnchorInput].data().value() + texture_sz/2; - - if (gizmo_scale_active[kGizmoScaleTopRight] - || gizmo_scale_active[kGizmoScaleBottomRight] - || gizmo_scale_active[kGizmoScaleCenterRight]) { - // Right handles, flip X axis - gizmo_scale_anchor_.setX(texture_sz.x() - gizmo_scale_anchor_.x()); - } - - if (gizmo_scale_active[kGizmoScaleBottomLeft] - || gizmo_scale_active[kGizmoScaleBottomRight] - || gizmo_scale_active[kGizmoScaleBottomCenter]) { - // Bottom handles, flip Y axis - gizmo_scale_anchor_.setY(texture_sz.y() - gizmo_scale_anchor_.y()); - } - - // Store current matrix - gizmo_matrix_ = GenerateMatrix(row, false, true, true, true); - - return true; - - } else if (gizmo_anchor_pt_.contains(p)) { - - // Dragging the anchor point specifically - gizmo_start_ = {row[kAnchorInput].data(), - row[kPositionInput].data()}; - gizmo_drag_ = kAnchorInput; - - // Store current matrix - gizmo_matrix_ = GenerateMatrix(row, false, true, true, false); - - return true; - - } else if (gizmo_rect_.containsPoint(p, Qt::OddEvenFill)) { - - // Dragging the main rectangle - gizmo_start_ = {row[kPositionInput].data()}; - gizmo_drag_ = kPositionInput; - - return true; - - } else { - - // Dragging rotation - gizmo_start_ = {row[kRotationInput].data()}; - gizmo_drag_ = kRotationInput; - gizmo_start_angle_ = qAtan2(gizmo_drag_pos_.y() - gizmo_anchor_pt_.center().y(), - gizmo_drag_pos_.x() - gizmo_anchor_pt_.center().x()); - - return true; - - } - - return false; -} - -void TransformDistortNode::GizmoMove(const QPointF &p, const rational &time, const Qt::KeyboardModifiers &modifiers) -{ - QPointF movement = (p - gizmo_drag_pos_); - QVector2D vec_movement(movement); - - if (gizmo_drag_ == kAnchorInput) { - - // Dragging the anchor point around - if (gizmo_dragger_.isEmpty()) { - gizmo_dragger_.resize(4); - gizmo_dragger_[0].Start(NodeKeyframeTrackReference(NodeInput(this, kAnchorInput), 0), time); - gizmo_dragger_[1].Start(NodeKeyframeTrackReference(NodeInput(this, kAnchorInput), 1), time); - gizmo_dragger_[2].Start(NodeKeyframeTrackReference(NodeInput(this, kPositionInput), 0), time); - gizmo_dragger_[3].Start(NodeKeyframeTrackReference(NodeInput(this, kPositionInput), 1), time); - } - - QVector2D inverted_movement(gizmo_matrix_.toTransform().inverted().map(movement)); - QVector2D anchor_cont = gizmo_start_[0].value() + inverted_movement; - QVector2D position_cont = gizmo_start_[1].value() + vec_movement; - - gizmo_dragger_[0].Drag(anchor_cont.x()); - gizmo_dragger_[1].Drag(anchor_cont.y()); - gizmo_dragger_[2].Drag(position_cont.x()); - gizmo_dragger_[3].Drag(position_cont.y()); - - } else if (gizmo_drag_ == kPositionInput) { - - // Dragging the main rectangle around - if (gizmo_dragger_.isEmpty()) { - gizmo_dragger_.resize(2); - gizmo_dragger_[0].Start(NodeKeyframeTrackReference(NodeInput(this, kPositionInput), 0), time); - gizmo_dragger_[1].Start(NodeKeyframeTrackReference(NodeInput(this, kPositionInput), 1), time); - } - - QVector2D position_cont = gizmo_start_[0].value() + vec_movement; - - gizmo_dragger_[0].Drag(position_cont.x()); - gizmo_dragger_[1].Drag(position_cont.y()); - - } else if (gizmo_drag_ == kScaleInput) { - - // Dragging a resize handle - if (gizmo_dragger_.isEmpty()) { - if (gizmo_scale_uniform_ || gizmo_scale_axes_ == kGizmoScaleXOnly) { - gizmo_dragger_.resize(1); - gizmo_dragger_[0].Start(NodeKeyframeTrackReference(NodeInput(this, kScaleInput), 0), time); - } else if (gizmo_scale_axes_ == kGizmoScaleYOnly) { - gizmo_dragger_.resize(1); - gizmo_dragger_[0].Start(NodeKeyframeTrackReference(NodeInput(this, kScaleInput), 1), time); - } else { - gizmo_dragger_.resize(2); - gizmo_dragger_[0].Start(NodeKeyframeTrackReference(NodeInput(this, kScaleInput), 0), time); - gizmo_dragger_[1].Start(NodeKeyframeTrackReference(NodeInput(this, kScaleInput), 1), time); - } - } - - QPointF mouse_relative = gizmo_matrix_.toTransform().inverted().map(QPointF(p - gizmo_anchor_pt_.center())); - - double x_scaled_movement = qAbs(mouse_relative.x() / gizmo_scale_anchor_.x()); - double y_scaled_movement = qAbs(mouse_relative.y() / gizmo_scale_anchor_.y()); - - switch (gizmo_scale_axes_) { - case kGizmoScaleXOnly: - gizmo_dragger_[0].Drag(x_scaled_movement); - break; - case kGizmoScaleYOnly: - gizmo_dragger_[0].Drag(y_scaled_movement); - break; - case kGizmoScaleBoth: - if (gizmo_scale_uniform_) { - double distance = std::hypot(mouse_relative.x(), mouse_relative.y()); - double texture_diag = std::hypot(gizmo_scale_anchor_.x(), gizmo_scale_anchor_.y()); - - gizmo_dragger_[0].Drag(qAbs(distance / texture_diag)); - } else { - gizmo_dragger_[0].Drag(x_scaled_movement); - gizmo_dragger_[1].Drag(y_scaled_movement); - } - break; - } - - } else if (gizmo_drag_ == kRotationInput) { - - // Dragging outside the rectangle to rotate - if (gizmo_dragger_.isEmpty()) { - gizmo_dragger_.resize(1); - gizmo_dragger_[0].Start(NodeInput(this, kRotationInput), time); - } - - double current_angle = qAtan2(p.y() - gizmo_anchor_pt_.center().y(), - p.x() - gizmo_anchor_pt_.center().x()); - - double rotation_difference = (current_angle - gizmo_start_angle_) * 57.2958; - - double rotation_cont = gizmo_start_[0].toDouble() + rotation_difference; - - gizmo_dragger_[0].Drag(rotation_cont); - - } -} - -void TransformDistortNode::GizmoRelease(MultiUndoCommand *command) -{ - for (NodeInputDragger& i : gizmo_dragger_) { - i.End(command); - } - gizmo_dragger_.clear(); - - gizmo_start_.clear(); - - gizmo_drag_ = nullptr; -} - void TransformDistortNode::Hash(QCryptographicHash &hash, const NodeGlobals &globals, const VideoParams &video_params) const { // If not connected to output, this will produce nothing @@ -342,6 +153,168 @@ void TransformDistortNode::Hash(QCryptographicHash &hash, const NodeGlobals &glo Node::Hash(out, GetValueHintForInput(kTextureInput), hash, globals, video_params); } +void TransformDistortNode::GizmoDragStart(const NodeValueRow &row, double x, double y, const rational &time) +{ + DraggableGizmo *gizmo = static_cast(sender()); + + if (gizmo == anchor_gizmo_) { + + gizmo_inverted_transform_ = GenerateMatrix(row, false, true, true, false).toTransform().inverted(); + + } else if (IsAScaleGizmo(gizmo)) { + + // Dragging scale handle + TexturePtr tex = row[kTextureInput].data().value(); + if (!tex) { + return; + } + + gizmo_scale_uniform_ = row[kUniformScaleInput].data().toBool(); + gizmo_anchor_pt_ = (row[kAnchorInput].data().value() + gizmo->GetGlobals().resolution()/2).toPointF(); + + if (gizmo == point_gizmo_[kGizmoScaleTopLeft] || gizmo == point_gizmo_[kGizmoScaleTopRight] + || gizmo == point_gizmo_[kGizmoScaleBottomLeft] || gizmo == point_gizmo_[kGizmoScaleBottomRight]) { + gizmo_scale_axes_ = kGizmoScaleBoth; + } else if (gizmo == point_gizmo_[kGizmoScaleCenterLeft] || gizmo == point_gizmo_[kGizmoScaleCenterRight]) { + gizmo_scale_axes_ = kGizmoScaleXOnly; + } else { + gizmo_scale_axes_ = kGizmoScaleYOnly; + } + + // Store texture size + VideoParams texture_params = tex->params(); + QVector2D texture_sz(texture_params.square_pixel_width(), texture_params.height()); + gizmo_scale_anchor_ = row[kAnchorInput].data().value() + texture_sz/2; + + if (gizmo == point_gizmo_[kGizmoScaleTopRight] + || gizmo == point_gizmo_[kGizmoScaleBottomRight] + || gizmo == point_gizmo_[kGizmoScaleCenterRight]) { + // Right handles, flip X axis + gizmo_scale_anchor_.setX(texture_sz.x() - gizmo_scale_anchor_.x()); + } + + if (gizmo == point_gizmo_[kGizmoScaleBottomLeft] + || gizmo == point_gizmo_[kGizmoScaleBottomRight] + || gizmo == point_gizmo_[kGizmoScaleBottomCenter]) { + // Bottom handles, flip Y axis + gizmo_scale_anchor_.setY(texture_sz.y() - gizmo_scale_anchor_.y()); + } + + // Store current matrix + gizmo_inverted_transform_ = GenerateMatrix(row, false, true, true, true).toTransform().inverted(); + + } else if (gizmo == rotation_gizmo_) { + + gizmo_anchor_pt_ = (row[kAnchorInput].data().value() + gizmo->GetGlobals().resolution()/2).toPointF(); + gizmo_start_angle_ = qAtan2(y - gizmo_anchor_pt_.y(), x - gizmo_anchor_pt_.x()); + gizmo_last_angle_ = gizmo_start_angle_; + gizmo_last_alt_angle_ = qAtan2(x - gizmo_anchor_pt_.x(), y - gizmo_anchor_pt_.y()); + gizmo_rotate_wrap_ = 0; + gizmo_rotate_last_dir_ = kDirectionNone; + + } +} + +void TransformDistortNode::GizmoDragMove(double x, double y, const Qt::KeyboardModifiers &modifiers) +{ + DraggableGizmo *gizmo = static_cast(sender()); + + if (gizmo == poly_gizmo_) { + + NodeInputDragger &x_drag = gizmo->GetDraggers()[0]; + NodeInputDragger &y_drag = gizmo->GetDraggers()[1]; + + x_drag.Drag(x_drag.GetStartValue().toDouble() + x); + y_drag.Drag(y_drag.GetStartValue().toDouble() + y); + + } else if (gizmo == anchor_gizmo_) { + + NodeInputDragger &x_anchor_drag = gizmo->GetDraggers()[0]; + NodeInputDragger &y_anchor_drag = gizmo->GetDraggers()[1]; + NodeInputDragger &x_pos_drag = gizmo->GetDraggers()[2]; + NodeInputDragger &y_pos_drag = gizmo->GetDraggers()[3]; + + QPointF inverted_movement(gizmo_inverted_transform_.map(QPointF(x, y))); + + x_anchor_drag.Drag(x_anchor_drag.GetStartValue().toDouble() + inverted_movement.x()); + y_anchor_drag.Drag(y_anchor_drag.GetStartValue().toDouble() + inverted_movement.y()); + x_pos_drag.Drag(x_pos_drag.GetStartValue().toDouble() + x); + y_pos_drag.Drag(y_pos_drag.GetStartValue().toDouble() + y); + + } else if (gizmo == rotation_gizmo_) { + + double raw_angle = qAtan2(y - gizmo_anchor_pt_.y(), x - gizmo_anchor_pt_.x()); + double alt_angle = qAtan2(x - gizmo_anchor_pt_.x(), y - gizmo_anchor_pt_.y()); + + double current_angle = raw_angle; + + // Detect rotation wrap around + RotationDirection this_dir = GetDirectionFromAngles(gizmo_last_angle_, raw_angle); + RotationDirection alt_dir = GetDirectionFromAngles(gizmo_last_alt_angle_, alt_angle); + + if (gizmo_rotate_last_dir_ != kDirectionNone && this_dir != gizmo_rotate_last_dir_) { + if (alt_dir == gizmo_rotate_last_alt_dir_) { + if ((raw_angle - gizmo_last_angle_) < 0) { + gizmo_rotate_wrap_++; + } else { + gizmo_rotate_wrap_--; + } + + this_dir = gizmo_rotate_last_dir_; + alt_dir = gizmo_rotate_last_alt_dir_; + } + } + + gizmo_rotate_last_dir_ = this_dir; + gizmo_rotate_last_alt_dir_ = alt_dir; + gizmo_last_angle_ = raw_angle; + gizmo_last_alt_angle_ = alt_angle; + + current_angle += M_PI*2*gizmo_rotate_wrap_; + + // Convert radians to degrees + double rotation_difference = (current_angle - gizmo_start_angle_) * 57.2958; + + NodeInputDragger &d = gizmo->GetDraggers()[0]; + d.Drag(d.GetStartValue().toDouble() + rotation_difference); + + } else if (IsAScaleGizmo(gizmo)) { + + QPointF mouse_relative = gizmo_inverted_transform_.map(QPointF(x, y) - gizmo_anchor_pt_); + + double x_scaled_movement = qAbs(mouse_relative.x() / gizmo_scale_anchor_.x()); + double y_scaled_movement = qAbs(mouse_relative.y() / gizmo_scale_anchor_.y()); + + NodeInputDragger &x_drag = gizmo->GetDraggers()[0]; + NodeInputDragger &y_drag = gizmo->GetDraggers()[1]; + + switch (gizmo_scale_axes_) { + case kGizmoScaleXOnly: + x_drag.Drag(x_scaled_movement); + break; + case kGizmoScaleYOnly: + if (gizmo_scale_uniform_) { + x_drag.Drag(y_scaled_movement); + } else { + y_drag.Drag(y_scaled_movement); + } + break; + case kGizmoScaleBoth: + if (gizmo_scale_uniform_) { + double distance = std::hypot(mouse_relative.x(), mouse_relative.y()); + double texture_diag = std::hypot(gizmo_scale_anchor_.x(), gizmo_scale_anchor_.y()); + + x_drag.Drag(qAbs(distance / texture_diag)); + } else { + x_drag.Drag(x_scaled_movement); + y_drag.Drag(y_scaled_movement); + } + break; + } + + } +} + QMatrix4x4 TransformDistortNode::AdjustMatrixByResolutions(const QMatrix4x4 &mat, const QVector2D &sequence_res, const QVector2D &texture_res, AutoScaleType autoscale_type) { // First, create an identity matrix @@ -387,33 +360,13 @@ QMatrix4x4 TransformDistortNode::AdjustMatrixByResolutions(const QMatrix4x4 &mat return adjusted_matrix; } -QPointF TransformDistortNode::CreateScalePoint(double x, double y, const QPointF &half_res, const QMatrix4x4 &mat) -{ - return mat.map(QPointF(x, y)) + half_res; -} - -QMatrix4x4 TransformDistortNode::GenerateAutoScaledMatrix(const QMatrix4x4& generated_matrix, const NodeValueRow& value, const NodeGlobals &globals, const VideoParams& texture_params) const -{ - const QVector2D &sequence_res = globals.resolution(); - QVector2D texture_res(texture_params.square_pixel_width(), texture_params.height()); - AutoScaleType autoscale = static_cast(value[kAutoscaleInput].data().toInt()); - - return AdjustMatrixByResolutions(generated_matrix, - sequence_res, - texture_res, - autoscale); -} - -void TransformDistortNode::DrawGizmos(const NodeValueRow &row, const NodeGlobals &globals, QPainter *p) +void TransformDistortNode::UpdateGizmoPositions(const NodeValueRow &row, const NodeGlobals &globals) { TexturePtr tex = row[kTextureInput].data().value(); if (!tex) { return; } - // 0 pen width is always 1px wide despite any transform - p->setPen(QPen(Qt::white, 0)); - // Get the sequence resolution const QVector2D &sequence_res = globals.resolution(); QVector2D sequence_half_res = sequence_res * 0.5; @@ -441,14 +394,9 @@ void TransformDistortNode::DrawGizmos(const NodeValueRow &row, const NodeGlobals QPointF(-1, 1), QPointF(-1, -1)}; QTransform rectangle_transform = rectangle_matrix.toTransform(); - gizmo_rect_ = rectangle_transform.map(points); - gizmo_rect_.translate(sequence_half_res_pt); - - // Draw rectangle - p->drawPolyline(gizmo_rect_); - - // Get handle size (relative to screen space rather than buffer space) - const double resize_handle_rad = GetGizmoHandleRadius(p->transform()); + QPolygonF r = rectangle_transform.map(points); + r.translate(sequence_half_res_pt); + poly_gizmo_->SetPolygon(r); // Draw anchor point QMatrix4x4 anchor_matrix; @@ -457,32 +405,17 @@ void TransformDistortNode::DrawGizmos(const NodeValueRow &row, const NodeGlobals sequence_res, tex_sz, autoscale); - QPointF anchor_pt = anchor_matrix.toTransform().map(QPointF(0, 0)) + sequence_half_res_pt; - const double anchor_pt_radius = resize_handle_rad * 2; - - gizmo_anchor_pt_ = QRectF(anchor_pt.x() - anchor_pt_radius, - anchor_pt.y() - anchor_pt_radius, - anchor_pt_radius*2, - anchor_pt_radius*2); - - p->drawEllipse(anchor_pt, anchor_pt_radius, anchor_pt_radius); - - p->drawLines({QLineF(anchor_pt.x() - anchor_pt_radius, anchor_pt.y(), - anchor_pt.x() + anchor_pt_radius, anchor_pt.y()), - QLineF(anchor_pt.x(), anchor_pt.y() - anchor_pt_radius, - anchor_pt.x(), anchor_pt.y() + anchor_pt_radius)}); + anchor_gizmo_->SetPoint(anchor_matrix.toTransform().map(QPointF(0, 0)) + sequence_half_res_pt); // Draw scale handles - gizmo_resize_handle_[kGizmoScaleTopLeft] = CreateGizmoHandleRect(CreateScalePoint(-1, -1, sequence_half_res_pt, rectangle_matrix), resize_handle_rad); - gizmo_resize_handle_[kGizmoScaleTopCenter] = CreateGizmoHandleRect(CreateScalePoint( 0, -1, sequence_half_res_pt, rectangle_matrix), resize_handle_rad); - gizmo_resize_handle_[kGizmoScaleTopRight] = CreateGizmoHandleRect(CreateScalePoint( 1, -1, sequence_half_res_pt, rectangle_matrix), resize_handle_rad); - gizmo_resize_handle_[kGizmoScaleBottomLeft] = CreateGizmoHandleRect(CreateScalePoint(-1, 1, sequence_half_res_pt, rectangle_matrix), resize_handle_rad); - gizmo_resize_handle_[kGizmoScaleBottomCenter] = CreateGizmoHandleRect(CreateScalePoint( 0, 1, sequence_half_res_pt, rectangle_matrix), resize_handle_rad); - gizmo_resize_handle_[kGizmoScaleBottomRight] = CreateGizmoHandleRect(CreateScalePoint( 1, 1, sequence_half_res_pt, rectangle_matrix), resize_handle_rad); - gizmo_resize_handle_[kGizmoScaleCenterLeft] = CreateGizmoHandleRect(CreateScalePoint(-1, 0, sequence_half_res_pt, rectangle_matrix), resize_handle_rad); - gizmo_resize_handle_[kGizmoScaleCenterRight] = CreateGizmoHandleRect(CreateScalePoint( 1, 0, sequence_half_res_pt, rectangle_matrix), resize_handle_rad); - - DrawAndExpandGizmoHandles(p, resize_handle_rad, gizmo_resize_handle_, kGizmoScaleCount); + point_gizmo_[kGizmoScaleTopLeft]->SetPoint(CreateScalePoint(-1, -1, sequence_half_res_pt, rectangle_matrix)); + point_gizmo_[kGizmoScaleTopCenter]->SetPoint(CreateScalePoint( 0, -1, sequence_half_res_pt, rectangle_matrix)); + point_gizmo_[kGizmoScaleTopRight]->SetPoint(CreateScalePoint( 1, -1, sequence_half_res_pt, rectangle_matrix)); + point_gizmo_[kGizmoScaleBottomLeft]->SetPoint(CreateScalePoint(-1, 1, sequence_half_res_pt, rectangle_matrix)); + point_gizmo_[kGizmoScaleBottomCenter]->SetPoint(CreateScalePoint( 0, 1, sequence_half_res_pt, rectangle_matrix)); + point_gizmo_[kGizmoScaleBottomRight]->SetPoint(CreateScalePoint( 1, 1, sequence_half_res_pt, rectangle_matrix)); + point_gizmo_[kGizmoScaleCenterLeft]->SetPoint(CreateScalePoint(-1, 0, sequence_half_res_pt, rectangle_matrix)); + point_gizmo_[kGizmoScaleCenterRight]->SetPoint(CreateScalePoint( 1, 0, sequence_half_res_pt, rectangle_matrix)); // Use offsets to make the appearance of values that start in the top left, even though we // really anchor around the center @@ -490,4 +423,37 @@ void TransformDistortNode::DrawGizmos(const NodeValueRow &row, const NodeGlobals SetInputProperty(kAnchorInput, QStringLiteral("offset"), tex_sz * 0.5); } +QPointF TransformDistortNode::CreateScalePoint(double x, double y, const QPointF &half_res, const QMatrix4x4 &mat) +{ + return mat.map(QPointF(x, y)) + half_res; +} + +QMatrix4x4 TransformDistortNode::GenerateAutoScaledMatrix(const QMatrix4x4& generated_matrix, const NodeValueRow& value, const NodeGlobals &globals, const VideoParams& texture_params) const +{ + const QVector2D &sequence_res = globals.resolution(); + QVector2D texture_res(texture_params.square_pixel_width(), texture_params.height()); + AutoScaleType autoscale = static_cast(value[kAutoscaleInput].data().toInt()); + + return AdjustMatrixByResolutions(generated_matrix, + sequence_res, + texture_res, + autoscale); +} + +bool TransformDistortNode::IsAScaleGizmo(NodeGizmo *g) const +{ + for (int i=0; i last) ? kDirectionPositive : kDirectionNegative; +} + } diff --git a/app/node/distort/transform/transformdistortnode.h b/app/node/distort/transform/transformdistortnode.h index 6bfe5e2f3..a2ca55919 100644 --- a/app/node/distort/transform/transformdistortnode.h +++ b/app/node/distort/transform/transformdistortnode.h @@ -22,6 +22,9 @@ #define TRANSFORMDISTORTNODE_H #include "node/generator/matrix/matrix.h" +#include "node/gizmo/point.h" +#include "node/gizmo/polygon.h" +#include "node/gizmo/screen.h" namespace olive { @@ -69,17 +72,6 @@ public: virtual ShaderCode GetShaderCode(const QString& shader_id) const override; - virtual bool HasGizmos() const override - { - return true; - } - - virtual void DrawGizmos(const NodeValueRow &row, const NodeGlobals &globals, QPainter *p) override; - - virtual bool GizmoPress(const NodeValueRow &row, const NodeGlobals &globals, const QPointF &p) override; - virtual void GizmoMove(const QPointF &p, const rational &time, const Qt::KeyboardModifiers &modifiers) override; - virtual void GizmoRelease(MultiUndoCommand *command) override; - enum AutoScaleType { kAutoScaleNone, kAutoScaleFit, @@ -92,6 +84,8 @@ public: const QVector2D& texture_res, AutoScaleType autoscale_type = kAutoScaleNone); + virtual void UpdateGizmoPositions(const NodeValueRow &row, const NodeGlobals &globals) override; + static const QString kTextureInput; static const QString kAutoscaleInput; static const QString kInterpolationInput; @@ -99,18 +93,36 @@ public: protected: virtual void Hash(QCryptographicHash& hash, const NodeGlobals &globals, const VideoParams& video_params) const override; +protected slots: + virtual void GizmoDragStart(const olive::NodeValueRow &row, double x, double y, const olive::rational &time) override; + + virtual void GizmoDragMove(double x, double y, const Qt::KeyboardModifiers &modifiers) override; + private: static QPointF CreateScalePoint(double x, double y, const QPointF& half_res, const QMatrix4x4& mat); QMatrix4x4 GenerateAutoScaledMatrix(const QMatrix4x4 &generated_matrix, const NodeValueRow &db, const NodeGlobals &globals, const VideoParams &texture_params) const; + bool IsAScaleGizmo(NodeGizmo *g) const; + // Gizmo variables - QString gizmo_drag_; - QVector gizmo_start_; - QVector gizmo_dragger_; - QPointF gizmo_drag_pos_; double gizmo_start_angle_; + QTransform gizmo_inverted_transform_; + QPointF gizmo_anchor_pt_; bool gizmo_scale_uniform_; + double gizmo_last_angle_; + double gizmo_last_alt_angle_; + int gizmo_rotate_wrap_; + + enum RotationDirection { + kDirectionNone, + kDirectionPositive, // Clockwise + kDirectionNegative // Counter-clockwise + }; + + static RotationDirection GetDirectionFromAngles(double last, double current); + RotationDirection gizmo_rotate_last_dir_; + RotationDirection gizmo_rotate_last_alt_dir_; enum GizmoScaleType { kGizmoScaleXOnly, @@ -119,13 +131,13 @@ private: }; GizmoScaleType gizmo_scale_axes_; - QMatrix4x4 gizmo_matrix_; QVector2D gizmo_scale_anchor_; // Gizmo on screen object storage - QPolygonF gizmo_rect_; - QRectF gizmo_anchor_pt_; - QRectF gizmo_resize_handle_[kGizmoScaleCount]; + PointGizmo *point_gizmo_[kGizmoScaleCount]; + PointGizmo *anchor_gizmo_; + PolygonGizmo *poly_gizmo_; + ScreenGizmo *rotation_gizmo_; }; diff --git a/app/node/factory.cpp b/app/node/factory.cpp index ed28bc535..990438eac 100644 --- a/app/node/factory.cpp +++ b/app/node/factory.cpp @@ -39,8 +39,9 @@ #include "generator/polygon/polygon.h" #include "generator/shape/shapenode.h" #include "generator/solid/solid.h" -#include "generator/text/text.h" -#include "generator/text/textlegacy.h" +#include "generator/text/textv1.h" +#include "generator/text/textv2.h" +#include "generator/text/textv3.h" #include "filter/blur/blur.h" #include "filter/mosaic/mosaicfilternode.h" #include "filter/stroke/stroke.h" @@ -72,7 +73,8 @@ void NodeFactory::Initialize() library_.append(created_node); } - hidden_.append(kTextGeneratorLegacy); + hidden_.append(kTextGeneratorV1); + hidden_.append(kTextGeneratorV2); hidden_.append(kGroupNode); } @@ -229,10 +231,12 @@ Node *NodeFactory::CreateFromFactoryIndex(const NodeFactory::InternalID &id) return new MergeNode(); case kStrokeFilter: return new StrokeFilterNode(); - case kTextGeneratorLegacy: - return new TextGeneratorLegacy(); - case kTextGenerator: - return new TextGenerator(); + case kTextGeneratorV1: + return new TextGeneratorV1(); + case kTextGeneratorV2: + return new TextGeneratorV2(); + case kTextGeneratorV3: + return new TextGeneratorV3(); case kCrossDissolveTransition: return new CrossDissolveTransition(); case kDipToColorTransition: diff --git a/app/node/factory.h b/app/node/factory.h index 77fe474eb..5d76b6b47 100644 --- a/app/node/factory.h +++ b/app/node/factory.h @@ -48,8 +48,9 @@ public: kSolidGenerator, kMerge, kStrokeFilter, - kTextGeneratorLegacy, - kTextGenerator, + kTextGeneratorV1, + kTextGeneratorV2, + kTextGeneratorV3, kCrossDissolveTransition, kDipToColorTransition, kMosaicFilter, diff --git a/app/node/generator/polygon/polygon.cpp b/app/node/generator/polygon/polygon.cpp index 451430403..7f99bd835 100644 --- a/app/node/generator/polygon/polygon.cpp +++ b/app/node/generator/polygon/polygon.cpp @@ -54,6 +54,9 @@ PolygonGenerator::PolygonGenerator() SetSplitStandardValueOnTrack(kPointsInput, 1, kBottomY, 3); SetSplitStandardValueOnTrack(kPointsInput, 0, -kMiddleX, 4); SetSplitStandardValueOnTrack(kPointsInput, 1, -kMiddleY, 4); + + // Initiate gizmos + poly_gizmo_ = new PathGizmo(this); } Node *PolygonGenerator::copy() const @@ -149,139 +152,93 @@ void PolygonGenerator::GenerateFrame(FramePtr frame, const GenerateJob &job) con } } -bool PolygonGenerator::HasGizmos() const +template +void PolygonGenerator::ValidateGizmoVectorSize(QVector &vec, int new_sz) { - return true; -} + int old_sz = vec.size(); -void PolygonGenerator::DrawGizmos(const NodeValueRow &row, const NodeGlobals &globals, QPainter *p) -{ - const double handle_radius = GetGizmoHandleRadius(p->transform()); - const double bezier_radius = handle_radius/2; - - p->setPen(Qt::white); - p->setBrush(Qt::white); - p->translate(globals.resolution_by_par().x()/2, globals.resolution_by_par().y()/2); - - QVector points = row[kPointsInput].data().value< QVector >(); - - gizmo_position_handles_.resize(points.size()); - gizmo_bezier_handles_.resize(points.size() * 2); - - p->setPen(QPen(Qt::white, 0)); - p->setBrush(Qt::NoBrush); - - if (!points.isEmpty()) { - QVector lines(points.size() * 2); - - for (int i=0; i(); - - QPointF main = pt.ToPointF(); - QPointF cp1 = main + pt.ControlPoint1ToPointF(); - QPointF cp2 = main + pt.ControlPoint2ToPointF(); - - gizmo_position_handles_[i] = CreateGizmoHandleRect(main, handle_radius); - - gizmo_bezier_handles_[i*2] = CreateGizmoHandleRect(cp1, bezier_radius); - lines[i*2] = QLineF(main, cp1); - - gizmo_bezier_handles_[i*2+1] = CreateGizmoHandleRect(cp2, bezier_radius); - lines[i*2+1] = QLineF(main, cp2); - } - - p->drawLines(lines); - } - - gizmo_polygon_path_ = GeneratePath(points); - p->drawPath(gizmo_polygon_path_); - - DrawAndExpandGizmoHandles(p, handle_radius, gizmo_position_handles_.data(), gizmo_position_handles_.size()); - DrawAndExpandGizmoHandles(p, handle_radius, gizmo_bezier_handles_.data(), gizmo_bezier_handles_.size()); -} - -bool PolygonGenerator::GizmoPress(const NodeValueRow& row, const NodeGlobals &globals, const QPointF &p) -{ - QPointF adjusted = p - (globals.resolution_by_par() / 2).toPointF(); - - // First, look for main points - - for (int i=0; i new_sz) { + for (int i=new_sz; i) { + vec[i] = AddDraggableGizmo(); + } else { + vec[i] = new T(this); } } } } - - gizmo_drag_start_ = p; - - return !gizmo_x_active_.isEmpty() || !gizmo_y_active_.isEmpty(); } -void PolygonGenerator::GizmoMove(const QPointF &p, const rational &time, const Qt::KeyboardModifiers &modifiers) +void PolygonGenerator::UpdateGizmoPositions(const NodeValueRow &row, const NodeGlobals &globals) { - if (gizmo_x_draggers_.isEmpty() && gizmo_y_draggers_.isEmpty()) { - gizmo_x_draggers_.resize(gizmo_x_active_.size()); - gizmo_y_draggers_.resize(gizmo_y_active_.size()); - for (int i=0; i points = row[kPointsInput].data().value< QVector >(); + + int current_pos_sz = gizmo_position_handles_.size(); + + ValidateGizmoVectorSize(gizmo_position_handles_, points.size()); + ValidateGizmoVectorSize(gizmo_bezier_handles_, points.size() * 2); + ValidateGizmoVectorSize(gizmo_bezier_lines_, points.size() * 2); + + for (int i=current_pos_sz; iAddInput(NodeKeyframeTrackReference(NodeInput(this, kPointsInput, i), 0)); + gizmo_position_handles_.at(i)->AddInput(NodeKeyframeTrackReference(NodeInput(this, kPointsInput, i), 1)); + + PointGizmo *bez_gizmo1 = gizmo_bezier_handles_.at(i*2+0); + bez_gizmo1->AddInput(NodeKeyframeTrackReference(NodeInput(this, kPointsInput, i), 2)); + bez_gizmo1->AddInput(NodeKeyframeTrackReference(NodeInput(this, kPointsInput, i), 3)); + bez_gizmo1->SetShape(PointGizmo::kCircle); + bez_gizmo1->SetSmaller(true); + + PointGizmo *bez_gizmo2 = gizmo_bezier_handles_.at(i*2+1); + bez_gizmo2->AddInput(NodeKeyframeTrackReference(NodeInput(this, kPointsInput, i), 4)); + bez_gizmo2->AddInput(NodeKeyframeTrackReference(NodeInput(this, kPointsInput, i), 5)); + bez_gizmo2->SetShape(PointGizmo::kCircle); + bez_gizmo2->SetSmaller(true); + } + + if (!points.isEmpty()) { + for (int i=0; i(); + + QPointF main = pt.ToPointF() + half_res; + QPointF cp1 = main + pt.ControlPoint1ToPointF(); + QPointF cp2 = main + pt.ControlPoint2ToPointF(); + + gizmo_position_handles_[i]->SetPoint(main); + + gizmo_bezier_handles_[i*2]->SetPoint(cp1); + gizmo_bezier_lines_[i*2]->SetLine(QLineF(main, cp1)); + gizmo_bezier_handles_[i*2+1]->SetPoint(cp2); + gizmo_bezier_lines_[i*2+1]->SetLine(QLineF(main, cp2)); } } - QPointF diff = p - gizmo_drag_start_; - - for (NodeInputDragger &dragger : gizmo_x_draggers_) { - dragger.Drag(dragger.GetStartValue().toDouble() + diff.x()); - } - - for (NodeInputDragger &dragger : gizmo_y_draggers_) { - dragger.Drag(dragger.GetStartValue().toDouble() + diff.y()); - } + poly_gizmo_->SetPath(GeneratePath(points).translated(half_res)); } -void PolygonGenerator::GizmoRelease(MultiUndoCommand *command) +void PolygonGenerator::GizmoDragMove(double x, double y, const Qt::KeyboardModifiers &modifiers) { - for (NodeInputDragger &dragger : gizmo_x_draggers_) { - dragger.End(command); - } - gizmo_x_draggers_.clear(); + DraggableGizmo *gizmo = static_cast(sender()); - for (NodeInputDragger &dragger : gizmo_y_draggers_) { - dragger.End(command); + if (gizmo == poly_gizmo_) { + // FIXME: Drag all points + } else { + NodeInputDragger &x_drag = gizmo->GetDraggers()[0]; + NodeInputDragger &y_drag = gizmo->GetDraggers()[1]; + x_drag.Drag(x_drag.GetStartValue().toDouble() + x); + y_drag.Drag(y_drag.GetStartValue().toDouble() + y); } - gizmo_y_draggers_.clear(); - - gizmo_x_active_.clear(); - gizmo_y_active_.clear(); } void PolygonGenerator::AddPointToPath(QPainterPath *path, const Bezier &before, const Bezier &after) diff --git a/app/node/generator/polygon/polygon.h b/app/node/generator/polygon/polygon.h index e7da30009..ff85fc8be 100644 --- a/app/node/generator/polygon/polygon.h +++ b/app/node/generator/polygon/polygon.h @@ -24,6 +24,9 @@ #include #include "common/bezier.h" +#include "node/gizmo/line.h" +#include "node/gizmo/path.h" +#include "node/gizmo/point.h" #include "node/node.h" #include "node/inputdragger.h" @@ -50,30 +53,26 @@ public: virtual void GenerateFrame(FramePtr frame, const GenerateJob &job) const override; - virtual bool HasGizmos() const override; - virtual void DrawGizmos(const NodeValueRow& row, const NodeGlobals &globals, QPainter *p) override; - - virtual bool GizmoPress(const NodeValueRow& row, const NodeGlobals &globals, const QPointF &p) override; - virtual void GizmoMove(const QPointF &p, const rational &time, const Qt::KeyboardModifiers &modifiers) override; - virtual void GizmoRelease(MultiUndoCommand *command) override; + virtual void UpdateGizmoPositions(const NodeValueRow &row, const NodeGlobals &globals) override; static const QString kPointsInput; static const QString kColorInput; +protected slots: + virtual void GizmoDragMove(double x, double y, const Qt::KeyboardModifiers &modifiers) override; + private: static void AddPointToPath(QPainterPath *path, const Bezier &before, const Bezier &after); static QPainterPath GeneratePath(const QVector &points); - QPainterPath gizmo_polygon_path_; - QVector gizmo_position_handles_; - QVector gizmo_bezier_handles_; + template + void ValidateGizmoVectorSize(QVector &vec, int new_sz); - QVector gizmo_x_active_; - QVector gizmo_y_active_; - QVector gizmo_x_draggers_; - QVector gizmo_y_draggers_; - QPointF gizmo_drag_start_; + PathGizmo *poly_gizmo_; + QVector gizmo_position_handles_; + QVector gizmo_bezier_handles_; + QVector gizmo_bezier_lines_; }; diff --git a/app/node/generator/shape/shapenodebase.cpp b/app/node/generator/shape/shapenodebase.cpp index 033ecca78..15a262f29 100644 --- a/app/node/generator/shape/shapenodebase.cpp +++ b/app/node/generator/shape/shapenodebase.cpp @@ -23,7 +23,7 @@ #include #include -#include "common/lerp.h" +#include "common/util.h" #include "core.h" namespace olive { @@ -34,12 +34,30 @@ QString ShapeNodeBase::kPositionInput = QStringLiteral("pos_in"); QString ShapeNodeBase::kSizeInput = QStringLiteral("size_in"); QString ShapeNodeBase::kColorInput = QStringLiteral("color_in"); -ShapeNodeBase::ShapeNodeBase() +ShapeNodeBase::ShapeNodeBase(bool create_color_input) { AddInput(kPositionInput, NodeValue::kVec2, QVector2D(0, 0)); AddInput(kSizeInput, NodeValue::kVec2, QVector2D(100, 100)); SetInputProperty(kSizeInput, QStringLiteral("min"), QVector2D(0, 0)); - AddInput(kColorInput, NodeValue::kColor, QVariant::fromValue(Color(1.0, 0.0, 0.0, 1.0))); + + if (create_color_input) { + AddInput(kColorInput, NodeValue::kColor, QVariant::fromValue(Color(1.0, 0.0, 0.0, 1.0))); + } + + // Initiate gizmos + QVector pos_n_sz = { + NodeKeyframeTrackReference(NodeInput(this, kPositionInput), 0), + NodeKeyframeTrackReference(NodeInput(this, kPositionInput), 1), + NodeKeyframeTrackReference(NodeInput(this, kSizeInput), 0), + NodeKeyframeTrackReference(NodeInput(this, kSizeInput), 1) + }; + poly_gizmo_ = AddDraggableGizmo({ + NodeKeyframeTrackReference(NodeInput(this, kPositionInput), 0), + NodeKeyframeTrackReference(NodeInput(this, kPositionInput), 1), + }); + for (int i=0; i(pos_n_sz, PointGizmo::kAbsolute); + } } void ShapeNodeBase::Retranslate() @@ -48,20 +66,19 @@ void ShapeNodeBase::Retranslate() SetInputName(kPositionInput, tr("Position")); SetInputName(kSizeInput, tr("Size")); - SetInputName(kColorInput, tr("Color")); + + if (HasInputWithID(kColorInput)) { + SetInputName(kColorInput, tr("Color")); + } } -void ShapeNodeBase::DrawGizmos(const NodeValueRow &row, const NodeGlobals &globals, QPainter *p) +void ShapeNodeBase::UpdateGizmoPositions(const NodeValueRow &row, const NodeGlobals &globals) { // Use offsets to make the appearance of values that start in the top left, even though we // really anchor around the center QVector2D center_pt = globals.resolution() * 0.5; SetInputProperty(kPositionInput, QStringLiteral("offset"), center_pt); - const double handle_radius = GetGizmoHandleRadius(p->transform()); - - p->setPen(QPen(Qt::white, 0)); - QVector2D pos = row[kPositionInput].data().value(); QVector2D sz = row[kSizeInput].data().value(); QVector2D half_sz = sz * 0.5; @@ -70,151 +87,73 @@ void ShapeNodeBase::DrawGizmos(const NodeValueRow &row, const NodeGlobals &globa double top_pt = pos.y() + center_pt.y() - half_sz.y(); double right_pt = left_pt + sz.x(); double bottom_pt = top_pt + sz.y(); - double center_x_pt = lerp(left_pt, right_pt, 0.5); - double center_y_pt = lerp(top_pt, bottom_pt, 0.5); + double center_x_pt = mid(left_pt, right_pt); + double center_y_pt = mid(top_pt, bottom_pt); - gizmo_whole_rect_ = QRectF(left_pt, top_pt, right_pt - left_pt, bottom_pt - top_pt); - p->drawRect(gizmo_whole_rect_); + point_gizmo_[kGizmoScaleTopLeft]->SetPoint(QPointF(left_pt, top_pt)); + point_gizmo_[kGizmoScaleTopCenter]->SetPoint(QPointF(center_x_pt, top_pt)); + point_gizmo_[kGizmoScaleTopRight]->SetPoint(QPointF(right_pt, top_pt)); + point_gizmo_[kGizmoScaleBottomLeft]->SetPoint(QPointF(left_pt, bottom_pt)); + point_gizmo_[kGizmoScaleBottomCenter]->SetPoint(QPointF(center_x_pt, bottom_pt)); + point_gizmo_[kGizmoScaleBottomRight]->SetPoint(QPointF(right_pt, bottom_pt)); + point_gizmo_[kGizmoScaleCenterLeft]->SetPoint(QPointF(left_pt, center_y_pt)); + point_gizmo_[kGizmoScaleCenterRight]->SetPoint(QPointF(right_pt, center_y_pt)); - gizmo_resize_handle_[kGizmoScaleTopLeft] = CreateGizmoHandleRect(QPointF(left_pt, top_pt), handle_radius); - gizmo_resize_handle_[kGizmoScaleTopCenter] = CreateGizmoHandleRect(QPointF(center_x_pt, top_pt), handle_radius); - gizmo_resize_handle_[kGizmoScaleTopRight] = CreateGizmoHandleRect(QPointF(right_pt, top_pt), handle_radius); - gizmo_resize_handle_[kGizmoScaleBottomLeft] = CreateGizmoHandleRect(QPointF(left_pt, bottom_pt), handle_radius); - gizmo_resize_handle_[kGizmoScaleBottomCenter] = CreateGizmoHandleRect(QPointF(center_x_pt, bottom_pt), handle_radius); - gizmo_resize_handle_[kGizmoScaleBottomRight] = CreateGizmoHandleRect(QPointF(right_pt, bottom_pt), handle_radius); - gizmo_resize_handle_[kGizmoScaleCenterLeft] = CreateGizmoHandleRect(QPointF(left_pt, center_y_pt), handle_radius); - gizmo_resize_handle_[kGizmoScaleCenterRight] = CreateGizmoHandleRect(QPointF(right_pt, center_y_pt), handle_radius); - - DrawAndExpandGizmoHandles(p, handle_radius, gizmo_resize_handle_, kGizmoScaleCount); + poly_gizmo_->SetPolygon(QRectF(left_pt, top_pt, right_pt - left_pt, bottom_pt - top_pt)); } -bool ShapeNodeBase::GizmoPress(const NodeValueRow &row, const NodeGlobals &globals, const QPointF &p) +void ShapeNodeBase::GizmoDragMove(double x, double y, const Qt::KeyboardModifiers &modifiers) { - gizmo_drag_ = -1; + DraggableGizmo *gizmo = static_cast(sender()); - // See if any of our resize handles have the pointer - for (int i=0; iGetDraggers()[0]; + NodeInputDragger &y_drag = gizmo->GetDraggers()[1]; - // See if the rect has the pointer - if (gizmo_drag_ == -1 && gizmo_whole_rect_.contains(p)) { - gizmo_drag_ = kGizmoWholeRect; - } - - if (gizmo_drag_ >= 0) { - gizmo_pos_start_ = row[kPositionInput].data().value(); - gizmo_sz_start_ = row[kSizeInput].data().value(); - gizmo_drag_start_ = p; - gizmo_half_res_ = globals.resolution()/2; - - // Get aspect ratio (avoiding potential zero) - if (qFuzzyIsNull(gizmo_sz_start_.y())) { - gizmo_aspect_ratio_ = 0; - } else { - gizmo_aspect_ratio_ = gizmo_sz_start_.x() / gizmo_sz_start_.y(); - } - return true; - } - - return false; -} - -enum { - kGDPosX, - kGDPosY, - kGDSzX, - kGDSzY, - kGDCount -}; - -QVector2D ShapeNodeBase::GenerateGizmoAnchor(const QVector2D &pos, const QVector2D &size, int drag, QVector2D *pt = nullptr) -{ - QVector2D anchor = pos; - QVector2D half_sz = size/2; - - if (drag == kGizmoScaleTopLeft || drag == kGizmoScaleCenterLeft || drag == kGizmoScaleBottomLeft) { - anchor.setX(anchor.x() + half_sz.x()); - if (pt && pt->x() > anchor.x()) { - pt->setX(anchor.x()); - } - } - - if (drag == kGizmoScaleTopRight || drag == kGizmoScaleCenterRight || drag == kGizmoScaleBottomRight) { - anchor.setX(anchor.x() - half_sz.x()); - if (pt && pt->x() < anchor.x()) { - pt->setX(anchor.x()); - } - } - - if (drag == kGizmoScaleTopLeft || drag == kGizmoScaleTopCenter || drag == kGizmoScaleTopRight) { - anchor.setY(anchor.y() + half_sz.y()); - if (pt && pt->y() > anchor.y()) { - pt->setY(anchor.y()); - } - } - - if (drag == kGizmoScaleBottomLeft || drag == kGizmoScaleBottomCenter || drag == kGizmoScaleBottomRight) { - anchor.setY(anchor.y() - half_sz.y()); - if (pt && pt->y() < anchor.y()) { - pt->setY(anchor.y()); - } - } - - return anchor; -} - -void ShapeNodeBase::GizmoMove(const QPointF &p, const rational &time, const Qt::KeyboardModifiers &modifiers) -{ - if (gizmo_dragger_.isEmpty()) { - gizmo_dragger_.resize(kGDCount); - gizmo_dragger_[kGDPosX].Start(NodeKeyframeTrackReference(NodeInput(this, kPositionInput), 0), time); - gizmo_dragger_[kGDPosY].Start(NodeKeyframeTrackReference(NodeInput(this, kPositionInput), 1), time); - gizmo_dragger_[kGDSzX].Start(NodeKeyframeTrackReference(NodeInput(this, kSizeInput), 0), time); - gizmo_dragger_[kGDSzY].Start(NodeKeyframeTrackReference(NodeInput(this, kSizeInput), 1), time); - } - - bool from_center = modifiers & Qt::AltModifier; - bool keep_ratio = modifiers & Qt::ShiftModifier; - - QVector2D adjusted_pt(p.x(), p.y()); - QVector2D diff(adjusted_pt.x() - gizmo_drag_start_.x(), adjusted_pt.y() - gizmo_drag_start_.y()); - - if (gizmo_drag_ == kGizmoWholeRect) { - // Simply move position by difference - gizmo_dragger_[kGDPosX].Drag(gizmo_pos_start_.x() + diff.x()); - gizmo_dragger_[kGDPosY].Drag(gizmo_pos_start_.y() + diff.y()); + if (gizmo == poly_gizmo_) { + x_drag.Drag(x_drag.GetStartValue().toDouble() + x); + y_drag.Drag(y_drag.GetStartValue().toDouble() + y); } else { + bool from_center = modifiers & Qt::AltModifier; + bool keep_ratio = modifiers & Qt::ShiftModifier; + NodeInputDragger &w_drag = gizmo->GetDraggers()[2]; + NodeInputDragger &h_drag = gizmo->GetDraggers()[3]; + + QVector2D gizmo_sz_start(w_drag.GetStartValue().toDouble(), h_drag.GetStartValue().toDouble()); + QVector2D gizmo_pos_start(x_drag.GetStartValue().toDouble(), y_drag.GetStartValue().toDouble()); + QVector2D gizmo_half_res = gizmo->GetGlobals().resolution()/2; + QVector2D adjusted_pt(x, y); QVector2D new_size; QVector2D new_pos; QVector2D anchor; static const int kXYCount = 2; bool negative[kXYCount] = {false}; + double original_ratio; + if (keep_ratio) { + original_ratio = w_drag.GetStartValue().toDouble() / h_drag.GetStartValue().toDouble(); + } + // Calculate new size if (from_center) { // Calculate new size by using distance from center and doubling it - new_size = (adjusted_pt - gizmo_half_res_ - gizmo_pos_start_) * 2; + new_size = (adjusted_pt - gizmo_half_res - gizmo_pos_start) * 2; - if (gizmo_drag_ == kGizmoScaleTopCenter || gizmo_drag_ == kGizmoScaleTopLeft || gizmo_drag_ == kGizmoScaleTopRight) { + if (IsGizmoTop(gizmo)) { new_size.setY(-new_size.y()); } - if (gizmo_drag_ == kGizmoScaleTopLeft || gizmo_drag_ == kGizmoScaleCenterLeft || gizmo_drag_ == kGizmoScaleBottomLeft) { + if (IsGizmoLeft(gizmo)) { new_size.setX(-new_size.x()); } } else { // Calculate new size by using distance from "anchor" - i.e. the opposite point of the shape // from the gizmo being dragged - adjusted_pt -= gizmo_half_res_; + adjusted_pt -= gizmo_half_res; - anchor = GenerateGizmoAnchor(gizmo_pos_start_, gizmo_sz_start_, gizmo_drag_, &adjusted_pt) + gizmo_half_res_; + anchor = GenerateGizmoAnchor(gizmo_pos_start, gizmo_sz_start, gizmo, &adjusted_pt) + gizmo_half_res; - adjusted_pt += gizmo_half_res_; + adjusted_pt += gizmo_half_res; // Calculate size and position new_size = adjusted_pt - anchor; @@ -229,32 +168,31 @@ void ShapeNodeBase::GizmoMove(const QPointF &p, const rational &time, const Qt:: } // Restrict sizes by constraints - if (gizmo_drag_ == kGizmoScaleTopCenter || gizmo_drag_ == kGizmoScaleBottomCenter) { + if (IsGizmoVerticalCenter(gizmo)) { if (keep_ratio) { // Calculate width from new height - new_size.setX(new_size.y() * gizmo_aspect_ratio_); + new_size.setX(new_size.y() * original_ratio); } else { // Constrain to original width - new_size.setX(gizmo_sz_start_.x()); + new_size.setX(gizmo_sz_start.x()); } } - if (gizmo_drag_ == kGizmoScaleCenterLeft || gizmo_drag_ == kGizmoScaleCenterRight) { + if (IsGizmoHorizontalCenter(gizmo)) { if (keep_ratio) { // Calculate height from new width - new_size.setY(new_size.x() / gizmo_aspect_ratio_); + new_size.setY(new_size.x() / original_ratio); } else { // Constrain to original height - new_size.setY(gizmo_sz_start_.y()); + new_size.setY(gizmo_sz_start.y()); } } - if (gizmo_drag_ == kGizmoScaleTopLeft || gizmo_drag_ == kGizmoScaleTopRight - || gizmo_drag_ == kGizmoScaleBottomRight || gizmo_drag_ == kGizmoScaleBottomLeft) { + if (IsGizmoCorner(gizmo)) { if (keep_ratio) { float hypot = std::hypot(new_size.x(), new_size.y()); - float original_angle = std::atan2(gizmo_sz_start_.x(), gizmo_sz_start_.y()); + float original_angle = std::atan2(gizmo_sz_start.x(), gizmo_sz_start.y()); // Calculate new size based on original angle and hypotenuse new_size.setX(std::sin(original_angle) * hypot); @@ -264,7 +202,7 @@ void ShapeNodeBase::GizmoMove(const QPointF &p, const rational &time, const Qt:: // Calculate position if (from_center) { - new_pos = gizmo_pos_start_; + new_pos = gizmo_pos_start; } else { QVector2D using_size = new_size; @@ -276,31 +214,94 @@ void ShapeNodeBase::GizmoMove(const QPointF &p, const rational &time, const Qt:: } // I'm pretty sure there's an algorithmic way of doing this, but I'm tired and this works - if (gizmo_drag_ == kGizmoScaleCenterLeft || gizmo_drag_ == kGizmoScaleCenterRight) { + if (IsGizmoHorizontalCenter(gizmo)) { using_size.setY(0); } - if (gizmo_drag_ == kGizmoScaleTopCenter || gizmo_drag_ == kGizmoScaleBottomCenter) { + if (IsGizmoVerticalCenter(gizmo)) { using_size.setX(0); } - new_pos = GenerateGizmoAnchor(gizmo_pos_start_, gizmo_sz_start_, gizmo_drag_) + using_size / 2; + new_pos = GenerateGizmoAnchor(gizmo_pos_start, gizmo_sz_start, gizmo) + using_size / 2; } - gizmo_dragger_[kGDPosX].Drag(new_pos.x()); - gizmo_dragger_[kGDPosY].Drag(new_pos.y()); - gizmo_dragger_[kGDSzX].Drag(new_size.x()); - gizmo_dragger_[kGDSzY].Drag(new_size.y()); - + x_drag.Drag(new_pos.x()); + y_drag.Drag(new_pos.y()); + w_drag.Drag(new_size.x()); + h_drag.Drag(new_size.y()); } } -void ShapeNodeBase::GizmoRelease(MultiUndoCommand *command) +QVector2D ShapeNodeBase::GenerateGizmoAnchor(const QVector2D &pos, const QVector2D &size, NodeGizmo *gizmo, QVector2D *pt) const { - for (NodeInputDragger& i : gizmo_dragger_) { - i.End(command); + QVector2D anchor = pos; + QVector2D half_sz = size/2; + + if (IsGizmoLeft(gizmo)) { + anchor.setX(anchor.x() + half_sz.x()); + if (pt && pt->x() > anchor.x()) { + pt->setX(anchor.x()); + } } - gizmo_dragger_.clear(); + + if (IsGizmoRight(gizmo)) { + anchor.setX(anchor.x() - half_sz.x()); + if (pt && pt->x() < anchor.x()) { + pt->setX(anchor.x()); + } + } + + if (IsGizmoTop(gizmo)) { + anchor.setY(anchor.y() + half_sz.y()); + if (pt && pt->y() > anchor.y()) { + pt->setY(anchor.y()); + } + } + + if (IsGizmoBottom(gizmo)) { + anchor.setY(anchor.y() - half_sz.y()); + if (pt && pt->y() < anchor.y()) { + pt->setY(anchor.y()); + } + } + + return anchor; +} + +bool ShapeNodeBase::IsGizmoTop(NodeGizmo *g) const +{ + return g == point_gizmo_[kGizmoScaleTopCenter] || g == point_gizmo_[kGizmoScaleTopLeft] || g == point_gizmo_[kGizmoScaleTopRight]; +} + +bool ShapeNodeBase::IsGizmoBottom(NodeGizmo *g) const +{ + return g == point_gizmo_[kGizmoScaleBottomCenter] || g == point_gizmo_[kGizmoScaleBottomLeft] || g == point_gizmo_[kGizmoScaleBottomRight]; +} + +bool ShapeNodeBase::IsGizmoLeft(NodeGizmo *g) const +{ + return g == point_gizmo_[kGizmoScaleTopLeft] || g == point_gizmo_[kGizmoScaleCenterLeft] || g == point_gizmo_[kGizmoScaleBottomLeft]; +} + +bool ShapeNodeBase::IsGizmoRight(NodeGizmo *g) const +{ + return g == point_gizmo_[kGizmoScaleTopRight] || g == point_gizmo_[kGizmoScaleCenterRight] || g == point_gizmo_[kGizmoScaleBottomRight]; +} + +bool ShapeNodeBase::IsGizmoHorizontalCenter(NodeGizmo *g) const +{ + return g == point_gizmo_[kGizmoScaleCenterLeft] || g == point_gizmo_[kGizmoScaleCenterRight]; +} + +bool ShapeNodeBase::IsGizmoVerticalCenter(NodeGizmo *g) const +{ + return g == point_gizmo_[kGizmoScaleTopCenter] || g == point_gizmo_[kGizmoScaleBottomCenter]; +} + +bool ShapeNodeBase::IsGizmoCorner(NodeGizmo *g) const +{ + return g == point_gizmo_[kGizmoScaleTopLeft] || g == point_gizmo_[kGizmoScaleTopRight] + || g == point_gizmo_[kGizmoScaleBottomRight] || g == point_gizmo_[kGizmoScaleBottomLeft]; } } diff --git a/app/node/generator/shape/shapenodebase.h b/app/node/generator/shape/shapenodebase.h index 7337d5b6c..d7529eff0 100644 --- a/app/node/generator/shape/shapenodebase.h +++ b/app/node/generator/shape/shapenodebase.h @@ -21,6 +21,8 @@ #ifndef SHAPENODEBASE_H #define SHAPENODEBASE_H +#include "node/gizmo/point.h" +#include "node/gizmo/polygon.h" #include "node/inputdragger.h" #include "node/node.h" @@ -30,42 +32,42 @@ class ShapeNodeBase : public Node { Q_OBJECT public: - ShapeNodeBase(); + ShapeNodeBase(bool create_color_input = true); NODE_DEFAULT_DESTRUCTOR(ShapeNodeBase) virtual void Retranslate() override; + virtual void UpdateGizmoPositions(const NodeValueRow &row, const NodeGlobals &globals) override; + static QString kPositionInput; static QString kSizeInput; static QString kColorInput; - virtual bool HasGizmos() const override +protected: + PolygonGizmo *poly_gizmo() const { - return true; + return poly_gizmo_; } - virtual void DrawGizmos(const NodeValueRow &row, const NodeGlobals &globals, QPainter *p) override; - - virtual bool GizmoPress(const NodeValueRow& row, const NodeGlobals &globals, const QPointF &p) override; - virtual void GizmoMove(const QPointF &p, const rational &time, const Qt::KeyboardModifiers &modifiers) override; - virtual void GizmoRelease(MultiUndoCommand *command) override; +protected slots: + virtual void GizmoDragMove(double x, double y, const Qt::KeyboardModifiers &modifiers) override; private: - static QVector2D GenerateGizmoAnchor(const QVector2D &pos, const QVector2D &size, int drag, QVector2D *pt); + QVector2D GenerateGizmoAnchor(const QVector2D &pos, const QVector2D &size, NodeGizmo *gizmo, QVector2D *pt = nullptr) const; + + bool IsGizmoTop(NodeGizmo *g) const; + bool IsGizmoBottom(NodeGizmo *g) const; + bool IsGizmoLeft(NodeGizmo *g) const; + bool IsGizmoRight(NodeGizmo *g) const; + bool IsGizmoHorizontalCenter(NodeGizmo *g) const; + bool IsGizmoVerticalCenter(NodeGizmo *g) const; + bool IsGizmoCorner(NodeGizmo *g) const; // Gizmo variables static const int kGizmoWholeRect = kGizmoScaleCount; - QRectF gizmo_resize_handle_[kGizmoScaleCount]; - QRectF gizmo_whole_rect_; - - int gizmo_drag_; - QVector gizmo_dragger_; - QVector2D gizmo_pos_start_; - QVector2D gizmo_sz_start_; - QPointF gizmo_drag_start_; - float gizmo_aspect_ratio_; - QVector2D gizmo_half_res_; + PointGizmo *point_gizmo_[kGizmoScaleCount]; + PolygonGizmo *poly_gizmo_; }; diff --git a/app/node/generator/text/CMakeLists.txt b/app/node/generator/text/CMakeLists.txt index 889177361..81c69f4e7 100644 --- a/app/node/generator/text/CMakeLists.txt +++ b/app/node/generator/text/CMakeLists.txt @@ -16,9 +16,11 @@ set(OLIVE_SOURCES ${OLIVE_SOURCES} - node/generator/text/text.cpp - node/generator/text/text.h - node/generator/text/textlegacy.cpp - node/generator/text/textlegacy.h + node/generator/text/textv1.cpp + node/generator/text/textv1.h + node/generator/text/textv2.cpp + node/generator/text/textv2.h + node/generator/text/textv3.cpp + node/generator/text/textv3.h PARENT_SCOPE ) diff --git a/app/node/generator/text/textlegacy.cpp b/app/node/generator/text/textv1.cpp similarity index 82% rename from app/node/generator/text/textlegacy.cpp rename to app/node/generator/text/textv1.cpp index edb871a02..d6c4c8588 100644 --- a/app/node/generator/text/textlegacy.cpp +++ b/app/node/generator/text/textv1.cpp @@ -18,7 +18,7 @@ ***/ -#include "textlegacy.h" +#include "textv1.h" #include #include @@ -31,14 +31,14 @@ enum TextVerticalAlign { kVerticalAlignBottom, }; -const QString TextGeneratorLegacy::kTextInput = QStringLiteral("text_in"); -const QString TextGeneratorLegacy::kHtmlInput = QStringLiteral("html_in"); -const QString TextGeneratorLegacy::kColorInput = QStringLiteral("color_in"); -const QString TextGeneratorLegacy::kVAlignInput = QStringLiteral("valign_in"); -const QString TextGeneratorLegacy::kFontInput = QStringLiteral("font_in"); -const QString TextGeneratorLegacy::kFontSizeInput = QStringLiteral("font_size_in"); +const QString TextGeneratorV1::kTextInput = QStringLiteral("text_in"); +const QString TextGeneratorV1::kHtmlInput = QStringLiteral("html_in"); +const QString TextGeneratorV1::kColorInput = QStringLiteral("color_in"); +const QString TextGeneratorV1::kVAlignInput = QStringLiteral("valign_in"); +const QString TextGeneratorV1::kFontInput = QStringLiteral("font_in"); +const QString TextGeneratorV1::kFontSizeInput = QStringLiteral("font_size_in"); -TextGeneratorLegacy::TextGeneratorLegacy() +TextGeneratorV1::TextGeneratorV1() { AddInput(kTextInput, NodeValue::kText, tr("Sample Text")); @@ -53,27 +53,27 @@ TextGeneratorLegacy::TextGeneratorLegacy() AddInput(kFontSizeInput, NodeValue::kFloat, 72.0f); } -QString TextGeneratorLegacy::Name() const +QString TextGeneratorV1::Name() const { return tr("Text (Legacy)"); } -QString TextGeneratorLegacy::id() const +QString TextGeneratorV1::id() const { return QStringLiteral("org.olivevideoeditor.Olive.textgenerator"); } -QVector TextGeneratorLegacy::Category() const +QVector TextGeneratorV1::Category() const { return {kCategoryGenerator}; } -QString TextGeneratorLegacy::Description() const +QString TextGeneratorV1::Description() const { return tr("Generate rich text."); } -void TextGeneratorLegacy::Retranslate() +void TextGeneratorV1::Retranslate() { SetInputName(kTextInput, tr("Text")); SetInputName(kHtmlInput, tr("Enable HTML")); @@ -84,7 +84,7 @@ void TextGeneratorLegacy::Retranslate() SetComboBoxStrings(kVAlignInput, {tr("Top"), tr("Center"), tr("Bottom")}); } -void TextGeneratorLegacy::Value(const NodeValueRow &value, const NodeGlobals &globals, NodeValueTable *table) const +void TextGeneratorV1::Value(const NodeValueRow &value, const NodeGlobals &globals, NodeValueTable *table) const { GenerateJob job; job.InsertValue(value); @@ -95,7 +95,7 @@ void TextGeneratorLegacy::Value(const NodeValueRow &value, const NodeGlobals &gl } } -void TextGeneratorLegacy::GenerateFrame(FramePtr frame, const GenerateJob& job) const +void TextGeneratorV1::GenerateFrame(FramePtr frame, const GenerateJob& job) const { // This could probably be more optimized, but for now we use Qt to draw to a QImage. // QImages only support integer pixels and we use float pixels, so what we do here is draw onto diff --git a/app/node/generator/text/textlegacy.h b/app/node/generator/text/textv1.h similarity index 85% rename from app/node/generator/text/textlegacy.h rename to app/node/generator/text/textv1.h index 296d838e3..868e22449 100644 --- a/app/node/generator/text/textlegacy.h +++ b/app/node/generator/text/textv1.h @@ -18,21 +18,21 @@ ***/ -#ifndef TEXTGENERATORLEGACY_H -#define TEXTGENERATORLEGACY_H +#ifndef TEXTGENERATORV1_H +#define TEXTGENERATORV1_H #include "node/node.h" namespace olive { -class TextGeneratorLegacy : public Node +class TextGeneratorV1 : public Node { Q_OBJECT public: - TextGeneratorLegacy(); + TextGeneratorV1(); - NODE_DEFAULT_DESTRUCTOR(TextGeneratorLegacy) - NODE_COPY_FUNCTION(TextGeneratorLegacy) + NODE_DEFAULT_DESTRUCTOR(TextGeneratorV1) + NODE_COPY_FUNCTION(TextGeneratorV1) virtual QString Name() const override; virtual QString id() const override; @@ -56,4 +56,4 @@ public: } -#endif // TEXTGENERATORLEGACY_H +#endif // TEXTGENERATORV1_H diff --git a/app/node/generator/text/text.cpp b/app/node/generator/text/textv2.cpp similarity index 86% rename from app/node/generator/text/text.cpp rename to app/node/generator/text/textv2.cpp index b2eb1e0a2..b976a58ff 100644 --- a/app/node/generator/text/text.cpp +++ b/app/node/generator/text/textv2.cpp @@ -18,7 +18,7 @@ ***/ -#include "text.h" +#include "textv2.h" #include #include @@ -37,13 +37,13 @@ enum TextVerticalAlign { kVerticalAlignBottom, }; -const QString TextGenerator::kTextInput = QStringLiteral("text_in"); -const QString TextGenerator::kHtmlInput = QStringLiteral("html_in"); -const QString TextGenerator::kVAlignInput = QStringLiteral("valign_in"); -const QString TextGenerator::kFontInput = QStringLiteral("font_in"); -const QString TextGenerator::kFontSizeInput = QStringLiteral("font_size_in"); +const QString TextGeneratorV2::kTextInput = QStringLiteral("text_in"); +const QString TextGeneratorV2::kHtmlInput = QStringLiteral("html_in"); +const QString TextGeneratorV2::kVAlignInput = QStringLiteral("valign_in"); +const QString TextGeneratorV2::kFontInput = QStringLiteral("font_in"); +const QString TextGeneratorV2::kFontSizeInput = QStringLiteral("font_size_in"); -TextGenerator::TextGenerator() +TextGeneratorV2::TextGeneratorV2() { AddInput(kTextInput, NodeValue::kText, tr("Sample Text")); @@ -59,27 +59,27 @@ TextGenerator::TextGenerator() SetStandardValue(kSizeInput, QVector2D(400, 300)); } -QString TextGenerator::Name() const +QString TextGeneratorV2::Name() const { - return tr("Text"); + return tr("Text (Legacy)"); } -QString TextGenerator::id() const +QString TextGeneratorV2::id() const { return QStringLiteral("org.olivevideoeditor.Olive.text2"); } -QVector TextGenerator::Category() const +QVector TextGeneratorV2::Category() const { return {kCategoryGenerator}; } -QString TextGenerator::Description() const +QString TextGeneratorV2::Description() const { return tr("Generate rich text."); } -void TextGenerator::Retranslate() +void TextGeneratorV2::Retranslate() { super::Retranslate(); @@ -91,7 +91,7 @@ void TextGenerator::Retranslate() SetComboBoxStrings(kVAlignInput, {tr("Top"), tr("Center"), tr("Bottom")}); } -void TextGenerator::Value(const NodeValueRow &value, const NodeGlobals &globals, NodeValueTable *table) const +void TextGeneratorV2::Value(const NodeValueRow &value, const NodeGlobals &globals, NodeValueTable *table) const { GenerateJob job; job.InsertValue(value); @@ -103,7 +103,7 @@ void TextGenerator::Value(const NodeValueRow &value, const NodeGlobals &globals, } } -void TextGenerator::GenerateFrame(FramePtr frame, const GenerateJob& job) const +void TextGeneratorV2::GenerateFrame(FramePtr frame, const GenerateJob& job) const { // This could probably be more optimized, but for now we use Qt to draw to a QImage. // QImages only support integer pixels and we use float pixels, so what we do here is draw onto diff --git a/app/node/generator/text/text.h b/app/node/generator/text/textv2.h similarity index 86% rename from app/node/generator/text/text.h rename to app/node/generator/text/textv2.h index d2be75cde..d9fb17386 100644 --- a/app/node/generator/text/text.h +++ b/app/node/generator/text/textv2.h @@ -18,21 +18,21 @@ ***/ -#ifndef TEXTGENERATOR_H -#define TEXTGENERATOR_H +#ifndef TEXTGENERATORV2_H +#define TEXTGENERATORV2_H #include "node/generator/shape/shapenodebase.h" namespace olive { -class TextGenerator : public ShapeNodeBase +class TextGeneratorV2 : public ShapeNodeBase { Q_OBJECT public: - TextGenerator(); + TextGeneratorV2(); - NODE_DEFAULT_DESTRUCTOR(TextGenerator) - NODE_COPY_FUNCTION(TextGenerator) + NODE_DEFAULT_DESTRUCTOR(TextGeneratorV2) + NODE_COPY_FUNCTION(TextGeneratorV2) virtual QString Name() const override; virtual QString id() const override; @@ -55,4 +55,4 @@ public: } -#endif // TEXTGENERATOR_H +#endif // TEXTGENERATORV2_H diff --git a/app/node/generator/text/textv3.cpp b/app/node/generator/text/textv3.cpp new file mode 100644 index 000000000..d5e791855 --- /dev/null +++ b/app/node/generator/text/textv3.cpp @@ -0,0 +1,140 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#include "textv3.h" + +#include +#include +#include + +#include "common/functiontimer.h" +#include "common/html.h" +#include "node/project/project.h" + +namespace olive { + +#define super ShapeNodeBase + +enum TextVerticalAlign { + kVerticalAlignTop, + kVerticalAlignCenter, + kVerticalAlignBottom, +}; + +const QString TextGeneratorV3::kTextInput = QStringLiteral("text_in"); + +TextGeneratorV3::TextGeneratorV3() : + ShapeNodeBase(false) +{ + AddInput(kTextInput, NodeValue::kText, QStringLiteral("

%1

").arg(tr("Sample Text"))); + + SetStandardValue(kSizeInput, QVector2D(400, 300)); + + text_gizmo_ = new TextGizmo(this); + text_gizmo_->SetInput(NodeInput(this, kTextInput)); +} + +QString TextGeneratorV3::Name() const +{ + return tr("Text"); +} + +QString TextGeneratorV3::id() const +{ + return QStringLiteral("org.olivevideoeditor.Olive.text3"); +} + +QVector TextGeneratorV3::Category() const +{ + return {kCategoryGenerator}; +} + +QString TextGeneratorV3::Description() const +{ + return tr("Generate rich text."); +} + +void TextGeneratorV3::Retranslate() +{ + super::Retranslate(); + + SetInputName(kTextInput, tr("Text")); +} + +void TextGeneratorV3::Value(const NodeValueRow &value, const NodeGlobals &globals, NodeValueTable *table) const +{ + GenerateJob job; + job.InsertValue(value); + job.SetAlphaChannelRequired(GenerateJob::kAlphaForceOn); + job.SetRequestedFormat(VideoParams::kFormatUnsigned8); + + // FIXME: Provide user override for this + job.SetColorspace(project()->color_manager()->GetDefaultInputColorSpace()); + + if (!job.GetValue(kTextInput).data().toString().isEmpty()) { + table->Push(NodeValue::kGenerateJob, QVariant::fromValue(job), this); + } +} + +void TextGeneratorV3::GenerateFrame(FramePtr frame, const GenerateJob& job) const +{ + QImage img(reinterpret_cast(frame->data()), frame->width(), frame->height(), frame->linesize_bytes(), QImage::Format_RGBA8888_Premultiplied); + img.fill(Qt::transparent); + + // 96 DPI in DPM (96 / 2.54 * 100) + const int dpm = 3780; + img.setDotsPerMeterX(dpm); + img.setDotsPerMeterY(dpm); + + QTextDocument text_doc; + text_doc.documentLayout()->setPaintDevice(&img); + + QString html = job.GetValue(kTextInput).data().toString(); + Html::HtmlToDoc(&text_doc, html); + + QVector2D size = job.GetValue(kSizeInput).data().value(); + text_doc.setTextWidth(size.x()); + + // Draw rich text onto image + QPainter p(&img); + p.scale(1.0 / frame->video_params().divider(), 1.0 / frame->video_params().divider()); + + QVector2D pos = job.GetValue(kPositionInput).data().value(); + p.translate(pos.x() - size.x()/2, pos.y() - size.y()/2); + p.translate(frame->video_params().width()/2, frame->video_params().height()/2); + p.setClipRect(0, 0, size.x(), size.y()); + + // Ensure default text color is white + QAbstractTextDocumentLayout::PaintContext ctx; + ctx.palette.setColor(QPalette::Text, Qt::white); + + text_doc.documentLayout()->draw(&p, ctx); +} + +void TextGeneratorV3::UpdateGizmoPositions(const NodeValueRow &row, const NodeGlobals &globals) +{ + super::UpdateGizmoPositions(row, globals); + + QRectF rect = poly_gizmo()->GetPolygon().boundingRect(); + text_gizmo_->SetRect(rect); + text_gizmo_->SetHtml(row[kTextInput].data().toString()); +} + +} diff --git a/app/node/generator/text/textv3.h b/app/node/generator/text/textv3.h new file mode 100644 index 000000000..1fd9237c4 --- /dev/null +++ b/app/node/generator/text/textv3.h @@ -0,0 +1,60 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#ifndef TEXTGENERATORV3_H +#define TEXTGENERATORV3_H + +#include "node/generator/shape/shapenodebase.h" +#include "node/gizmo/text.h" + +namespace olive { + +class TextGeneratorV3 : public ShapeNodeBase +{ + Q_OBJECT +public: + TextGeneratorV3(); + + NODE_DEFAULT_DESTRUCTOR(TextGeneratorV3) + NODE_COPY_FUNCTION(TextGeneratorV3) + + virtual QString Name() const override; + virtual QString id() const override; + virtual QVector Category() const override; + virtual QString Description() const override; + + virtual void Retranslate() override; + + virtual void Value(const NodeValueRow& value, const NodeGlobals &globals, NodeValueTable *table) const override; + + virtual void GenerateFrame(FramePtr frame, const GenerateJob &job) const override; + + virtual void UpdateGizmoPositions(const NodeValueRow &row, const NodeGlobals &globals) override; + + static const QString kTextInput; + +private: + TextGizmo *text_gizmo_; + +}; + +} + +#endif // TEXTGENERATORV3_H diff --git a/app/node/gizmo/CMakeLists.txt b/app/node/gizmo/CMakeLists.txt new file mode 100644 index 000000000..3c43aaf85 --- /dev/null +++ b/app/node/gizmo/CMakeLists.txt @@ -0,0 +1,36 @@ +# Olive - Non-Linear Video Editor +# Copyright (C) 2021 Olive Team +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +set(OLIVE_SOURCES + ${OLIVE_SOURCES} + node/gizmo/draggable.cpp + node/gizmo/draggable.h + node/gizmo/gizmo.cpp + node/gizmo/gizmo.h + node/gizmo/line.cpp + node/gizmo/line.h + node/gizmo/path.cpp + node/gizmo/path.h + node/gizmo/point.cpp + node/gizmo/point.h + node/gizmo/polygon.cpp + node/gizmo/polygon.h + node/gizmo/screen.cpp + node/gizmo/screen.h + node/gizmo/text.cpp + node/gizmo/text.h + PARENT_SCOPE +) diff --git a/app/node/gizmo/draggable.cpp b/app/node/gizmo/draggable.cpp new file mode 100644 index 000000000..d01c2144a --- /dev/null +++ b/app/node/gizmo/draggable.cpp @@ -0,0 +1,52 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#include "draggable.h" + +namespace olive { + +DraggableGizmo::DraggableGizmo(QObject *parent) + : NodeGizmo{parent}, + drag_value_behavior_(kAbsolute) +{ +} + +void DraggableGizmo::DragStart(const NodeValueRow &row, double abs_x, double abs_y, const rational &time) +{ + for (int i=0; i. + +***/ + +#ifndef DRAGGABLEGIZMO_H +#define DRAGGABLEGIZMO_H + +#include "common/rational.h" +#include "gizmo.h" +#include "node/inputdragger.h" +#include "undo/undocommand.h" + +namespace olive { + +class DraggableGizmo : public NodeGizmo +{ + Q_OBJECT +public: + /// Changes what the X/Y coordinates emitted from HandleMovement specify + enum DragValueBehavior { + /// X/Y will be the exact mouse coordinates (in sequence pixels) + kAbsolute, + + /// X/Y will be the movement since the last time HandleMovement was called + kDeltaFromPrevious, + + /// X/Y will be the movement from the start of the drag + kDeltaFromStart + }; + + explicit DraggableGizmo(QObject *parent = nullptr); + + void DragStart(const NodeValueRow &row, double abs_x, double abs_y, const olive::rational &time); + + void DragMove(double x, double y, const Qt::KeyboardModifiers &modifiers); + + void DragEnd(olive::MultiUndoCommand *command); + + void AddInput(const NodeKeyframeTrackReference &input) + { + inputs_.append(input); + draggers_.append(NodeInputDragger()); + } + + QVector &GetDraggers() + { + return draggers_; + } + + DragValueBehavior GetDragValueBehavior() const { return drag_value_behavior_; } + void SetDragValueBehavior(DragValueBehavior d) { drag_value_behavior_ = d; } + +signals: + void HandleStart(const olive::NodeValueRow &row, double x, double y, const olive::rational &time); + + void HandleMovement(double x, double y, const Qt::KeyboardModifiers &modifiers); + +private: + QVector inputs_; + + QVector draggers_; + + DragValueBehavior drag_value_behavior_; + +}; + +} + +#endif // DRAGGABLEGIZMO_H diff --git a/app/node/gizmo/gizmo.cpp b/app/node/gizmo/gizmo.cpp new file mode 100644 index 000000000..f885a62e9 --- /dev/null +++ b/app/node/gizmo/gizmo.cpp @@ -0,0 +1,30 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#include "gizmo.h" + +namespace olive { + +NodeGizmo::NodeGizmo(QObject *parent) +{ + setParent(parent); +} + +} diff --git a/app/node/gizmo/gizmo.h b/app/node/gizmo/gizmo.h new file mode 100644 index 000000000..5a3e585d2 --- /dev/null +++ b/app/node/gizmo/gizmo.h @@ -0,0 +1,51 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#ifndef NODEGIZMO_H +#define NODEGIZMO_H + +#include +#include + +#include "node/globals.h" + +namespace olive { + +class NodeGizmo : public QObject +{ + Q_OBJECT +public: + explicit NodeGizmo(QObject *parent = nullptr); + + virtual void Draw(QPainter *p) const {} + + const NodeGlobals &GetGlobals() const { return globals_; } + void SetGlobals(const NodeGlobals &globals) { globals_ = globals; } + +signals: + +private: + NodeGlobals globals_; + +}; + +} + +#endif // NODEGIZMO_H diff --git a/app/node/gizmo/line.cpp b/app/node/gizmo/line.cpp new file mode 100644 index 000000000..c1f63027e --- /dev/null +++ b/app/node/gizmo/line.cpp @@ -0,0 +1,38 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#include "line.h" + +namespace olive { + +LineGizmo::LineGizmo(QObject *parent) : + NodeGizmo(parent) +{ +} + +void LineGizmo::Draw(QPainter *p) const +{ + p->setBrush(Qt::NoBrush); + p->setPen(QPen(Qt::white, 0)); + + p->drawLine(line_); +} + +} diff --git a/app/node/gizmo/line.h b/app/node/gizmo/line.h new file mode 100644 index 000000000..79861b269 --- /dev/null +++ b/app/node/gizmo/line.h @@ -0,0 +1,48 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#ifndef LINEGIZMO_H +#define LINEGIZMO_H + +#include + +#include "gizmo.h" + +namespace olive { + +class LineGizmo : public NodeGizmo +{ + Q_OBJECT +public: + LineGizmo(QObject *parent = nullptr); + + const QLineF &GetLine() const { return line_; } + void SetLine(const QLineF &line) { line_ = line; } + + virtual void Draw(QPainter *p) const override; + +private: + QLineF line_; + +}; + +} + +#endif // LINEGIZMO_H diff --git a/app/node/gizmo/path.cpp b/app/node/gizmo/path.cpp new file mode 100644 index 000000000..95262093a --- /dev/null +++ b/app/node/gizmo/path.cpp @@ -0,0 +1,39 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#include "path.h" + +namespace olive { + +PathGizmo::PathGizmo(QObject *parent) : + DraggableGizmo{parent} +{ + +} + +void PathGizmo::Draw(QPainter *p) const +{ + p->setPen(QPen(Qt::white, 0)); + p->setBrush(Qt::NoBrush); + + p->drawPath(path_); +} + +} diff --git a/app/node/gizmo/path.h b/app/node/gizmo/path.h new file mode 100644 index 000000000..5e1bf0859 --- /dev/null +++ b/app/node/gizmo/path.h @@ -0,0 +1,48 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#ifndef PATHGIZMO_H +#define PATHGIZMO_H + +#include + +#include "draggable.h" + +namespace olive { + +class PathGizmo : public DraggableGizmo +{ + Q_OBJECT +public: + explicit PathGizmo(QObject *parent = nullptr); + + const QPainterPath &GetPath() const { return path_; } + void SetPath(const QPainterPath &path) { path_ = path; } + + virtual void Draw(QPainter *p) const override; + +private: + QPainterPath path_; + +}; + +} + +#endif // PATHGIZMO_H diff --git a/app/node/gizmo/point.cpp b/app/node/gizmo/point.cpp new file mode 100644 index 000000000..3926209a6 --- /dev/null +++ b/app/node/gizmo/point.cpp @@ -0,0 +1,99 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#include "point.h" + +#include + +namespace olive { + +PointGizmo::PointGizmo(const Shape &shape, bool smaller, QObject *parent) : + DraggableGizmo{parent}, + shape_(shape), + smaller_(smaller) +{ +} + +PointGizmo::PointGizmo(const Shape &shape, QObject *parent) : + PointGizmo(shape, false, parent) +{ +} + +PointGizmo::PointGizmo(QObject *parent) : + PointGizmo(kSquare, parent) +{ +} + +void PointGizmo::Draw(QPainter *p) const +{ + QRectF rect = GetDrawingRect(GetStandardRadius() / p->transform().m11()); + + if (shape_ != kAnchorPoint) { + p->setPen(Qt::NoPen); + p->setBrush(Qt::white); + } + + switch (shape_) { + case kSquare: + p->drawRect(rect); + break; + case kCircle: + p->drawEllipse(rect); + break; + case kAnchorPoint: + p->setPen(QPen(Qt::white, 0)); + p->setBrush(Qt::NoBrush); + + p->drawEllipse(rect); + p->drawLines({QPointF(rect.left(), rect.center().y()), + QPointF(rect.right(), rect.center().y()), + QPointF(rect.center().x(), rect.top()), + QPointF(rect.center().x(), rect.bottom())}); + break; + } +} + +QRectF PointGizmo::GetClickingRect(const QTransform &t) const +{ + return GetDrawingRect(GetStandardRadius() / t.m11() * 1.5); +} + +double PointGizmo::GetStandardRadius() +{ + return QFontMetrics(qApp->font()).height() * 0.25; +} + +QRectF PointGizmo::GetDrawingRect(double radius) const +{ + if (shape_ == kAnchorPoint) { + radius *= 2; + } + + if (smaller_) { + radius *= 0.5; + } + + return QRectF(point_.x() - radius, + point_.y() - radius, + 2*radius, + 2*radius); +} + +} diff --git a/app/node/gizmo/point.h b/app/node/gizmo/point.h new file mode 100644 index 000000000..b9ec47488 --- /dev/null +++ b/app/node/gizmo/point.h @@ -0,0 +1,72 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#ifndef POINTGIZMO_H +#define POINTGIZMO_H + +#include + +#include "draggable.h" + +namespace olive { + +class PointGizmo : public DraggableGizmo +{ + Q_OBJECT +public: + enum Shape { + kSquare, + kCircle, + kAnchorPoint + }; + + explicit PointGizmo(const Shape &shape, bool smaller, QObject *parent = nullptr); + explicit PointGizmo(const Shape &shape, QObject *parent = nullptr); + explicit PointGizmo(QObject *parent = nullptr); + + const Shape &GetShape() const { return shape_; } + void SetShape(const Shape &s) { shape_ = s; } + + const QPointF &GetPoint() const { return point_; } + void SetPoint(const QPointF &pt) { point_ = pt; } + + bool GetSmaller() const { return smaller_; } + void SetSmaller(bool e) { smaller_ = e; } + + virtual void Draw(QPainter *p) const override; + + QRectF GetClickingRect(const QTransform &t) const; + +private: + static double GetStandardRadius(); + + QRectF GetDrawingRect(double radius) const; + + Shape shape_; + + QPointF point_; + + bool smaller_; + +}; + +} + +#endif // POINTGIZMO_H diff --git a/app/node/gizmo/polygon.cpp b/app/node/gizmo/polygon.cpp new file mode 100644 index 000000000..29614c038 --- /dev/null +++ b/app/node/gizmo/polygon.cpp @@ -0,0 +1,38 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#include "polygon.h" + +namespace olive { + +PolygonGizmo::PolygonGizmo(QObject *parent) + : DraggableGizmo{parent} +{ +} + +void PolygonGizmo::Draw(QPainter *p) const +{ + p->setPen(QPen(Qt::white, 0)); + p->setBrush(Qt::NoBrush); + + p->drawPolyline(polygon_); +} + +} diff --git a/app/node/gizmo/polygon.h b/app/node/gizmo/polygon.h new file mode 100644 index 000000000..92e2a5398 --- /dev/null +++ b/app/node/gizmo/polygon.h @@ -0,0 +1,48 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#ifndef POLYGONGIZMO_H +#define POLYGONGIZMO_H + +#include + +#include "draggable.h" + +namespace olive { + +class PolygonGizmo : public DraggableGizmo +{ + Q_OBJECT +public: + explicit PolygonGizmo(QObject *parent = nullptr); + + const QPolygonF &GetPolygon() const { return polygon_; } + void SetPolygon(const QPolygonF &polygon) { polygon_ = polygon; } + + virtual void Draw(QPainter *p) const override; + +private: + QPolygonF polygon_; + +}; + +} + +#endif // POLYGONGIZMO_H diff --git a/app/node/gizmo/screen.cpp b/app/node/gizmo/screen.cpp new file mode 100644 index 000000000..2848c8979 --- /dev/null +++ b/app/node/gizmo/screen.cpp @@ -0,0 +1,31 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#include "screen.h" + +namespace olive { + +ScreenGizmo::ScreenGizmo(QObject *parent) + : DraggableGizmo{parent} +{ + +} + +} diff --git a/app/node/gizmo/screen.h b/app/node/gizmo/screen.h new file mode 100644 index 000000000..0f0e76444 --- /dev/null +++ b/app/node/gizmo/screen.h @@ -0,0 +1,38 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#ifndef SCREENGIZMO_H +#define SCREENGIZMO_H + +#include "draggable.h" + +namespace olive { + +class ScreenGizmo : public DraggableGizmo +{ + Q_OBJECT +public: + explicit ScreenGizmo(QObject *parent = nullptr); + +}; + +} + +#endif // SCREENGIZMO_H diff --git a/app/node/gizmo/text.cpp b/app/node/gizmo/text.cpp new file mode 100644 index 000000000..031c971f7 --- /dev/null +++ b/app/node/gizmo/text.cpp @@ -0,0 +1,43 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#include "text.h" + +#include "core.h" +#include "undo/undocommand.h" + +namespace olive { + +TextGizmo::TextGizmo(QObject *parent) + : NodeGizmo{parent} +{ + +} + +void TextGizmo::UpdateInputHtml(const QString &s, const rational &time) +{ + if (input_.IsValid()) { + MultiUndoCommand *command = new MultiUndoCommand(); + Node::SetValueAtTime(input_.input(), time, s, input_.track(), command, true); + Core::instance()->undo_stack()->pushIfHasChildren(command); + } +} + +} diff --git a/app/node/gizmo/text.h b/app/node/gizmo/text.h new file mode 100644 index 000000000..6a8876cee --- /dev/null +++ b/app/node/gizmo/text.h @@ -0,0 +1,56 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#ifndef TEXTGIZMO_H +#define TEXTGIZMO_H + +#include "gizmo.h" +#include "node/param.h" + +namespace olive { + +class TextGizmo : public NodeGizmo +{ + Q_OBJECT +public: + explicit TextGizmo(QObject *parent = nullptr); + + const QRectF &GetRect() const { return rect_; } + void SetRect(const QRectF &r) { rect_ = r; } + + const QString &GetHtml() const { return text_; } + void SetHtml(const QString &t) { text_ = t; } + + void SetInput(const NodeKeyframeTrackReference &input) { input_ = input; } + + void UpdateInputHtml(const QString &s, const rational &time); + +private: + QRectF rect_; + + QString text_; + + NodeKeyframeTrackReference input_; + +}; + +} + +#endif // TEXTGIZMO_H diff --git a/app/node/globals.h b/app/node/globals.h index 921caaf33..17ba9d429 100644 --- a/app/node/globals.h +++ b/app/node/globals.h @@ -30,6 +30,8 @@ namespace olive { class NodeGlobals { public: + NodeGlobals(){} + NodeGlobals(const QVector2D &resolution, const rational &pixel_aspect, const TimeRange &time) : resolution_(resolution), pixel_aspect_(pixel_aspect), diff --git a/app/node/inputdragger.h b/app/node/inputdragger.h index 6ab0010f9..5b530d515 100644 --- a/app/node/inputdragger.h +++ b/app/node/inputdragger.h @@ -51,6 +51,16 @@ public: return start_value_; } + const NodeKeyframeTrackReference &GetInput() const + { + return input_; + } + + const rational &GetTime() const + { + return time_; + } + private: NodeKeyframeTrackReference input_; diff --git a/app/node/node.cpp b/app/node/node.cpp index 57bf193b5..dd4f98878 100644 --- a/app/node/node.cpp +++ b/app/node/node.cpp @@ -1248,28 +1248,6 @@ void Node::IgnoreHashingFrom(const QString &input_id) ignore_when_hashing_.append(input_id); } -bool Node::HasGizmos() const -{ - return false; -} - -void Node::DrawGizmos(const NodeValueRow &, const NodeGlobals &, QPainter *) -{ -} - -bool Node::GizmoPress(const NodeValueRow &, const NodeGlobals &, const QPointF &) -{ - return false; -} - -void Node::GizmoMove(const QPointF &, const rational&, const Qt::KeyboardModifiers &) -{ -} - -void Node::GizmoRelease(MultiUndoCommand *) -{ -} - const QString &Node::GetLabel() const { return label_; @@ -1760,39 +1738,6 @@ void Node::ClearElement(const QString& input, int index) SetSplitStandardValue(input, GetSplitDefaultValue(input), index); } -QRectF Node::CreateGizmoHandleRect(const QPointF &pt, int radius) -{ - return QRectF(pt.x() - radius, - pt.y() - radius, - 2*radius, - 2*radius); -} - -double Node::GetGizmoHandleRadius(const QTransform &transform) -{ - double raw_value = QFontMetrics(qApp->font()).height() * 0.25; - - raw_value /= transform.m11(); - - return raw_value; -} - -void Node::DrawAndExpandGizmoHandles(QPainter *p, int handle_radius, QRectF *rects, int count) -{ - p->setPen(Qt::NoPen); - p->setBrush(Qt::white); - - for (int i=0; idrawRect(r); - - // Extend rect so it's easier to drag with handle - r.adjust(-handle_radius, -handle_radius, handle_radius, handle_radius); - } -} - void Node::InputValueChangedEvent(const QString &input, int element) { Q_UNUSED(input) @@ -1827,9 +1772,7 @@ void Node::childEvent(QChildEvent *event) { super::childEvent(event); - NodeKeyframe* key = dynamic_cast(event->child()); - - if (key) { + if (NodeKeyframe* key = dynamic_cast(event->child())) { NodeInput i(this, key->input(), key->element()); if (event->type() == QEvent::ChildAdded) { @@ -1857,6 +1800,12 @@ void Node::childEvent(QChildEvent *event) GetImmediate(key->input(), key->element())->remove_keyframe(key); ParameterValueChanged(i, time_affected); } + } else if (NodeGizmo *gizmo = dynamic_cast(event->child())) { + if (event->type() == QEvent::ChildAdded) { + gizmos_.append(gizmo); + } else if (event->type() == QEvent::ChildRemoved) { + gizmos_.removeOne(gizmo); + } } } @@ -1945,6 +1894,44 @@ void Node::InvalidateFromKeyframeTypeChanged() emit KeyframeTypeChanged(key); } +void Node::SetValueAtTime(const NodeInput &input, const rational &time, const QVariant &value, int track, MultiUndoCommand *command, bool insert_on_all_tracks_if_no_key) +{ + if (input.IsKeyframing()) { + rational node_time = time; + + NodeKeyframe* existing_key = input.GetKeyframeAtTimeOnTrack(node_time, track); + + if (existing_key) { + command->add_child(new NodeParamSetKeyframeValueCommand(existing_key, value)); + } else { + // No existing key, create a new one + int nb_tracks = NodeValue::get_number_of_keyframe_tracks(input.node()->GetInputDataType(input.input())); + for (int i=0; iGetSplitValueAtTimeOnTrack(input.input(), node_time, i, input.element()); + } + + NodeKeyframe* new_key = new NodeKeyframe(node_time, + track_value, + input.node()->GetBestKeyframeTypeForTimeOnTrack(NodeKeyframeTrackReference(input, i), node_time), + i, + input.element(), + input.input()); + + command->add_child(new NodeParamInsertKeyframeCommand(input.node(), new_key)); + } + } + } else { + command->add_child(new NodeParamSetStandardValueCommand(NodeKeyframeTrackReference(input, track), value)); + } +} + Project *Node::ArrayInsertCommand::GetRelevantProject() const { return node_->project(); diff --git a/app/node/node.h b/app/node/node.h index cd168d84f..3268cc34e 100644 --- a/app/node/node.h +++ b/app/node/node.h @@ -35,6 +35,7 @@ #include "common/rational.h" #include "common/timerange.h" #include "common/xmlutils.h" +#include "node/gizmo/draggable.h" #include "node/globals.h" #include "node/keyframe.h" #include "node/inputimmediate.h" @@ -840,13 +841,17 @@ public: */ virtual void Value(const NodeValueRow& value, const NodeGlobals &globals, NodeValueTable *table) const; - virtual bool HasGizmos() const; + bool HasGizmos() const + { + return !gizmos_.isEmpty(); + } - virtual void DrawGizmos(const NodeValueRow& row, const NodeGlobals &globals, QPainter* p); + const QVector &GetGizmos() const + { + return gizmos_; + } - virtual bool GizmoPress(const NodeValueRow& row, const NodeGlobals &globals, const QPointF& p); - virtual void GizmoMove(const QPointF& p, const rational &time, const Qt::KeyboardModifiers &modifiers); - virtual void GizmoRelease(MultiUndoCommand *command); + virtual void UpdateGizmoPositions(const NodeValueRow &row, const NodeGlobals &globals){} const QString& GetLabel() const; void SetLabel(const QString& s); @@ -942,6 +947,8 @@ public: InputFlags GetInputFlags(const QString& input) const; + static void SetValueAtTime(const NodeInput &input, const rational &time, const QVariant &value, int track, MultiUndoCommand *command, bool insert_on_all_tracks_if_no_key); + protected: virtual void Hash(QCryptographicHash& hash, const NodeGlobals &globals, const VideoParams& video_params) const; @@ -1008,12 +1015,6 @@ protected: kGizmoScaleCount, }; - static QRectF CreateGizmoHandleRect(const QPointF& pt, int radius); - - static double GetGizmoHandleRadius(const QTransform& transform); - - static void DrawAndExpandGizmoHandles(QPainter* p, int handle_radius, QRectF* rects, int count); - virtual void LinkChangeEvent(){} virtual void InputValueChangedEvent(const QString& input, int element); @@ -1038,6 +1039,34 @@ protected: flags_ = f; } + template + T *AddDraggableGizmo(const QVector &inputs = QVector(), DraggableGizmo::DragValueBehavior behavior = DraggableGizmo::kDeltaFromStart) + { + T *gizmo = new T(this); + gizmo->SetDragValueBehavior(behavior); + foreach (const NodeKeyframeTrackReference &input, inputs) { + gizmo->AddInput(input); + } + connect(gizmo, &DraggableGizmo::HandleStart, this, &Node::GizmoDragStart); + connect(gizmo, &DraggableGizmo::HandleMovement, this, &Node::GizmoDragMove); + return gizmo; + } + + template + T *AddDraggableGizmo(const QStringList &inputs, DraggableGizmo::DragValueBehavior behavior = DraggableGizmo::kDeltaFromStart) + { + QVector refs(inputs.size()); + for (int i=0; i(refs, behavior); + } + +protected slots: + virtual void GizmoDragStart(const olive::NodeValueRow &row, double x, double y, const olive::rational &time){} + + virtual void GizmoDragMove(double x, double y, const Qt::KeyboardModifiers &modifiers){} + signals: /** * @brief Signal emitted when SetLabel() is called @@ -1315,6 +1344,8 @@ private: uint64_t flags_; + QVector gizmos_; + private slots: /** * @brief Slot when a keyframe's time changes to keep the keyframes correctly sorted by time diff --git a/app/node/value.h b/app/node/value.h index 5e131b06e..518517b78 100644 --- a/app/node/value.h +++ b/app/node/value.h @@ -25,6 +25,8 @@ #include #include +#include "undo/undocommand.h" + namespace olive { class Node; diff --git a/app/render/job/generatejob.h b/app/render/job/generatejob.h index c2f7d2da6..465ba1609 100644 --- a/app/render/job/generatejob.h +++ b/app/render/job/generatejob.h @@ -48,11 +48,16 @@ public: void SetRequestedFormat(VideoParams::Format f) { requested_format_ = f; } + const QString &GetColorspace() const { return colorspace_; } + void SetColorspace(const QString &s) { colorspace_ = s; } + private: AlphaChannelSetting alpha_channel_required_; VideoParams::Format requested_format_; + QString colorspace_; + }; } diff --git a/app/render/renderprocessor.cpp b/app/render/renderprocessor.cpp index 970b2f326..480ed417f 100644 --- a/app/render/renderprocessor.cpp +++ b/app/render/renderprocessor.cpp @@ -578,6 +578,15 @@ TexturePtr RenderProcessor::ProcessFrameGeneration(const Node *node, const Gener frame->data(), frame->linesize_pixels()); + if (!job.GetColorspace().isEmpty()) { + // Convert to reference space + TexturePtr dest = render_ctx_->CreateTexture(GetCacheVideoParams()); + ColorManager* color_manager = Node::ValueToPtr(ticket_->property("colormanager")); + ColorProcessorPtr cp = ColorProcessor::Create(color_manager, job.GetColorspace(), color_manager->GetReferenceColorSpace()); + render_ctx_->BlitColorManaged(cp, texture, Renderer::kAlphaAssociated, dest.get()); + texture = dest; + } + return texture; } diff --git a/app/ui/icons/icons.cpp b/app/ui/icons/icons.cpp index 635aaf807..0d61f5843 100644 --- a/app/ui/icons/icons.cpp +++ b/app/ui/icons/icons.cpp @@ -65,6 +65,13 @@ QIcon icon::TriUp; QIcon icon::TriLeft; QIcon icon::TriDown; QIcon icon::TriRight; +QIcon icon::TextBold; +QIcon icon::TextItalic; +QIcon icon::TextUnderline; +QIcon icon::TextAlignLeft; +QIcon icon::TextAlignRight; +QIcon icon::TextAlignCenter; +QIcon icon::TextAlignJustify; QIcon icon::Snapping; QIcon icon::ZoomIn; QIcon icon::ZoomOut; @@ -119,6 +126,14 @@ void icon::LoadAll(const QString& theme) TriDown = Create(theme, "tri-down"); TriRight = Create(theme, "tri-right"); + TextBold = Create(theme, "text-bold"); + TextItalic = Create(theme, "text-italic"); + TextUnderline = Create(theme, "text-underline"); + TextAlignLeft = Create(theme, "align-left"); + TextAlignRight = Create(theme, "align-right"); + TextAlignCenter = Create(theme, "align-center"); + TextAlignJustify = Create(theme, "align-justify-all"); + Snapping = Create(theme, "magnet"); ZoomIn = Create(theme, "zoomin"); ZoomOut = Create(theme, "zoomout"); diff --git a/app/ui/icons/icons.h b/app/ui/icons/icons.h index 2bca32bb5..1cd60e0f9 100644 --- a/app/ui/icons/icons.h +++ b/app/ui/icons/icons.h @@ -74,6 +74,15 @@ extern QIcon TriLeft; extern QIcon TriDown; extern QIcon TriRight; +// Text +extern QIcon TextBold; +extern QIcon TextItalic; +extern QIcon TextUnderline; +extern QIcon TextAlignLeft; +extern QIcon TextAlignRight; +extern QIcon TextAlignCenter; +extern QIcon TextAlignJustify; + // Miscellaneous Icons extern QIcon Snapping; extern QIcon ZoomIn; diff --git a/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp b/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp index 05a5cccce..feca63029 100644 --- a/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp +++ b/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp @@ -198,40 +198,7 @@ void NodeParamViewWidgetBridge::SetInputValue(const QVariant &value, int track) void NodeParamViewWidgetBridge::SetInputValueInternal(const QVariant &value, int track, MultiUndoCommand *command, bool insert_on_all_tracks_if_no_key) { - if (GetInnerInput().IsKeyframing()) { - rational node_time = GetCurrentTimeAsNodeTime(); - - NodeKeyframe* existing_key = GetInnerInput().GetKeyframeAtTimeOnTrack(node_time, track); - - if (existing_key) { - command->add_child(new NodeParamSetKeyframeValueCommand(existing_key, value)); - } else { - // No existing key, create a new one - int nb_tracks = NodeValue::get_number_of_keyframe_tracks(GetInnerInput().node()->GetInputDataType(GetInnerInput().input())); - for (int i=0; iGetSplitValueAtTimeOnTrack(GetInnerInput().input(), node_time, i, GetInnerInput().element()); - } - - NodeKeyframe* new_key = new NodeKeyframe(node_time, - track_value, - GetInnerInput().node()->GetBestKeyframeTypeForTimeOnTrack(NodeKeyframeTrackReference(GetInnerInput(), i), node_time), - i, - GetInnerInput().element(), - GetInnerInput().input()); - - command->add_child(new NodeParamInsertKeyframeCommand(GetInnerInput().node(), new_key)); - } - } - } else { - command->add_child(new NodeParamSetStandardValueCommand(NodeKeyframeTrackReference(GetInnerInput(), track), value)); - } + Node::SetValueAtTime(GetInnerInput(), GetCurrentTimeAsNodeTime(), value, track, command, insert_on_all_tracks_if_no_key); } void NodeParamViewWidgetBridge::ProcessSlider(NumericSliderBase *slider, int slider_track, const QVariant &value) diff --git a/app/widget/slider/base/sliderbase.cpp b/app/widget/slider/base/sliderbase.cpp index 7ca14d1f0..7549e9f5c 100644 --- a/app/widget/slider/base/sliderbase.cpp +++ b/app/widget/slider/base/sliderbase.cpp @@ -57,6 +57,7 @@ SliderBase::SliderBase(QWidget *parent) : void SliderBase::SetAlignment(Qt::Alignment alignment) { label_->setAlignment(alignment); + editor_->setAlignment(alignment); } bool SliderBase::IsTristate() const diff --git a/app/widget/timelinewidget/tool/add.cpp b/app/widget/timelinewidget/tool/add.cpp index a9c9d3615..a8f778b5f 100644 --- a/app/widget/timelinewidget/tool/add.cpp +++ b/app/widget/timelinewidget/tool/add.cpp @@ -24,7 +24,7 @@ #include "node/factory.h" #include "node/generator/shape/shapenode.h" #include "node/generator/solid/solid.h" -#include "node/generator/text/text.h" +#include "node/generator/text/textv3.h" #include "widget/timelinewidget/timelinewidget.h" #include "widget/timelinewidget/undo/timelineundopointer.h" @@ -138,7 +138,7 @@ void AddTool::MouseRelease(TimelineViewMouseEvent *event) break; case olive::Tool::kAddableTitle: { - node_to_add = new TextGenerator(); + node_to_add = new TextGeneratorV3(); break; } case olive::Tool::kAddableBars: diff --git a/app/widget/viewer/CMakeLists.txt b/app/widget/viewer/CMakeLists.txt index 345702e69..074b0f3ef 100644 --- a/app/widget/viewer/CMakeLists.txt +++ b/app/widget/viewer/CMakeLists.txt @@ -32,6 +32,8 @@ set(OLIVE_SOURCES widget/viewer/viewersafemargininfo.h widget/viewer/viewersizer.cpp widget/viewer/viewersizer.h + widget/viewer/viewertexteditor.cpp + widget/viewer/viewertexteditor.h widget/viewer/viewerwindow.cpp widget/viewer/viewerwindow.h PARENT_SCOPE diff --git a/app/widget/viewer/viewerdisplay.cpp b/app/widget/viewer/viewerdisplay.cpp index 0c79e7dd2..a0087bc8c 100644 --- a/app/widget/viewer/viewerdisplay.cpp +++ b/app/widget/viewer/viewerdisplay.cpp @@ -21,6 +21,8 @@ #include "viewerdisplay.h" #include +#include +#include #include #include #include @@ -28,12 +30,23 @@ #include #include #include +#include +#include +#include #include "common/define.h" #include "common/functiontimer.h" +#include "common/html.h" #include "config/config.h" #include "core.h" +#include "node/gizmo/path.h" +#include "node/gizmo/point.h" +#include "node/gizmo/polygon.h" +#include "node/gizmo/screen.h" +#include "node/gizmo/text.h" #include "node/traverser.h" +#include "viewertexteditor.h" +#include "window/mainwindow/mainwindow.h" namespace olive { @@ -44,7 +57,8 @@ ViewerDisplayWidget::ViewerDisplayWidget(QWidget *parent) : deinterlace_texture_(nullptr), signal_cursor_color_(false), gizmos_(nullptr), - gizmo_click_(false), + current_gizmo_(nullptr), + gizmo_drag_started_(false), hand_dragging_(false), deinterlace_(false), show_fps_(false), @@ -175,7 +189,7 @@ void ViewerDisplayWidget::SetTime(const rational &time) } } -QPoint ViewerDisplayWidget::TransformViewerSpaceToBufferSpace(QPoint pos) +QPointF ViewerDisplayWidget::TransformViewerSpaceToBufferSpace(const QPointF &pos) { /* * Inversion will only fail if the viewer has been scaled by 0 in any direction @@ -204,12 +218,12 @@ void ViewerDisplayWidget::IncrementSkippedFrames() void ViewerDisplayWidget::mousePressEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton && gizmos_ - && gizmos_->GizmoPress(gizmo_db_, NodeTraverser::GenerateGlobals(gizmo_params_, GenerateGizmoTime()), TransformViewerSpaceToBufferSpace(event->pos()))) { + && (current_gizmo_ = TryGizmoPress(gizmo_db_, TransformViewerSpaceToBufferSpace(event->pos())))) { // Handle gizmo click - gizmo_click_ = true; - gizmo_drag_time_ = GetGizmoTime(); gizmo_start_drag_ = event->pos(); + gizmo_last_drag_ = gizmo_start_drag_; + current_gizmo_->SetGlobals(NodeTraverser::GenerateGlobals(gizmo_params_, GenerateGizmoTime())); } else if (IsHandDrag(event)) { @@ -242,14 +256,38 @@ void ViewerDisplayWidget::mouseMoveEvent(QMouseEvent *event) hand_last_drag_pos_ = event->pos(); - } else if (gizmo_click_) { + } else if (current_gizmo_) { // Signal movement - gizmos_->GizmoMove(TransformViewerSpaceToBufferSpace(event->pos()), - gizmo_drag_time_, - event->modifiers()); - gizmo_start_drag_ = event->pos(); - update(); + if (DraggableGizmo *draggable = dynamic_cast(current_gizmo_)) { + if (!gizmo_drag_started_) { + QPointF start = TransformViewerSpaceToBufferSpace(gizmo_start_drag_); + + rational gizmo_time = GetGizmoTime(); + NodeTraverser t; + t.SetCacheVideoParams(gizmo_params_); + NodeValueRow row = t.GenerateRow(gizmos_, TimeRange(gizmo_time, gizmo_time + gizmo_params_.frame_rate_as_time_base())); + + draggable->DragStart(row, start.x(), start.y(), gizmo_time); + gizmo_drag_started_ = true; + } + + QPointF v = TransformViewerSpaceToBufferSpace(event->pos()); + switch (draggable->GetDragValueBehavior()) { + case DraggableGizmo::kAbsolute: + // Above value is correct + break; + case DraggableGizmo::kDeltaFromPrevious: + v -= TransformViewerSpaceToBufferSpace(gizmo_last_drag_); + gizmo_last_drag_ = event->pos(); + break; + case DraggableGizmo::kDeltaFromStart: + v -= TransformViewerSpaceToBufferSpace(gizmo_start_drag_); + break; + } + + draggable->DragMove(v.x(), v.y(), event->modifiers()); + } } else { @@ -268,13 +306,18 @@ void ViewerDisplayWidget::mouseReleaseEvent(QMouseEvent *event) hand_dragging_ = false; UpdateCursor(); - } else if (gizmo_click_) { + } else if (current_gizmo_) { // Handle gizmo - MultiUndoCommand *command = new MultiUndoCommand(); - gizmos_->GizmoRelease(command); - Core::instance()->undo_stack()->pushIfHasChildren(command); - gizmo_click_ = false; + if (gizmo_drag_started_) { + MultiUndoCommand *command = new MultiUndoCommand(); + if (DraggableGizmo *draggable = dynamic_cast(current_gizmo_)) { + draggable->DragEnd(command); + } + Core::instance()->undo_stack()->pushIfHasChildren(command); + gizmo_drag_started_ = false; + } + current_gizmo_ = nullptr; } else { @@ -284,6 +327,65 @@ void ViewerDisplayWidget::mouseReleaseEvent(QMouseEvent *event) } } +void ViewerDisplayWidget::mouseDoubleClickEvent(QMouseEvent *event) +{ + if (event->button() == Qt::LeftButton && gizmos_) { + QPointF ptr = TransformViewerSpaceToBufferSpace(event->pos()); + foreach (NodeGizmo *g, gizmos_->GetGizmos()) { + if (TextGizmo *text = dynamic_cast(g)) { + if (text->GetRect().contains(ptr)) { + QTransform gizmo_transform = GenerateGizmoTransform(); + + ViewerTextEditor *text_edit = new ViewerTextEditor(gizmo_transform.m11(), this); + Html::HtmlToDoc(text_edit->document(), text->GetHtml()); + text_edit->setProperty("gizmo", reinterpret_cast(text)); + + QRectF transformed_geom = gizmo_transform.map(text->GetRect()).boundingRect(); + text_edit->setGeometry(transformed_geom.toRect()); + + ViewerTextEditorToolBar *toolbar = new ViewerTextEditorToolBar(this); + toolbar->setWindowFlags(Qt::FramelessWindowHint | Qt::Window | Qt::WindowStaysOnTopHint); + toolbar->resize(toolbar->sizeHint()); + + QPoint pos = mapToGlobal(QPoint(transformed_geom.x(), transformed_geom.y() - toolbar->height())); + for (QScreen *screen : qApp->screens()) { + if (screen->geometry().contains(pos)) { + if (pos.x() + toolbar->width() > screen->geometry().right()) { + pos.setX(screen->geometry().right() - toolbar->width()); + } + break; + } + } + toolbar->move(pos); + toolbar->show(); + + text_edit->show(); + + connect(text_edit, &ViewerTextEditor::textChanged, this, &ViewerDisplayWidget::TextEditChanged); + + text_edit->ConnectToolBar(toolbar); + + QPoint text_edit_pos = text_edit->mapFrom(this, event->pos()); + + // Ensure text edit is actually focused rather than the toolbar + connect(toolbar, &ViewerTextEditorToolBar::FirstPaint, this, [this, text_edit, text_edit_pos]{ + // Grab focus back from the toolbar + this->raise(); + this->activateWindow(); + text_edit->setFocus(); + + // Start text cursor where the user clicked + text_edit->setTextCursor(text_edit->cursorForPosition(text_edit_pos)); + }); + break; + } + } + } + } + + super::mouseDoubleClickEvent(event); +} + void ViewerDisplayWidget::dragEnterEvent(QDragEnterEvent *event) { emit DragEntered(event); @@ -396,7 +498,11 @@ void ViewerDisplayWidget::OnPaint() QPainter p(inner_widget()); p.setWorldTransform(GenerateGizmoTransform()); - gizmos_->DrawGizmos(gizmo_db_, NodeTraverser::GenerateGlobals(gizmo_params_, range), &p); + + gizmos_->UpdateGizmoPositions(gizmo_db_, NodeTraverser::GenerateGlobals(gizmo_params_, range)); + foreach (NodeGizmo *gizmo, gizmos_->GetGizmos()) { + gizmo->Draw(&p); + } } // Draw action/title safe areas @@ -563,6 +669,31 @@ QTransform ViewerDisplayWidget::GenerateGizmoTransform() return gizmo_transform; } +NodeGizmo *ViewerDisplayWidget::TryGizmoPress(const NodeValueRow &row, const QPointF &p) +{ + for (auto it=gizmos_->GetGizmos().crbegin(); it!=gizmos_->GetGizmos().crend(); it++) { + NodeGizmo *gizmo = *it; + if (PointGizmo *point = dynamic_cast(gizmo)) { + if (point->GetClickingRect(GenerateGizmoTransform()).contains(p)) { + return point; + } + } else if (PolygonGizmo *poly = dynamic_cast(gizmo)) { + if (poly->GetPolygon().containsPoint(p, Qt::OddEvenFill)) { + return poly; + } + } else if (PathGizmo *path = dynamic_cast(gizmo)) { + if (path->GetPath().contains(p)) { + return path; + } + } else if (ScreenGizmo *screen = dynamic_cast(gizmo)) { + // NOTE: Perhaps this should limit to the actual visible screen space? We'll see. + return screen; + } + } + + return nullptr; +} + void ViewerDisplayWidget::EmitColorAtCursor(QMouseEvent *e) { // Do this no matter what, emits signal to any pixel samplers @@ -657,4 +788,14 @@ void ViewerDisplayWidget::UpdateFromQueue() update(); } +void ViewerDisplayWidget::TextEditChanged() +{ + ViewerTextEditor *editor = static_cast(sender()); + + TextGizmo *gizmo = reinterpret_cast(editor->property("gizmo").value()); + + QString html = Html::DocToHtml(editor->document()); + gizmo->UpdateInputHtml(html, GetGizmoTime()); +} + } diff --git a/app/widget/viewer/viewerdisplay.h b/app/widget/viewer/viewerdisplay.h index f8bd30278..718fd3070 100644 --- a/app/widget/viewer/viewerdisplay.h +++ b/app/widget/viewer/viewerdisplay.h @@ -83,7 +83,7 @@ public: * @brief Transform a point from viewer space to the buffer space. * Multiplies by the inverted transform matrix to undo the scaling and translation. */ - QPoint TransformViewerSpaceToBufferSpace(QPoint pos); + QPointF TransformViewerSpaceToBufferSpace(const QPointF &pos); bool IsDeinterlacing() const { @@ -216,6 +216,8 @@ protected: */ virtual void mouseReleaseEvent(QMouseEvent* event) override; + virtual void mouseDoubleClickEvent(QMouseEvent *event) override; + virtual void dragEnterEvent(QDragEnterEvent* event) override; virtual void dragLeaveEvent(QDragLeaveEvent* event) override; @@ -255,6 +257,8 @@ private: return TimeRange(node_time, node_time + gizmo_params_.frame_rate_as_time_base()); } + NodeGizmo *TryGizmoPress(const NodeValueRow &row, const QPointF &p); + /** * @brief Internal reference to the OpenGL texture to draw. Set in SetTexture() and used in paintGL(). */ @@ -302,10 +306,11 @@ private: Node* gizmos_; NodeValueRow gizmo_db_; - rational gizmo_drag_time_; VideoParams gizmo_params_; QPoint gizmo_start_drag_; - bool gizmo_click_; + QPoint gizmo_last_drag_; + NodeGizmo *current_gizmo_; + bool gizmo_drag_started_; rational time_; @@ -358,6 +363,8 @@ private slots: void UpdateFromQueue(); + void TextEditChanged(); + }; } diff --git a/app/widget/viewer/viewertexteditor.cpp b/app/widget/viewer/viewertexteditor.cpp new file mode 100644 index 000000000..ec630513f --- /dev/null +++ b/app/widget/viewer/viewertexteditor.cpp @@ -0,0 +1,483 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#include "viewertexteditor.h" + +#include +#include +#include +#include +#include + +#include "common/qtutils.h" +#include "ui/icons/icons.h" +#include "widget/colorbutton/colorbutton.h" + +namespace olive { + +#define super QTextEdit + +ViewerTextEditor::ViewerTextEditor(double scale, QWidget *parent) : + super(parent), + transparent_clone_(nullptr) +{ + // Ensure default text color is white + QPalette p = palette(); + p.setColor(QPalette::Text, Qt::white); + setPalette(p); + + document()->setDefaultStyleSheet(QStringLiteral("body { color: white; }")); + + viewport()->setAutoFillBackground(false); + setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + connect(horizontalScrollBar(), &QScrollBar::rangeChanged, this, &ViewerTextEditor::LockScrollBarMaximumToZero); + connect(verticalScrollBar(), &QScrollBar::rangeChanged, this, &ViewerTextEditor::LockScrollBarMaximumToZero); + + // Force DPI to the same one that we're using in the actual render + dpi_force_ = QImage(1, 1, QImage::Format_RGBA8888_Premultiplied); + + const int dpm = 3780 * scale; + dpi_force_.setDotsPerMeterX(dpm); + dpi_force_.setDotsPerMeterY(dpm); + document()->documentLayout()->setPaintDevice(&dpi_force_); + + connect(qApp, &QApplication::focusChanged, this, &ViewerTextEditor::FocusChanged); + connect(this, &QTextEdit::currentCharFormatChanged, this, &ViewerTextEditor::FormatChanged); + connect(document(), &QTextDocument::contentsChanged, this, &ViewerTextEditor::DocumentChanged, Qt::QueuedConnection); +} + +void ViewerTextEditor::ConnectToolBar(ViewerTextEditorToolBar *toolbar) +{ + connect(this, &ViewerTextEditor::destroyed, toolbar, &ViewerTextEditorToolBar::deleteLater); + + connect(toolbar, &ViewerTextEditorToolBar::FamilyChanged, this, &ViewerTextEditor::SetFamily); + connect(toolbar, &ViewerTextEditorToolBar::SizeChanged, this, &ViewerTextEditor::setFontPointSize); + connect(toolbar, &ViewerTextEditorToolBar::StyleChanged, this, &ViewerTextEditor::SetStyle); + connect(toolbar, &ViewerTextEditorToolBar::UnderlineChanged, this, &ViewerTextEditor::setFontUnderline); + connect(toolbar, &ViewerTextEditorToolBar::StrikethroughChanged, this, &ViewerTextEditor::SetFontStrikethrough); + connect(toolbar, &ViewerTextEditorToolBar::ColorChanged, this, &ViewerTextEditor::setTextColor); + connect(toolbar, &ViewerTextEditorToolBar::SmallCapsChanged, this, &ViewerTextEditor::SetSmallCaps); + connect(toolbar, &ViewerTextEditorToolBar::StretchChanged, this, &ViewerTextEditor::SetFontStretch); + connect(toolbar, &ViewerTextEditorToolBar::KerningChanged, this, &ViewerTextEditor::SetFontKerning); + connect(toolbar, &ViewerTextEditorToolBar::LineHeightChanged, this, &ViewerTextEditor::SetLineHeight); + connect(toolbar, &ViewerTextEditorToolBar::AlignmentChanged, this, [this](Qt::Alignment a){ + this->setAlignment(a); + + // Ensure no buttons are checked that shouldn't be + static_cast(sender())->SetAlignment(a); + }); + + UpdateToolBar(toolbar, this->currentCharFormat(), this->textCursor().blockFormat(), this->alignment()); + + toolbars_.append(toolbar); +} + +void ViewerTextEditor::keyPressEvent(QKeyEvent *event) +{ + super::keyPressEvent(event); + + if (event->key() == Qt::Key_Escape) { + deleteLater(); + } +} + +void ViewerTextEditor::paintEvent(QPaintEvent *e) +{ + QPainter p(this->viewport()); + + QAbstractTextDocumentLayout::PaintContext ctx; + + QRect r = e->rect(); + if (r.isValid()) + p.setClipRect(r, Qt::IntersectClip); + ctx.clip = r; + + ctx.cursorPosition = this->textCursor().position(); + + if (this->textCursor().hasSelection()) { + QAbstractTextDocumentLayout::Selection selection; + selection.cursor = this->textCursor(); + + QPalette::ColorGroup cg = this->hasFocus() ? QPalette::Active : QPalette::Inactive; + QBrush b = ctx.palette.brush(cg, QPalette::Highlight); + QColor bc = b.color(); + bc.setAlpha(128); + b.setColor(bc); + selection.format.setBackground(b); + QStyleOption opt; + opt.initFrom(this); + if (this->style()->styleHint(QStyle::SH_RichText_FullWidthSelection, &opt, this)) { + selection.format.setProperty(QTextFormat::FullWidthSelection, true); + } + ctx.selections.append(selection); + } + + transparent_clone_->documentLayout()->draw(&p, ctx); +} + +void ViewerTextEditor::UpdateToolBar(ViewerTextEditorToolBar *toolbar, const QTextCharFormat &f, const QTextBlockFormat &b, Qt::Alignment alignment) +{ + QFontDatabase fd; + + QString family = f.fontFamily(); + if (family.isEmpty()) { + family = qApp->font().family(); + } + + QString style = f.fontStyleName().toString(); + QStringList styles = fd.styles(family); + if (style.isEmpty() || !styles.contains(style)) { + // There seems to be no better way to find the "regular" style outside of this heuristic. + // Feel free to add more if a font isn't working right. + style = QStringLiteral("Regular"); + if (!styles.contains(style)) { + style = QStringLiteral("Normal"); + } + if (!styles.contains(style)) { + style = QStringLiteral("R"); + } + if (!styles.contains(style)) { + style = styles.first(); + } + } + + toolbar->SetFontFamily(family); + toolbar->SetFontSize(f.fontPointSize()); + toolbar->SetStyle(style); + toolbar->SetUnderline(f.fontUnderline()); + toolbar->SetStrikethrough(f.fontStrikeOut()); + toolbar->SetAlignment(alignment); + toolbar->SetColor(f.foreground().color()); + toolbar->SetSmallCaps(f.fontCapitalization() == QFont::SmallCaps); + toolbar->SetStretch(f.fontStretch() == 0 ? 100 : f.fontStretch()); + toolbar->SetKerning(f.fontLetterSpacing() == 0.0 ? 100 : f.fontLetterSpacing()); + toolbar->SetLineHeight(b.lineHeight() == 0.0 ? 100 : b.lineHeight()); +} + +void ViewerTextEditor::FocusChanged(QWidget *old, QWidget *now) +{ + QWidget *test = now; + + if (!test) { + // Ignore null focuses because that could be one of the toolbar widgets simply losing focus + // and that would be undesirable to close the text editor from + return; + } + + while (test) { + if (test == this + || dynamic_cast(test) + || dynamic_cast(test)) { + return; + } + + test = test->parentWidget(); + } + + // If we didn't return in the loop, the user must have focused on something else + deleteLater(); +} + +void ViewerTextEditor::FormatChanged(const QTextCharFormat &f) +{ + foreach (ViewerTextEditorToolBar *toolbar, toolbars_) { + UpdateToolBar(toolbar, f, textCursor().blockFormat(), this->alignment()); + } +} + +void ViewerTextEditor::SetFamily(const QString &s) +{ + QTextCharFormat f; + f.setFontFamily(s); +#if QT_VERSION >= QT_VERSION_CHECK(5, 13, 0) + f.setFontFamilies({s}); +#endif + mergeCurrentCharFormat(f); +} + +void ViewerTextEditor::SetStyle(const QString &s) +{ + QTextCharFormat f; + f.setFontStyleName(s); + mergeCurrentCharFormat(f); +} + +void ViewerTextEditor::SetFontStrikethrough(bool e) +{ + QTextCharFormat f; + f.setFontStrikeOut(e); + mergeCurrentCharFormat(f); +} + +void ViewerTextEditor::SetSmallCaps(bool e) +{ + QTextCharFormat f; + f.setFontCapitalization(e ? QFont::SmallCaps : QFont::MixedCase); + mergeCurrentCharFormat(f); +} + +void ViewerTextEditor::SetFontStretch(int i) +{ + QTextCharFormat f; + f.setFontStretch(i); + mergeCurrentCharFormat(f); +} + +void ViewerTextEditor::SetFontKerning(qreal i) +{ + QTextCharFormat f; + f.setFontLetterSpacing(i); + mergeCurrentCharFormat(f); +} + +void ViewerTextEditor::SetLineHeight(qreal i) +{ + QTextBlockFormat f = this->textCursor().blockFormat(); + f.setLineHeight(i, QTextBlockFormat::ProportionalHeight); + this->textCursor().setBlockFormat(f); +} + +void ViewerTextEditor::LockScrollBarMaximumToZero() +{ + static_cast(sender())->setMaximum(0); +} + +void ViewerTextEditor::DocumentChanged() +{ + // HACK: We want to show the text cursor and selections without necessarily rendering the text, + // because the text is already being rendered underneath the gizmo (and rendering twice will + // alter the overall look of the text while editing). This is something that Qt does not + // support by default, and while it could be solved by subclassing QAbstractTextDocumentLayout, + // this seems like overkill since 99% of QTextDocumentLayout's (the subclass used by default) + // functionality and would need to be fully implemented ourselves. So instead, we clone the + // document, set all of its colors to rgba(0,0,0,0) to make them transparent, and draw that + // document instead. The result is cursor and selections being rendered without the text. + // While this isn't the fastest code, nor is it the cleanest solution, it definitely works. + delete transparent_clone_; + transparent_clone_ = document()->clone(this); + transparent_clone_->documentLayout()->setPaintDevice(&dpi_force_); + + QTextCursor cursor(transparent_clone_); + cursor.select(QTextCursor::Document); + + QTextCharFormat fmt; + fmt.setForeground(QColor(0, 0, 0, 0)); + cursor.mergeCharFormat(fmt); +} + +ViewerTextEditorToolBar::ViewerTextEditorToolBar(QWidget *parent) : + QWidget(parent), + painted_(false) +{ + QVBoxLayout *outer_layout = new QVBoxLayout(this); + outer_layout->setSpacing(0); + + QHBoxLayout *basic_layout = new QHBoxLayout(); + outer_layout->addLayout(basic_layout); + + int advanced_slider_width = QtUtils::QFontMetricsWidth(fontMetrics(), QStringLiteral("9999.9%")); + + font_combo_ = new QFontComboBox(); + connect(font_combo_, &QFontComboBox::currentTextChanged, this, &ViewerTextEditorToolBar::FamilyChanged); + connect(font_combo_, &QFontComboBox::currentTextChanged, this, &ViewerTextEditorToolBar::UpdateFontStyleList); + basic_layout->addWidget(font_combo_); + + font_sz_slider_ = new FloatSlider(); + font_sz_slider_->SetMinimum(0.1); + font_sz_slider_->SetMaximum(9999.9); + font_sz_slider_->SetDecimalPlaces(1); + font_sz_slider_->SetAlignment(Qt::AlignCenter); + font_sz_slider_->setFixedWidth(advanced_slider_width); + connect(font_sz_slider_, &FloatSlider::ValueChanged, this, &ViewerTextEditorToolBar::SizeChanged); + font_sz_slider_->SetLadderElementCount(2); + basic_layout->addWidget(font_sz_slider_); + + style_combo_ = new QComboBox(); + connect(style_combo_, &QComboBox::currentTextChanged, this, &ViewerTextEditorToolBar::StyleChanged); + basic_layout->addWidget(style_combo_); + + underline_btn_ = new QPushButton(); + connect(underline_btn_, &QPushButton::clicked, this, &ViewerTextEditorToolBar::UnderlineChanged); + underline_btn_->setCheckable(true); + underline_btn_->setIcon(icon::TextUnderline); + basic_layout->addWidget(underline_btn_); + + strikethrough_btn_ = new QPushButton(); + connect(strikethrough_btn_, &QPushButton::clicked, this, &ViewerTextEditorToolBar::StrikethroughChanged); + strikethrough_btn_->setCheckable(true); + strikethrough_btn_->setText(tr("S")); // FIXME: Source icon + basic_layout->addWidget(strikethrough_btn_); + + basic_layout->addWidget(QtUtils::CreateVerticalLine()); + + align_left_btn_ = new QPushButton(); + align_left_btn_->setCheckable(true); + align_left_btn_->setIcon(icon::TextAlignLeft); + connect(align_left_btn_, &QPushButton::clicked, this, [this]{emit AlignmentChanged(Qt::AlignLeft);}); + basic_layout->addWidget(align_left_btn_); + + align_center_btn_ = new QPushButton(); + align_center_btn_->setCheckable(true); + align_center_btn_->setIcon(icon::TextAlignCenter); + connect(align_center_btn_, &QPushButton::clicked, this, [this]{emit AlignmentChanged(Qt::AlignCenter);}); + basic_layout->addWidget(align_center_btn_); + + align_right_btn_ = new QPushButton(); + align_right_btn_->setCheckable(true); + align_right_btn_->setIcon(icon::TextAlignRight); + connect(align_right_btn_, &QPushButton::clicked, this, [this]{emit AlignmentChanged(Qt::AlignRight);}); + basic_layout->addWidget(align_right_btn_); + + align_justify_btn_ = new QPushButton(); + align_justify_btn_->setCheckable(true); + align_justify_btn_->setIcon(icon::TextAlignJustify); + connect(align_justify_btn_, &QPushButton::clicked, this, [this]{emit AlignmentChanged(Qt::AlignJustify);}); + basic_layout->addWidget(align_justify_btn_); + + basic_layout->addWidget(QtUtils::CreateVerticalLine()); + + color_btn_ = new QPushButton(); + color_btn_->setAutoFillBackground(true); + connect(color_btn_, &QPushButton::clicked, this, [this]{ + QColor c = color_btn_->property("color").value(); + + QColorDialog cd(c, this); + if (cd.exec() == QDialog::Accepted) { + c = cd.selectedColor(); + SetColor(c); + emit ColorChanged(c); + } + }); + basic_layout->addWidget(color_btn_); + + basic_layout->addStretch(); + + QHBoxLayout *advanced_layout = new QHBoxLayout(); + outer_layout->addLayout(advanced_layout); + + advanced_layout->addWidget(new QLabel(tr("Stretch: "))); // FIXME: Procure icon + + stretch_slider_ = new IntegerSlider(); + stretch_slider_->SetMinimum(0); + stretch_slider_->SetDefaultValue(100); + stretch_slider_->setFixedWidth(advanced_slider_width); + stretch_slider_->SetFormat(tr("%1%")); + connect(stretch_slider_, &IntegerSlider::ValueChanged, this, &ViewerTextEditorToolBar::StretchChanged); + advanced_layout->addWidget(stretch_slider_); + + advanced_layout->addWidget(new QLabel(tr("Kerning: "))); // FIXME: Procure icon + + kerning_slider_ = new FloatSlider(); + kerning_slider_->SetMinimum(0); + kerning_slider_->SetDefaultValue(100); + kerning_slider_->SetDecimalPlaces(1); + kerning_slider_->setFixedWidth(advanced_slider_width); + kerning_slider_->SetFormat(tr("%1%")); + connect(kerning_slider_, &FloatSlider::ValueChanged, this, &ViewerTextEditorToolBar::KerningChanged); + advanced_layout->addWidget(kerning_slider_); + + advanced_layout->addWidget(new QLabel(tr("Line Height: "))); // FIXME: Procure icon + + line_height_slider_ = new FloatSlider(); + line_height_slider_->SetMinimum(0); + line_height_slider_->SetDefaultValue(100); + line_height_slider_->SetDecimalPlaces(1); + line_height_slider_->setFixedWidth(advanced_slider_width); + line_height_slider_->SetFormat(tr("%1%")); + connect(line_height_slider_, &FloatSlider::ValueChanged, this, &ViewerTextEditorToolBar::LineHeightChanged); + advanced_layout->addWidget(line_height_slider_); + + small_caps_btn_ = new QPushButton(tr("Small Caps")); // FIXME: Procure icon + small_caps_btn_->setCheckable(true); + connect(small_caps_btn_, &QPushButton::clicked, this, &ViewerTextEditorToolBar::SmallCapsChanged); + advanced_layout->addWidget(small_caps_btn_); + + advanced_layout->addStretch(); + + setAutoFillBackground(true); +} + +void ViewerTextEditorToolBar::SetAlignment(Qt::Alignment a) +{ + align_left_btn_->setChecked(a == Qt::AlignLeft); + align_center_btn_->setChecked(a == Qt::AlignCenter); + align_right_btn_->setChecked(a == Qt::AlignRight); + align_justify_btn_->setChecked(a == Qt::AlignJustify); +} + +void ViewerTextEditorToolBar::SetColor(const QColor &c) +{ + color_btn_->setProperty("color", c); + color_btn_->setStyleSheet(QStringLiteral("QPushButton { background: %1; }").arg(c.name())); +} + +void ViewerTextEditorToolBar::closeEvent(QCloseEvent *event) +{ + event->ignore(); +} + +void ViewerTextEditorToolBar::paintEvent(QPaintEvent *event) +{ + if (!painted_) { + emit FirstPaint(); + painted_ = true; + } + QWidget::paintEvent(event); +} + +void ViewerTextEditorToolBar::UpdateFontStyleList(const QString &family) +{ + QString temp = style_combo_->currentText(); + + style_combo_->blockSignals(true); + style_combo_->clear(); + QStringList l = QFontDatabase().styles(family); + foreach (const QString &style, l) { + style_combo_->addItem(style); + } + style_combo_->setCurrentText(temp); + style_combo_->blockSignals(false); +} + +void ViewerTextEditorToolBar::mousePressEvent(QMouseEvent *event) +{ + QWidget::mousePressEvent(event); + + if (event->button() == Qt::LeftButton) { + drag_anchor_ = event->pos(); + } +} + +void ViewerTextEditorToolBar::mouseMoveEvent(QMouseEvent *event) +{ + QWidget::mouseMoveEvent(event); + + if (event->buttons() & Qt::LeftButton) { + this->move(mapToParent(QPoint(event->pos() - drag_anchor_))); + } +} + +void ViewerTextEditorToolBar::mouseReleaseEvent(QMouseEvent *event) +{ + QWidget::mouseReleaseEvent(event); +} + +} diff --git a/app/widget/viewer/viewertexteditor.h b/app/widget/viewer/viewertexteditor.h new file mode 100644 index 000000000..12a2e3ee2 --- /dev/null +++ b/app/widget/viewer/viewertexteditor.h @@ -0,0 +1,178 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#ifndef VIEWERTEXTEDITOR_H +#define VIEWERTEXTEDITOR_H + +#include +#include +#include +#include +#include + +#include "widget/slider/floatslider.h" +#include "widget/slider/integerslider.h" + +namespace olive { + +class ViewerTextEditorToolBar : public QWidget +{ + Q_OBJECT +public: + ViewerTextEditorToolBar(QWidget *parent = nullptr); + + QString GetFontFamily() const + { + return font_combo_->currentText(); + } + +public slots: + void SetFontFamily(QString s) + { + font_combo_->blockSignals(true); + font_combo_->setCurrentFont(s); + UpdateFontStyleList(s); + font_combo_->blockSignals(false); + } + + void SetStyle(QString style) + { + style_combo_->blockSignals(true); + style_combo_->setCurrentText(style); + style_combo_->blockSignals(false); + } + + void SetFontSize(double d) { font_sz_slider_->SetValue(d); } + void SetUnderline(bool e) { underline_btn_->setChecked(e); } + void SetStrikethrough(bool e) { strikethrough_btn_->setChecked(e); } + void SetAlignment(Qt::Alignment a); + void SetColor(const QColor &c); + void SetSmallCaps(bool e) { small_caps_btn_->setChecked(e); } + void SetStretch(int i) { stretch_slider_->SetValue(i); } + void SetKerning(qreal i) { kerning_slider_->SetValue(i); } + void SetLineHeight(qreal i) { line_height_slider_->SetValue(i); } + +signals: + void FamilyChanged(const QString &s); + void SizeChanged(double d); + void StyleChanged(const QString &s); + void UnderlineChanged(bool e); + void StrikethroughChanged(bool e); + void AlignmentChanged(Qt::Alignment alignment); + void ColorChanged(const QColor &c); + void SmallCapsChanged(bool e); + void StretchChanged(int i); + void KerningChanged(qreal i); + void LineHeightChanged(qreal i); + + void FirstPaint(); + +protected: + virtual void mousePressEvent(QMouseEvent *event) override; + + virtual void mouseMoveEvent(QMouseEvent *event) override; + + virtual void mouseReleaseEvent(QMouseEvent *event) override; + + virtual void closeEvent(QCloseEvent *event) override; + + virtual void paintEvent(QPaintEvent *event) override; + +private: + QPoint drag_anchor_; + + QFontComboBox *font_combo_; + + FloatSlider *font_sz_slider_; + + QComboBox *style_combo_; + + QPushButton *underline_btn_; + QPushButton *strikethrough_btn_; + + QPushButton *align_left_btn_; + QPushButton *align_center_btn_; + QPushButton *align_right_btn_; + QPushButton *align_justify_btn_; + + IntegerSlider *stretch_slider_; + FloatSlider *kerning_slider_; + FloatSlider *line_height_slider_; + QPushButton *small_caps_btn_; + + QPushButton *color_btn_; + + bool painted_; + +private slots: + void UpdateFontStyleList(const QString &family); + +}; + +class ViewerTextEditor : public QTextEdit +{ + Q_OBJECT +public: + ViewerTextEditor(double scale, QWidget *parent = nullptr); + + void ConnectToolBar(ViewerTextEditorToolBar *toolbar); + +protected: + virtual void keyPressEvent(QKeyEvent *event) override; + + virtual void paintEvent(QPaintEvent *event) override; + +private: + static void UpdateToolBar(ViewerTextEditorToolBar *toolbar, const QTextCharFormat &f, const QTextBlockFormat &b, Qt::Alignment alignment); + + QVector toolbars_; + + QImage dpi_force_; + + QTextDocument *transparent_clone_; + +private slots: + void FocusChanged(QWidget *old, QWidget *now); + + void FormatChanged(const QTextCharFormat &f); + + void SetFamily(const QString &s); + + void SetStyle(const QString &s); + + void SetFontStrikethrough(bool e); + + void SetSmallCaps(bool e); + + void SetFontStretch(int i); + + void SetFontKerning(qreal i); + + void SetLineHeight(qreal i); + + void LockScrollBarMaximumToZero(); + + void DocumentChanged(); + +}; + +} + +#endif // VIEWERTEXTEDITOR_H From 518f57992ee8503687df028b49d776d4bc70a07c Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 28 Mar 2022 00:40:19 -0700 Subject: [PATCH 060/114] cmake: revert to C++14 I've modified some of the code so our C++ version can decrease back to C++14. If this fixes the OTIO linker issue... well that sucks. Hopefully whatever the issue is gets resolved some time so that we can upgrade to C++17 --- CMakeLists.txt | 2 +- app/node/generator/polygon/polygon.cpp | 18 +++++++++++++----- app/node/generator/polygon/polygon.h | 3 +++ app/widget/timelinewidget/tool/pointer.cpp | 4 ++++ 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8df0764d3..cd0c6d89a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,7 +22,7 @@ option(BUILD_DOXYGEN "Build Doxygen documentation" OFF) option(BUILD_TESTS "Build unit tests" ON) option(USE_WERROR "Error on compile warning" ON) -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) diff --git a/app/node/generator/polygon/polygon.cpp b/app/node/generator/polygon/polygon.cpp index 7f99bd835..bd3ae07cf 100644 --- a/app/node/generator/polygon/polygon.cpp +++ b/app/node/generator/polygon/polygon.cpp @@ -152,6 +152,18 @@ void PolygonGenerator::GenerateFrame(FramePtr frame, const GenerateJob &job) con } } +template +NodeGizmo *PolygonGenerator::CreateAppropriateGizmo() +{ + return new T(this); +} + +template<> +NodeGizmo *PolygonGenerator::CreateAppropriateGizmo() +{ + return AddDraggableGizmo(); +} + template void PolygonGenerator::ValidateGizmoVectorSize(QVector &vec, int new_sz) { @@ -168,11 +180,7 @@ void PolygonGenerator::ValidateGizmoVectorSize(QVector &vec, int new_sz) if (old_sz < new_sz) { for (int i=old_sz; i) { - vec[i] = AddDraggableGizmo(); - } else { - vec[i] = new T(this); - } + vec[i] = static_cast(CreateAppropriateGizmo()); } } } diff --git a/app/node/generator/polygon/polygon.h b/app/node/generator/polygon/polygon.h index ff85fc8be..e1c66573a 100644 --- a/app/node/generator/polygon/polygon.h +++ b/app/node/generator/polygon/polygon.h @@ -69,6 +69,9 @@ private: template void ValidateGizmoVectorSize(QVector &vec, int new_sz); + template + NodeGizmo *CreateAppropriateGizmo(); + PathGizmo *poly_gizmo_; QVector gizmo_position_handles_; QVector gizmo_bezier_handles_; diff --git a/app/widget/timelinewidget/tool/pointer.cpp b/app/widget/timelinewidget/tool/pointer.cpp index 5e3161323..b82a8b83d 100644 --- a/app/widget/timelinewidget/tool/pointer.cpp +++ b/app/widget/timelinewidget/tool/pointer.cpp @@ -557,6 +557,10 @@ void PointerTool::FinishDrag(TimelineViewMouseEvent *event) ghost->GetAdjustedLength(), ghost->GetMode()); + if (event->GetModifiers() & Qt::ControlModifier) { + + } + c->SetTrimIsARollEdit(ghost->GetData(TimelineViewGhostItem::kTrimIsARollEdit).toBool()); command->add_child(c); From 5a9de2b77360d285169fa4b3187b061ccb6b59b1 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 28 Mar 2022 01:03:17 -0700 Subject: [PATCH 061/114] viewertexteditor: empty check for styles list --- app/widget/viewer/viewertexteditor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/widget/viewer/viewertexteditor.cpp b/app/widget/viewer/viewertexteditor.cpp index ec630513f..74fd53116 100644 --- a/app/widget/viewer/viewertexteditor.cpp +++ b/app/widget/viewer/viewertexteditor.cpp @@ -144,7 +144,7 @@ void ViewerTextEditor::UpdateToolBar(ViewerTextEditorToolBar *toolbar, const QTe QString style = f.fontStyleName().toString(); QStringList styles = fd.styles(family); - if (style.isEmpty() || !styles.contains(style)) { + if (!styles.isEmpty() && (style.isEmpty() || !styles.contains(style))) { // There seems to be no better way to find the "regular" style outside of this heuristic. // Feel free to add more if a font isn't working right. style = QStringLiteral("Regular"); From 99be25a67b7931cec793424474d3239e5cbd7d87 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 28 Mar 2022 13:33:40 -0700 Subject: [PATCH 062/114] added new icons to tracks --- app/ui/icons/icons.cpp | 9 + app/ui/icons/icons.h | 4 + app/ui/style/olive-dark/olive-dark.qrc | 290 ------------------ ...sabled.png => eye-closed.128.disabled.png} | Bin 1575 -> 1575 bytes ...{eye_closed.128.png => eye-closed.128.png} | Bin .../olive-dark/png/eye-closed.16.disabled.png | Bin 0 -> 519 bytes .../{eye_closed.16.png => eye-closed.16.png} | Bin .../olive-dark/png/eye-closed.32.disabled.png | Bin 0 -> 646 bytes .../{eye_closed.32.png => eye-closed.32.png} | Bin ...isabled.png => eye-closed.64.disabled.png} | Bin 947 -> 947 bytes .../{eye_closed.64.png => eye-closed.64.png} | Bin ...sabled.png => eye-opened.128.disabled.png} | Bin 2220 -> 2220 bytes ...{eye_opened.128.png => eye-opened.128.png} | Bin ...isabled.png => eye-opened.16.disabled.png} | Bin 560 -> 560 bytes .../{eye_opened.16.png => eye-opened.16.png} | Bin ...isabled.png => eye-opened.32.disabled.png} | Bin 757 -> 757 bytes .../{eye_opened.32.png => eye-opened.32.png} | Bin ...isabled.png => eye-opened.64.disabled.png} | Bin 1179 -> 1179 bytes .../{eye_opened.64.png => eye-opened.64.png} | Bin .../olive-dark/png/eye_closed.16.disabled.png | Bin 519 -> 0 bytes .../olive-dark/png/eye_closed.32.disabled.png | Bin 646 -> 0 bytes ...abled.png => lock-closed.128.disabled.png} | Bin 1343 -> 1343 bytes ...ock_closed.128.png => lock-closed.128.png} | Bin ...sabled.png => lock-closed.16.disabled.png} | Bin 534 -> 534 bytes ...dlock_closed.16.png => lock-closed.16.png} | Bin ...sabled.png => lock-closed.32.disabled.png} | Bin 639 -> 639 bytes ...dlock_closed.32.png => lock-closed.32.png} | Bin ...sabled.png => lock-closed.64.disabled.png} | Bin 834 -> 834 bytes ...dlock_closed.64.png => lock-closed.64.png} | Bin ...abled.png => lock-opened.128.disabled.png} | Bin 1380 -> 1380 bytes ...ock_opened.128.png => lock-opened.128.png} | Bin ...sabled.png => lock-opened.16.disabled.png} | Bin 541 -> 541 bytes ...dlock_opened.16.png => lock-opened.16.png} | Bin ...sabled.png => lock-opened.32.disabled.png} | Bin 631 -> 631 bytes ...dlock_opened.32.png => lock-opened.32.png} | Bin ...sabled.png => lock-opened.64.disabled.png} | Bin 839 -> 839 bytes ...dlock_opened.64.png => lock-opened.64.png} | Bin .../svg/{eye_closed.svg => eye-closed.svg} | 0 .../svg/{eye_opened.svg => eye-opened.svg} | 0 .../{padlock_closed.svg => lock-closed.svg} | 0 .../{padlock_opened.svg => lock-opened.svg} | 0 app/ui/style/olive-light/olive-light.qrc | 290 ------------------ .../png/eye_closed.128.disabled.png | Bin 1771 -> 0 bytes .../style/olive-light/png/eye_closed.128.png | Bin 2491 -> 0 bytes .../png/eye_closed.16.disabled.png | Bin 541 -> 0 bytes .../style/olive-light/png/eye_closed.16.png | Bin 450 -> 0 bytes .../png/eye_closed.32.disabled.png | Bin 698 -> 0 bytes .../style/olive-light/png/eye_closed.32.png | Bin 751 -> 0 bytes .../png/eye_closed.64.disabled.png | Bin 1027 -> 0 bytes .../style/olive-light/png/eye_closed.64.png | Bin 1298 -> 0 bytes .../png/eye_opened.128.disabled.png | Bin 2684 -> 0 bytes .../style/olive-light/png/eye_opened.128.png | Bin 4071 -> 0 bytes .../png/eye_opened.16.disabled.png | Bin 612 -> 0 bytes .../style/olive-light/png/eye_opened.16.png | Bin 582 -> 0 bytes .../png/eye_opened.32.disabled.png | Bin 871 -> 0 bytes .../style/olive-light/png/eye_opened.32.png | Bin 1062 -> 0 bytes .../png/eye_opened.64.disabled.png | Bin 1431 -> 0 bytes .../style/olive-light/png/eye_opened.64.png | Bin 1995 -> 0 bytes .../png/padlock_closed.128.disabled.png | Bin 1524 -> 0 bytes .../olive-light/png/padlock_closed.128.png | Bin 1990 -> 0 bytes .../png/padlock_closed.16.disabled.png | Bin 552 -> 0 bytes .../olive-light/png/padlock_closed.16.png | Bin 429 -> 0 bytes .../png/padlock_closed.32.disabled.png | Bin 674 -> 0 bytes .../olive-light/png/padlock_closed.32.png | Bin 625 -> 0 bytes .../png/padlock_closed.64.disabled.png | Bin 924 -> 0 bytes .../olive-light/png/padlock_closed.64.png | Bin 1095 -> 0 bytes .../png/padlock_opened.128.disabled.png | Bin 1557 -> 0 bytes .../olive-light/png/padlock_opened.128.png | Bin 2026 -> 0 bytes .../png/padlock_opened.16.disabled.png | Bin 565 -> 0 bytes .../olive-light/png/padlock_opened.16.png | Bin 461 -> 0 bytes .../png/padlock_opened.32.disabled.png | Bin 669 -> 0 bytes .../olive-light/png/padlock_opened.32.png | Bin 619 -> 0 bytes .../png/padlock_opened.64.disabled.png | Bin 934 -> 0 bytes .../olive-light/png/padlock_opened.64.png | Bin 1117 -> 0 bytes .../svg/{eye_closed.svg => eye-closed.svg} | 0 .../svg/{eye_opened.svg => eye-opened.svg} | 0 .../{padlock_closed.svg => lock-closed.svg} | 0 .../{padlock_opened.svg => lock-opened.svg} | 0 .../trackview/trackviewitem.cpp | 25 +- .../timelinewidget/trackview/trackviewitem.h | 6 +- 80 files changed, 39 insertions(+), 585 deletions(-) delete mode 100644 app/ui/style/olive-dark/olive-dark.qrc rename app/ui/style/olive-dark/png/{eye_closed.128.disabled.png => eye-closed.128.disabled.png} (87%) rename app/ui/style/olive-dark/png/{eye_closed.128.png => eye-closed.128.png} (100%) create mode 100644 app/ui/style/olive-dark/png/eye-closed.16.disabled.png rename app/ui/style/olive-dark/png/{eye_closed.16.png => eye-closed.16.png} (100%) create mode 100644 app/ui/style/olive-dark/png/eye-closed.32.disabled.png rename app/ui/style/olive-dark/png/{eye_closed.32.png => eye-closed.32.png} (100%) rename app/ui/style/olive-dark/png/{eye_closed.64.disabled.png => eye-closed.64.disabled.png} (79%) rename app/ui/style/olive-dark/png/{eye_closed.64.png => eye-closed.64.png} (100%) rename app/ui/style/olive-dark/png/{eye_opened.128.disabled.png => eye-opened.128.disabled.png} (91%) rename app/ui/style/olive-dark/png/{eye_opened.128.png => eye-opened.128.png} (100%) rename app/ui/style/olive-dark/png/{eye_opened.16.disabled.png => eye-opened.16.disabled.png} (69%) rename app/ui/style/olive-dark/png/{eye_opened.16.png => eye-opened.16.png} (100%) rename app/ui/style/olive-dark/png/{eye_opened.32.disabled.png => eye-opened.32.disabled.png} (62%) rename app/ui/style/olive-dark/png/{eye_opened.32.png => eye-opened.32.png} (100%) rename app/ui/style/olive-dark/png/{eye_opened.64.disabled.png => eye-opened.64.disabled.png} (80%) rename app/ui/style/olive-dark/png/{eye_opened.64.png => eye-opened.64.png} (100%) delete mode 100644 app/ui/style/olive-dark/png/eye_closed.16.disabled.png delete mode 100644 app/ui/style/olive-dark/png/eye_closed.32.disabled.png rename app/ui/style/olive-dark/png/{padlock_closed.128.disabled.png => lock-closed.128.disabled.png} (80%) rename app/ui/style/olive-dark/png/{padlock_closed.128.png => lock-closed.128.png} (100%) rename app/ui/style/olive-dark/png/{padlock_closed.16.disabled.png => lock-closed.16.disabled.png} (64%) rename app/ui/style/olive-dark/png/{padlock_closed.16.png => lock-closed.16.png} (100%) rename app/ui/style/olive-dark/png/{padlock_closed.32.disabled.png => lock-closed.32.disabled.png} (69%) rename app/ui/style/olive-dark/png/{padlock_closed.32.png => lock-closed.32.png} (100%) rename app/ui/style/olive-dark/png/{padlock_closed.64.disabled.png => lock-closed.64.disabled.png} (76%) rename app/ui/style/olive-dark/png/{padlock_closed.64.png => lock-closed.64.png} (100%) rename app/ui/style/olive-dark/png/{padlock_opened.128.disabled.png => lock-opened.128.disabled.png} (86%) rename app/ui/style/olive-dark/png/{padlock_opened.128.png => lock-opened.128.png} (100%) rename app/ui/style/olive-dark/png/{padlock_opened.16.disabled.png => lock-opened.16.disabled.png} (71%) rename app/ui/style/olive-dark/png/{padlock_opened.16.png => lock-opened.16.png} (100%) rename app/ui/style/olive-dark/png/{padlock_opened.32.disabled.png => lock-opened.32.disabled.png} (69%) rename app/ui/style/olive-dark/png/{padlock_opened.32.png => lock-opened.32.png} (100%) rename app/ui/style/olive-dark/png/{padlock_opened.64.disabled.png => lock-opened.64.disabled.png} (79%) rename app/ui/style/olive-dark/png/{padlock_opened.64.png => lock-opened.64.png} (100%) rename app/ui/style/olive-dark/svg/{eye_closed.svg => eye-closed.svg} (100%) rename app/ui/style/olive-dark/svg/{eye_opened.svg => eye-opened.svg} (100%) rename app/ui/style/olive-dark/svg/{padlock_closed.svg => lock-closed.svg} (100%) rename app/ui/style/olive-dark/svg/{padlock_opened.svg => lock-opened.svg} (100%) delete mode 100644 app/ui/style/olive-light/olive-light.qrc delete mode 100644 app/ui/style/olive-light/png/eye_closed.128.disabled.png delete mode 100644 app/ui/style/olive-light/png/eye_closed.128.png delete mode 100644 app/ui/style/olive-light/png/eye_closed.16.disabled.png delete mode 100644 app/ui/style/olive-light/png/eye_closed.16.png delete mode 100644 app/ui/style/olive-light/png/eye_closed.32.disabled.png delete mode 100644 app/ui/style/olive-light/png/eye_closed.32.png delete mode 100644 app/ui/style/olive-light/png/eye_closed.64.disabled.png delete mode 100644 app/ui/style/olive-light/png/eye_closed.64.png delete mode 100644 app/ui/style/olive-light/png/eye_opened.128.disabled.png delete mode 100644 app/ui/style/olive-light/png/eye_opened.128.png delete mode 100644 app/ui/style/olive-light/png/eye_opened.16.disabled.png delete mode 100644 app/ui/style/olive-light/png/eye_opened.16.png delete mode 100644 app/ui/style/olive-light/png/eye_opened.32.disabled.png delete mode 100644 app/ui/style/olive-light/png/eye_opened.32.png delete mode 100644 app/ui/style/olive-light/png/eye_opened.64.disabled.png delete mode 100644 app/ui/style/olive-light/png/eye_opened.64.png delete mode 100644 app/ui/style/olive-light/png/padlock_closed.128.disabled.png delete mode 100644 app/ui/style/olive-light/png/padlock_closed.128.png delete mode 100644 app/ui/style/olive-light/png/padlock_closed.16.disabled.png delete mode 100644 app/ui/style/olive-light/png/padlock_closed.16.png delete mode 100644 app/ui/style/olive-light/png/padlock_closed.32.disabled.png delete mode 100644 app/ui/style/olive-light/png/padlock_closed.32.png delete mode 100644 app/ui/style/olive-light/png/padlock_closed.64.disabled.png delete mode 100644 app/ui/style/olive-light/png/padlock_closed.64.png delete mode 100644 app/ui/style/olive-light/png/padlock_opened.128.disabled.png delete mode 100644 app/ui/style/olive-light/png/padlock_opened.128.png delete mode 100644 app/ui/style/olive-light/png/padlock_opened.16.disabled.png delete mode 100644 app/ui/style/olive-light/png/padlock_opened.16.png delete mode 100644 app/ui/style/olive-light/png/padlock_opened.32.disabled.png delete mode 100644 app/ui/style/olive-light/png/padlock_opened.32.png delete mode 100644 app/ui/style/olive-light/png/padlock_opened.64.disabled.png delete mode 100644 app/ui/style/olive-light/png/padlock_opened.64.png rename app/ui/style/olive-light/svg/{eye_closed.svg => eye-closed.svg} (100%) rename app/ui/style/olive-light/svg/{eye_opened.svg => eye-opened.svg} (100%) rename app/ui/style/olive-light/svg/{padlock_closed.svg => lock-closed.svg} (100%) rename app/ui/style/olive-light/svg/{padlock_opened.svg => lock-opened.svg} (100%) diff --git a/app/ui/icons/icons.cpp b/app/ui/icons/icons.cpp index 635aaf807..917dd7315 100644 --- a/app/ui/icons/icons.cpp +++ b/app/ui/icons/icons.cpp @@ -77,6 +77,10 @@ QIcon icon::Diamond; QIcon icon::Plus; QIcon icon::Minus; QIcon icon::AddEffect; +QIcon icon::EyeOpened; +QIcon icon::EyeClosed; +QIcon icon::LockOpened; +QIcon icon::LockClosed; void icon::LoadAll(const QString& theme) { @@ -131,6 +135,11 @@ void icon::LoadAll(const QString& theme) Plus = Create(theme, "plus"); Minus = Create(theme, "minus"); AddEffect = Create(theme, "add-effect"); + + EyeOpened = Create(theme, "eye-opened"); + EyeClosed = Create(theme, "eye-closed"); + LockOpened = Create(theme, "lock-opened"); + LockClosed = Create(theme, "lock-closed"); } QIcon icon::Create(const QString& theme, const QString &name) diff --git a/app/ui/icons/icons.h b/app/ui/icons/icons.h index 2bca32bb5..b44be7357 100644 --- a/app/ui/icons/icons.h +++ b/app/ui/icons/icons.h @@ -87,6 +87,10 @@ extern QIcon Diamond; extern QIcon Plus; extern QIcon Minus; extern QIcon AddEffect; +extern QIcon EyeOpened; +extern QIcon EyeClosed; +extern QIcon LockOpened; +extern QIcon LockClosed; /** * @brief Create an icon object loaded from file diff --git a/app/ui/style/olive-dark/olive-dark.qrc b/app/ui/style/olive-dark/olive-dark.qrc deleted file mode 100644 index 4d3efbfcb..000000000 --- a/app/ui/style/olive-dark/olive-dark.qrc +++ /dev/null @@ -1,290 +0,0 @@ - - - style.css - palette.ini - png/add-button.16.png - png/add-button.32.png - png/add-button.64.png - png/add-button.128.png - png/add-effect.16.png - png/add-effect.32.png - png/add-effect.64.png - png/add-effect.128.png - png/add-transition.16.png - png/add-transition.32.png - png/add-transition.64.png - png/add-transition.128.png - png/align-center.16.png - png/align-center.32.png - png/align-center.64.png - png/align-center.128.png - png/align-justify-all.16.png - png/align-justify-all.32.png - png/align-justify-all.64.png - png/align-justify-all.128.png - png/align-justify-center.16.png - png/align-justify-center.32.png - png/align-justify-center.64.png - png/align-justify-center.128.png - png/align-justify-left.16.png - png/align-justify-left.32.png - png/align-justify-left.64.png - png/align-justify-left.128.png - png/align-justify-right.16.png - png/align-justify-right.32.png - png/align-justify-right.64.png - png/align-justify-right.128.png - png/align-left.16.png - png/align-left.32.png - png/align-left.64.png - png/align-left.128.png - png/align-right.16.png - png/align-right.32.png - png/align-right.64.png - png/align-right.128.png - png/arrow.16.png - png/arrow.32.png - png/arrow.64.png - png/arrow.128.png - png/audiosource.16.png - png/audiosource.32.png - png/audiosource.64.png - png/audiosource.128.png - png/beam.16.png - png/beam.32.png - png/beam.64.png - png/beam.128.png - png/box.16.png - png/box.32.png - png/box.64.png - png/box.128.png - png/clock.16.png - png/clock.32.png - png/clock.64.png - png/clock.128.png - png/copy.16.png - png/copy.32.png - png/copy.64.png - png/copy.128.png - png/diamond.16.png - png/diamond.32.png - png/diamond.64.png - png/diamond.128.png - png/dirup.16.png - png/dirup.32.png - png/dirup.64.png - png/dirup.128.png - png/error.16.png - png/error.32.png - png/error.64.png - png/error.128.png - png/export.16.png - png/export.32.png - png/export.64.png - png/export.128.png - png/eye_closed.16.png - png/eye_closed.32.png - png/eye_closed.64.png - png/eye_closed.128.png - png/eye_opened.16.png - png/eye_opened.32.png - png/eye_opened.64.png - png/eye_opened.128.png - png/ff.16.png - png/ff.32.png - png/ff.64.png - png/ff.128.png - png/filter.16.png - png/filter.32.png - png/filter.64.png - png/filter.128.png - png/folder.16.png - png/folder.32.png - png/folder.64.png - png/folder.128.png - png/hand.16.png - png/hand.32.png - png/hand.64.png - png/hand.128.png - png/iconview.16.png - png/iconview.32.png - png/iconview.64.png - png/iconview.128.png - png/imagesource.16.png - png/imagesource.32.png - png/imagesource.64.png - png/imagesource.128.png - png/import.16.png - png/import.32.png - png/import.64.png - png/import.128.png - png/listview.16.png - png/listview.32.png - png/listview.64.png - png/listview.128.png - png/magnet.16.png - png/magnet.32.png - png/magnet.64.png - png/magnet.128.png - png/map.16.png - png/map.32.png - png/map.64.png - png/map.128.png - png/minus.16.png - png/minus.32.png - png/minus.64.png - png/minus.128.png - png/new.16.png - png/new.32.png - png/new.64.png - png/new.128.png - png/next.16.png - png/next.32.png - png/next.64.png - png/next.128.png - png/nodes_btt.16.png - png/nodes_btt.32.png - png/nodes_btt.64.png - png/nodes_btt.128.png - png/nodes_ltr.16.png - png/nodes_ltr.32.png - png/nodes_ltr.64.png - png/nodes_ltr.128.png - png/nodes_rtl.16.png - png/nodes_rtl.32.png - png/nodes_rtl.64.png - png/nodes_rtl.128.png - png/nodes_ttb.16.png - png/nodes_ttb.32.png - png/nodes_ttb.64.png - png/nodes_ttb.128.png - png/open.16.png - png/open.32.png - png/open.64.png - png/open.128.png - png/padlock_closed.16.png - png/padlock_closed.32.png - png/padlock_closed.64.png - png/padlock_closed.128.png - png/padlock_opened.16.png - png/padlock_opened.32.png - png/padlock_opened.64.png - png/padlock_opened.128.png - png/paste.16.png - png/paste.32.png - png/paste.64.png - png/paste.128.png - png/pause.16.png - png/pause.32.png - png/pause.64.png - png/pause.128.png - png/play.16.png - png/play.32.png - png/play.64.png - png/play.128.png - png/plus.16.png - png/plus.32.png - png/plus.64.png - png/plus.128.png - png/prev.16.png - png/prev.32.png - png/prev.64.png - png/prev.128.png - png/razor.16.png - png/razor.32.png - png/razor.64.png - png/razor.128.png - png/record.16.png - png/record.32.png - png/record.64.png - png/record.128.png - png/redo.16.png - png/redo.32.png - png/redo.64.png - png/redo.128.png - png/rew.16.png - png/rew.32.png - png/rew.64.png - png/rew.128.png - png/ripple.16.png - png/ripple.32.png - png/ripple.64.png - png/ripple.128.png - png/rolling.16.png - png/rolling.32.png - png/rolling.64.png - png/rolling.128.png - png/save.16.png - png/save.32.png - png/save.64.png - png/save.128.png - png/sequence.16.png - png/sequence.32.png - png/sequence.64.png - png/sequence.128.png - png/slide.16.png - png/slide.32.png - png/slide.64.png - png/slide.128.png - png/slip.16.png - png/slip.32.png - png/slip.64.png - png/slip.128.png - png/smooth_edges.16.png - png/smooth_edges.32.png - png/smooth_edges.64.png - png/smooth_edges.128.png - png/text-bold.16.png - png/text-bold.32.png - png/text-bold.64.png - png/text-bold.128.png - png/text-italic.16.png - png/text-italic.32.png - png/text-italic.64.png - png/text-italic.128.png - png/text-underline.16.png - png/text-underline.32.png - png/text-underline.64.png - png/text-underline.128.png - png/transition-tool.16.png - png/transition-tool.32.png - png/transition-tool.64.png - png/transition-tool.128.png - png/treeview.16.png - png/treeview.32.png - png/treeview.64.png - png/treeview.128.png - png/tri-down.16.png - png/tri-down.32.png - png/tri-down.64.png - png/tri-down.128.png - png/tri-left.16.png - png/tri-left.32.png - png/tri-left.64.png - png/tri-left.128.png - png/tri-right.16.png - png/tri-right.32.png - png/tri-right.64.png - png/tri-right.128.png - png/tri-up.16.png - png/tri-up.32.png - png/tri-up.64.png - png/tri-up.128.png - png/undo.16.png - png/undo.32.png - png/undo.64.png - png/undo.128.png - png/videosource.16.png - png/videosource.32.png - png/videosource.64.png - png/videosource.128.png - png/zoomin.16.png - png/zoomin.32.png - png/zoomin.64.png - png/zoomin.128.png - png/zoomout.16.png - png/zoomout.32.png - png/zoomout.64.png - png/zoomout.128.png - - diff --git a/app/ui/style/olive-dark/png/eye_closed.128.disabled.png b/app/ui/style/olive-dark/png/eye-closed.128.disabled.png similarity index 87% rename from app/ui/style/olive-dark/png/eye_closed.128.disabled.png rename to app/ui/style/olive-dark/png/eye-closed.128.disabled.png index 7fb3fcc856e9478cf9bd13836f43e6985cf5ab69..64232e150764c9ad3292661f548f82ba3398fa7a 100644 GIT binary patch delta 94 zcmZ3^vz%u_H;0UfDAQykpO}r4@3FWUS%erFSQ!~w85n6B7+4t?Jb$IA!N9bP0l+XkKvb3qz literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/eye_closed.16.png b/app/ui/style/olive-dark/png/eye-closed.16.png similarity index 100% rename from app/ui/style/olive-dark/png/eye_closed.16.png rename to app/ui/style/olive-dark/png/eye-closed.16.png diff --git a/app/ui/style/olive-dark/png/eye-closed.32.disabled.png b/app/ui/style/olive-dark/png/eye-closed.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..41ab1b29fc0ec7ef89b01072e65801c036a3b4ab GIT binary patch literal 646 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yjBO=PkWi9&*DD>6S#WBR=_}hz)-cF7pM?c>8 zS=6DC6|l?m(a*p3K})+$#AjVm)~UX%q^f#)dxmhuwDNcVjh@T+S-o6hAJ}l^sxklN zPZ6&y%{hy;mdx_G;d>7XYAz9XMeD2 zUw7~Cl^4}_J+_M7b<0NG+k59!Q>`qiTT!#$9S-JN{(A}-iCJM~E^KRCkY1LV; zv;Q*a`yPJ$??po4%2kUOE?m^Kb!$wXU|fG`$tC-%>nNW}ZS&X>oRb+4j?CW&-6^LGmeyC8<`)MX5lF!N|bKNY}tv*T^Eo$iT|T z(8|D2+rYrez~CB_^;Q%Ox%nxXX_dG&ERS#I1Zt23*$|wcR#Ki=l*&+EUaps!mtCBk zSdglhUz9%kosASwkugM3X;E@2LqmdKI;Vst0H`hI&Hw-a literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/eye_closed.32.png b/app/ui/style/olive-dark/png/eye-closed.32.png similarity index 100% rename from app/ui/style/olive-dark/png/eye_closed.32.png rename to app/ui/style/olive-dark/png/eye-closed.32.png diff --git a/app/ui/style/olive-dark/png/eye_closed.64.disabled.png b/app/ui/style/olive-dark/png/eye-closed.64.disabled.png similarity index 79% rename from app/ui/style/olive-dark/png/eye_closed.64.disabled.png rename to app/ui/style/olive-dark/png/eye-closed.64.disabled.png index dac37d28492f2ac45df5e8c3ce1e3629d450ede1..6f7ea3d8ae4a3543dacdc2e8660d31dca7182812 100644 GIT binary patch delta 94 zcmdnYzL|YOH;0UfDAQykpO}r4vzXkBEJBP7tc(n;42-l546FVq1n delta 94 zcmdnYzL|YOHwQnzj?krhsYx3rXEC`MnuZvfTA7$w8Cqx?7+4t?>@xcBih+SawZt`| jBqgyV)hahXB{Qv(!N|bKNY}tv7emA8e2=in&ddb>Y8o5q diff --git a/app/ui/style/olive-dark/png/eye_closed.64.png b/app/ui/style/olive-dark/png/eye-closed.64.png similarity index 100% rename from app/ui/style/olive-dark/png/eye_closed.64.png rename to app/ui/style/olive-dark/png/eye-closed.64.png diff --git a/app/ui/style/olive-dark/png/eye_opened.128.disabled.png b/app/ui/style/olive-dark/png/eye-opened.128.disabled.png similarity index 91% rename from app/ui/style/olive-dark/png/eye_opened.128.disabled.png rename to app/ui/style/olive-dark/png/eye-opened.128.disabled.png index ce2219ccd9dd8356562c10e316d941d80032a683..7948b1ba88aab59d0193f57661707fc5f9abbc23 100644 GIT binary patch delta 71 zcmZ1@xJGb7H;0UfDAQykpO}r4li5X$EJBP7tc(n;42-l546FKic K@zUf2j0FJWYZMOv diff --git a/app/ui/style/olive-dark/png/eye_opened.16.png b/app/ui/style/olive-dark/png/eye-opened.16.png similarity index 100% rename from app/ui/style/olive-dark/png/eye_opened.16.png rename to app/ui/style/olive-dark/png/eye-opened.16.png diff --git a/app/ui/style/olive-dark/png/eye_opened.32.disabled.png b/app/ui/style/olive-dark/png/eye-opened.32.disabled.png similarity index 62% rename from app/ui/style/olive-dark/png/eye_opened.32.disabled.png rename to app/ui/style/olive-dark/png/eye-opened.32.disabled.png index e18729159fa6a5b3449fb0060992ee45fef4f1e0..0782c06c4246de80287926bcf60b77d89e77963e 100644 GIT binary patch delta 94 zcmey$`jvG;H;0UfDAQykpO}r4*D$&nS%erFSQ!~w85n6B7+4t?Jb$IA!N9EaloasKWFL+(Qk63q{v zuX;MonOoN7$lB(A|L2Fe+_5UL6tEK)JbI2V&F51ZNByE3Zo6M>-?*^z&60SP>gOkT zojUX9DP;tizT&-Db40uO-i)lK8`isa&kRYKJ9n#Ltf&7Xix>CQ)TWz!)^bR3bu(T5 z>#(%^uO9jLz0c*30bL+c;u=xnSXz>iU&P>>SX7dkrw~+HoSk2`{q&icKzUV=d`e>t*I;7bhncr0V4trO$q6BL!4s3{g~Cl$^?tQBqQ1rLUiy zpPQSXSFBf_nVp%Nnv$6aQmzl;>4zldrRT?ICggTe~DWM4fNW-e{ diff --git a/app/ui/style/olive-dark/png/eye_closed.32.disabled.png b/app/ui/style/olive-dark/png/eye_closed.32.disabled.png deleted file mode 100644 index bf93f5271fbe89b2c0cf3a6e73ce471face9dd44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 646 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-!Z&#xosecj{+Q0S|ti(`n#@wXQpy`3CIj()uF zv#3KOD`1!Bqo056gO+xih|jvBtW$kiNmcdq_6*^QY31+!8$FltvwFG2KCt1+Rb&3k zpCVpansXLwEt%zW#bmCqqIw@NVRa!X~EJC4~4F!{BPd4>4>a29i)+} zAhBxk1_hxow*}hX?)4KFE#%w5z1o+1NuyjvnQ&a)!PiE-2As+J_%_%E&e+MH&;DT5 zzV6=ND=(_=dTbTD>z0kWxA)GerdnB2x1wghJ!D~%vvTi^pu1b2O%#}S=iRJ7)2g#x zXa8l;_dWdh-;0F8m8%vnT)3!d>(-b&!MOg?l1uhi*&nL7pRG@wpbHEDkrLO4635b# zjQk=7-^8Ml%shpl(&Fs=vhAnO%mm7-g5*;YOH!?pi&B9UgOP!ek*Y}GCH12ss3YzWRzD=AMbN@XZ7FW1Y=%Pvk% zEJ)SMFG`>N&PEET$QYuiv?w{1A)}?Gynhq delta 71 zcmdnbwV!K3HwQnzj-)Hko>v5O@^I diff --git a/app/ui/style/olive-dark/png/padlock_closed.128.png b/app/ui/style/olive-dark/png/lock-closed.128.png similarity index 100% rename from app/ui/style/olive-dark/png/padlock_closed.128.png rename to app/ui/style/olive-dark/png/lock-closed.128.png diff --git a/app/ui/style/olive-dark/png/padlock_closed.16.disabled.png b/app/ui/style/olive-dark/png/lock-closed.16.disabled.png similarity index 64% rename from app/ui/style/olive-dark/png/padlock_closed.16.disabled.png rename to app/ui/style/olive-dark/png/lock-closed.16.disabled.png index afa9cfe1a02296e9de2ca2c2c20d3c895b8e953a..731218e01720841a012e8617bae478f2d68bfc6b 100644 GIT binary patch delta 93 zcmbQnGL2u+TOzure@ko>iB|z`&qd;u=ws jl30>zm7AZEnO4bQWME{ZYhbL4p~2|*v0IauF%|#-6EPdM delta 93 zcmbQnGL2mpeAdm-G{n%<%EZLV$XMIJz{X{Sx diff --git a/app/ui/style/olive-dark/png/padlock_closed.32.png b/app/ui/style/olive-dark/png/lock-closed.32.png similarity index 100% rename from app/ui/style/olive-dark/png/padlock_closed.32.png rename to app/ui/style/olive-dark/png/lock-closed.32.png diff --git a/app/ui/style/olive-dark/png/padlock_closed.64.disabled.png b/app/ui/style/olive-dark/png/lock-closed.64.disabled.png similarity index 76% rename from app/ui/style/olive-dark/png/padlock_closed.64.disabled.png rename to app/ui/style/olive-dark/png/lock-closed.64.disabled.png index e0e1f2adca5999548beddd846b2a64f13333d395..c559d8d58ec56953dc97f19fdb36d79bd01de520 100644 GIT binary patch delta 71 zcmX@ac8G04H;0UfC`a-0rA`|s|6~+3vIsFUure~VGO*A#Ft9Q(aGq6{HhCeF45p0H M@ng3pUt%f%02`eaH2?qr delta 71 zcmX@ac8G04HwQnzj)W0+PtC^3KN&?0O+yS#txQa;j7+o*46F1>V5(5K+YKdz^ kNlIc#s#R`&N@iLmgOP!ek*u+TOzure@ko>iANxrR{&Q^x4{ Lv0IbZG8O;;>yZ^z delta 70 zcmbQsGM8mSHwQnzj?^92w*eC;UlBDl4KXyeGBL3-GSfCNure@6Y3d1?T*D}XDI1>V5(5K+YKdz^ kNlIc#s#R`&N@iLmgOP!ek*@~ delta 94 zcmey)@||TuHwQnzj`V7#yT>+8)?;)tGz~E{wK6fWGBVdTFt9Q(IP|ss0RsbrYKdz^ kNlIc#s#R`&N@iLmgOP!ek*SKMWD#OyU}a=zWnigoU|?ln@bqozB?blt)e_f; kl9a@fRIA+ll+3hB1|tI_BV7YyT?`FVHk{3ye4VKP0H+uo?EnA( delta 94 zcmX@kcARZOHwQnzj`V7#yT>+8{>SKMXc}T@YGq<#Wn`{xU|?lnaOi9M0|o{L)e_f; kl9a@fRIA+ll+3hB1|tI_BV7YyT?`GISJ=l)zRpwt0Iz8sjQ{`u diff --git a/app/ui/style/olive-dark/png/padlock_opened.64.png b/app/ui/style/olive-dark/png/lock-opened.64.png similarity index 100% rename from app/ui/style/olive-dark/png/padlock_opened.64.png rename to app/ui/style/olive-dark/png/lock-opened.64.png diff --git a/app/ui/style/olive-dark/svg/eye_closed.svg b/app/ui/style/olive-dark/svg/eye-closed.svg similarity index 100% rename from app/ui/style/olive-dark/svg/eye_closed.svg rename to app/ui/style/olive-dark/svg/eye-closed.svg diff --git a/app/ui/style/olive-dark/svg/eye_opened.svg b/app/ui/style/olive-dark/svg/eye-opened.svg similarity index 100% rename from app/ui/style/olive-dark/svg/eye_opened.svg rename to app/ui/style/olive-dark/svg/eye-opened.svg diff --git a/app/ui/style/olive-dark/svg/padlock_closed.svg b/app/ui/style/olive-dark/svg/lock-closed.svg similarity index 100% rename from app/ui/style/olive-dark/svg/padlock_closed.svg rename to app/ui/style/olive-dark/svg/lock-closed.svg diff --git a/app/ui/style/olive-dark/svg/padlock_opened.svg b/app/ui/style/olive-dark/svg/lock-opened.svg similarity index 100% rename from app/ui/style/olive-dark/svg/padlock_opened.svg rename to app/ui/style/olive-dark/svg/lock-opened.svg diff --git a/app/ui/style/olive-light/olive-light.qrc b/app/ui/style/olive-light/olive-light.qrc deleted file mode 100644 index 16800275d..000000000 --- a/app/ui/style/olive-light/olive-light.qrc +++ /dev/null @@ -1,290 +0,0 @@ - - - style.css - palette.ini - png/add-button.16.png - png/add-button.32.png - png/add-button.64.png - png/add-button.128.png - png/add-effect.16.png - png/add-effect.32.png - png/add-effect.64.png - png/add-effect.128.png - png/add-transition.16.png - png/add-transition.32.png - png/add-transition.64.png - png/add-transition.128.png - png/align-center.16.png - png/align-center.32.png - png/align-center.64.png - png/align-center.128.png - png/align-justify-all.16.png - png/align-justify-all.32.png - png/align-justify-all.64.png - png/align-justify-all.128.png - png/align-justify-center.16.png - png/align-justify-center.32.png - png/align-justify-center.64.png - png/align-justify-center.128.png - png/align-justify-left.16.png - png/align-justify-left.32.png - png/align-justify-left.64.png - png/align-justify-left.128.png - png/align-justify-right.16.png - png/align-justify-right.32.png - png/align-justify-right.64.png - png/align-justify-right.128.png - png/align-left.16.png - png/align-left.32.png - png/align-left.64.png - png/align-left.128.png - png/align-right.16.png - png/align-right.32.png - png/align-right.64.png - png/align-right.128.png - png/arrow.16.png - png/arrow.32.png - png/arrow.64.png - png/arrow.128.png - png/audiosource.16.png - png/audiosource.32.png - png/audiosource.64.png - png/audiosource.128.png - png/beam.16.png - png/beam.32.png - png/beam.64.png - png/beam.128.png - png/box.16.png - png/box.32.png - png/box.64.png - png/box.128.png - png/clock.16.png - png/clock.32.png - png/clock.64.png - png/clock.128.png - png/copy.16.png - png/copy.32.png - png/copy.64.png - png/copy.128.png - png/diamond.16.png - png/diamond.32.png - png/diamond.64.png - png/diamond.128.png - png/dirup.16.png - png/dirup.32.png - png/dirup.64.png - png/dirup.128.png - png/error.16.png - png/error.32.png - png/error.64.png - png/error.128.png - png/export.16.png - png/export.32.png - png/export.64.png - png/export.128.png - png/eye_closed.16.png - png/eye_closed.32.png - png/eye_closed.64.png - png/eye_closed.128.png - png/eye_opened.16.png - png/eye_opened.32.png - png/eye_opened.64.png - png/eye_opened.128.png - png/ff.16.png - png/ff.32.png - png/ff.64.png - png/ff.128.png - png/filter.16.png - png/filter.32.png - png/filter.64.png - png/filter.128.png - png/folder.16.png - png/folder.32.png - png/folder.64.png - png/folder.128.png - png/hand.16.png - png/hand.32.png - png/hand.64.png - png/hand.128.png - png/iconview.16.png - png/iconview.32.png - png/iconview.64.png - png/iconview.128.png - png/imagesource.16.png - png/imagesource.32.png - png/imagesource.64.png - png/imagesource.128.png - png/import.16.png - png/import.32.png - png/import.64.png - png/import.128.png - png/listview.16.png - png/listview.32.png - png/listview.64.png - png/listview.128.png - png/magnet.16.png - png/magnet.32.png - png/magnet.64.png - png/magnet.128.png - png/map.16.png - png/map.32.png - png/map.64.png - png/map.128.png - png/minus.16.png - png/minus.32.png - png/minus.64.png - png/minus.128.png - png/new.16.png - png/new.32.png - png/new.64.png - png/new.128.png - png/next.16.png - png/next.32.png - png/next.64.png - png/next.128.png - png/nodes_btt.16.png - png/nodes_btt.32.png - png/nodes_btt.64.png - png/nodes_btt.128.png - png/nodes_ltr.16.png - png/nodes_ltr.32.png - png/nodes_ltr.64.png - png/nodes_ltr.128.png - png/nodes_rtl.16.png - png/nodes_rtl.32.png - png/nodes_rtl.64.png - png/nodes_rtl.128.png - png/nodes_ttb.16.png - png/nodes_ttb.32.png - png/nodes_ttb.64.png - png/nodes_ttb.128.png - png/open.16.png - png/open.32.png - png/open.64.png - png/open.128.png - png/padlock_closed.16.png - png/padlock_closed.32.png - png/padlock_closed.64.png - png/padlock_closed.128.png - png/padlock_opened.16.png - png/padlock_opened.32.png - png/padlock_opened.64.png - png/padlock_opened.128.png - png/paste.16.png - png/paste.32.png - png/paste.64.png - png/paste.128.png - png/pause.16.png - png/pause.32.png - png/pause.64.png - png/pause.128.png - png/play.16.png - png/play.32.png - png/play.64.png - png/play.128.png - png/plus.16.png - png/plus.32.png - png/plus.64.png - png/plus.128.png - png/prev.16.png - png/prev.32.png - png/prev.64.png - png/prev.128.png - png/razor.16.png - png/razor.32.png - png/razor.64.png - png/razor.128.png - png/record.16.png - png/record.32.png - png/record.64.png - png/record.128.png - png/redo.16.png - png/redo.32.png - png/redo.64.png - png/redo.128.png - png/rew.16.png - png/rew.32.png - png/rew.64.png - png/rew.128.png - png/ripple.16.png - png/ripple.32.png - png/ripple.64.png - png/ripple.128.png - png/rolling.16.png - png/rolling.32.png - png/rolling.64.png - png/rolling.128.png - png/save.16.png - png/save.32.png - png/save.64.png - png/save.128.png - png/sequence.16.png - png/sequence.32.png - png/sequence.64.png - png/sequence.128.png - png/slide.16.png - png/slide.32.png - png/slide.64.png - png/slide.128.png - png/slip.16.png - png/slip.32.png - png/slip.64.png - png/slip.128.png - png/smooth_edges.16.png - png/smooth_edges.32.png - png/smooth_edges.64.png - png/smooth_edges.128.png - png/text-bold.16.png - png/text-bold.32.png - png/text-bold.64.png - png/text-bold.128.png - png/text-italic.16.png - png/text-italic.32.png - png/text-italic.64.png - png/text-italic.128.png - png/text-underline.16.png - png/text-underline.32.png - png/text-underline.64.png - png/text-underline.128.png - png/transition-tool.16.png - png/transition-tool.32.png - png/transition-tool.64.png - png/transition-tool.128.png - png/treeview.16.png - png/treeview.32.png - png/treeview.64.png - png/treeview.128.png - png/tri-down.16.png - png/tri-down.32.png - png/tri-down.64.png - png/tri-down.128.png - png/tri-left.16.png - png/tri-left.32.png - png/tri-left.64.png - png/tri-left.128.png - png/tri-right.16.png - png/tri-right.32.png - png/tri-right.64.png - png/tri-right.128.png - png/tri-up.16.png - png/tri-up.32.png - png/tri-up.64.png - png/tri-up.128.png - png/undo.16.png - png/undo.32.png - png/undo.64.png - png/undo.128.png - png/videosource.16.png - png/videosource.32.png - png/videosource.64.png - png/videosource.128.png - png/zoomin.16.png - png/zoomin.32.png - png/zoomin.64.png - png/zoomin.128.png - png/zoomout.16.png - png/zoomout.32.png - png/zoomout.64.png - png/zoomout.128.png - - diff --git a/app/ui/style/olive-light/png/eye_closed.128.disabled.png b/app/ui/style/olive-light/png/eye_closed.128.disabled.png deleted file mode 100644 index fd260cbf4f82b0e753249f9b7ac1f73ad765b882..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1771 zcmZ`(don zHa#k=JUjz{Q~=J&!8dVyd7SJwLsXUdv|}r)Z#<*8>?kJ@TTcjXCqA;bOMYap*RXs) zzvenK_N0`z1}-i^uO6knI)@17M(j+w^JQOKFU*}eq@T6Vaj(I@x6gJ4BeE{57w-Kk zT8|%ZJ61{L51IsOJQT_v7`h*S#cB)zv{pA)%I^1+5~sZBBD;GK*Agf$uD?)9)E%QYoKd682osVNKigX{w}qWaiwL7k58 zA^)D(m*S#5qnFNP&qS_Ta=RYmGR zWDz3m9Ny;bYTaopMg)~_@E!}ht1f0{TAw| znnqzY$72E>>`1zNlvd_WZEN|z?{19?k}PHtwEohYC?aY#hfeZCf(#1x)_ocKHYW6b zr+fMOC!Hwfnq2(ccC2c91@z-9y~RPxK*!P2W54viQ=3Ss<$DERN0RcA6G0#^6HMTJ`Et-R$>zyENSBOyT9+0~nUcKvAe-9k zC=__9`>PsP&*jRb&-R{h70#5*Bkj{Xj@uMYT?%A%&~T<6#h`||IR!BvexqgcxA@bl zkib_Ka6)sdp80Gwp^!~0iIjbzvORsD{&MyJL{MT41a^zsb zmBuey^rdZ4h3%gLINZis?!35Z6Yr*9XxCV{X(>3Sr!N7#POlqTLHuFb(OS=y1%D%w z@-+?v{?tZR=f3x8XlPuhcHexGvbG0I8Ql#p@Vl-)PRL6C#j}i06Rmm{aTozF%)E0i z84qB|`e!f7rxh>R@w5BCGklv3HPxaHc}nq(nsAW9kvcbp(2U_5KLu1JyVa<*DSw?hLOfJ6ZW@aBZ`lMs345Riou$jLyV{>Ml=(}rbp1Ds3CO9uH1YVnfp?rX^dbx#E1^6HZFqg N0OyQ%y5o5E!rxoC5%T~5 diff --git a/app/ui/style/olive-light/png/eye_closed.128.png b/app/ui/style/olive-light/png/eye_closed.128.png deleted file mode 100644 index ce7ed0c90b44570049d09b515870fcf0a94bfeed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2491 zcmbtW`8(A67k__bD~(X~l@XFq zAvhLWX(goZnbWcW_c_Ye5~@crSO^PF>D=RD7Op0lO==7<&Fb8rs;K-|^_U zN+>b^tMNfTXx}f8#T6=v5(*q}p;Z4MC8sN40hI8%UKWGzNB=j;l~7+iAW^Bor*w6F zDP%GwC`^auAK*{M`}yO3rPKYT={nmfv5ywT~z# zvclo^d#$H-PP~q{dKN|_(0bk;viNv6QBk$cFpZSTc0%1vy;f#OwzS^S%NxwQ5N}K7 zSq!>6ICzM=1larf_`g%n`weC3>rpxDO)q>gxgS~$zuu_L>i@aXxt!UXaEU;;_Flob z*zE0kWbw&KA|ZToy-?_eq@}3x|G|bt_Zc=D_FW)6&3597w??QHI?_jGns1mrC9gkY z{xmHe*?1nwO^3l?o-ip+Be>n|m&A?|flqX>IQ1jYkR*DiEu>&R?(l&(RayZm=qWL! zqiYn5v-jK-7MY11Uiju_#@o;Y<4RIIvvzfbabCowF9GSaSsMrrl68_qnyjyPM_*L;@8x(r|8gF(n21Iy&rH z^9_(80aw}T783WKiy1a_&H4E}5Ry$?T`lPbo+L6kS_Mm@^8CB3eRzVjnz+7%ESg}co$zRX2asl%rQ=NrDRr;xO4VDQqO=nG7c zoIEFD`-)|R#bO5pQ{XLW>FGtv_b9@!04&4S%uL$irDUe@&hg~=NbTA$<(`lpTBIQt z&5h5&AGsWCe@~#dS_<<7pw`H?-MqlcO zHM}R{#mobEl}fgDDU%XPpLw<$hWh$dS&W~SH*yfYc2m&z1RFu%VL!Y@?YemGG%|Ao zhNkS5K7-+x7YO;)ymf`PRO~Im)XmPB0IQBvIX+Sp9s~K`G8K|dtP(TV z$GlELO3QV$n{fOMkID*Z@FDV`F1YY3b}JSh~Ck>AYY+QIks9GAMKuVScJFdE&Hbjcmwe zR90H#cBZy}%*o8m9F!(sr$EDnMl|N&n>V#*16~N5*N(S%fJeBwao?&jj85(!Vi1Su za7!wsO&A#k%aS)NpB%Kn>|!nkArOd)%Q?0GpqjHw&*b*sJpGp$e$HJ7AbjUKwR<;b zws}8WA7NPyYm1{;0|u)C^KCyk&VIZYKSZK>Xdjzq-v_a0a_g|?cy(_Xr-AYAX$c%B zEbRcjQwD>~9KREZLeoa8Dadz3*^beGEBTMypltQt>TvKZpAj&zZVhxv6~zbzg%}~z zzfa1uY*e$#YuWjFky0a6`eC>}niFzp9$WUIqKX|a2p(%KULZ^+XcC@iD&Ny5#H28O z|7OhLsHmtUM188iT~t)GDBgO}0aGVA)WNu+(vl z(wHt5e*OMv@)-;ToakaD!CE82NTkosCQ_wN51BqyV-K?3g{G}o&jp~VLYT4xW*u+9 zXo;eF)d>LAfef3&p=Pm0Ul>GHWRE^qA7G&Z@42i*T!C=#?c~WdV@`onDqYd6NJNLX zxmzw#znI|xX?-`Qz~S1$j|H0zkPTH{#E68Z8M)CbO&$X%&r4$7cF4@JlI+c6XxcI4 zl*@DzPzXLWpAe`$(w^Eukvpue~zqJ%dLJJXm!C}-c*vm z%Ms`)#cva>HqUb5XU~9XfnU2^Fg51 zTEHHM3d5w;Cr)3wA3n%%Gbws&8oOXePb(IBEO+!GF3$zDRiWpXcB2}d7@O@{`K2aUR~M-`1) zVL0ud&bLb;-9?o;Sa4+C01Jaz2F)yDiVd0@iPRM6(&zevot97KWHtVo_t3a9!l?`v f``@p_Nb3%iPDNFJ?{nSF|CxZTwIhaU=^ghUp^%3D diff --git a/app/ui/style/olive-light/png/eye_closed.16.disabled.png b/app/ui/style/olive-light/png/eye_closed.16.disabled.png deleted file mode 100644 index 2e1f71ad57d5f714f3c43680103e566f5403ba22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 541 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlG=I7TowV3L54k*;)>EaloasKWETkb;!5-s!1 zx3VZ^s5Xc6Mu=Se|G&8_L~wh+u8{1<3y!L8ZZ?q1`Q3+r?h+|+jVN&}Ey>6)V(?8Y zD#^@K2r4bk&M(`3`pitAyeddOC9x#cD!C{XNHG{07#Zmr80#9Eh8UV!nHXD{8fzOE zSQ!}HTfA{HiiX_$l+3hB+#1&Z-L1P+nfHmzkGcoSayYs+V7s zKKq@G6i|^dL{Vu`aw~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesQrVdi(`mI@7oFcz1j*y+U9>2o?Z~JM)9*c*P|F-UEZzV?>a_b zxOB(W<7lP+FKa$fK#b7Mb$R)Nk7$@`!8J(vIU+1q2%6NB@g*Y5nc zNW*Nijx~e9wOc0&=lo8T@Ox(VVpkrc&f2XLXPU5nW0*N{`pMM{ez&*1cNC~$NZ-b8qw6t1i~K#c}upTZBaNx>vjO!i9mxuJu9(UWMWY0d`6ceeUB@atXi%l z#B@D0^lt6i%}TzPV+D6I^o3qsbKNC{MXurYs#Wu@z5nSZbKH8}>vznzCx5y1{crMR g6Mf^lFV}ytEO2*atSD+^0{Wf7)78&qol`;+075>wD*ylh diff --git a/app/ui/style/olive-light/png/eye_closed.32.disabled.png b/app/ui/style/olive-light/png/eye_closed.32.disabled.png deleted file mode 100644 index 804bf35e0b19338c5349014f3ab33d67f1a96da6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 698 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-!Z&#!H^aE^Eh0|TR`r;B5V$MLrlWBm^~2)Lfl z>yG%Dak{x_k?yw6|NsAMgeEhXP7KTJ2r8>-Xz22iuQ7aR^X`tdbuoL{n;Re1BN!4- zzpo6l(#+?+UH9PZWzCF^)h?F;9K)w?m5c~vf8_7HmLX<)@_isv;IdCI+!-LFsqCXlQzn#CN|I=>kYk5B04yu2jKNY=n zXKSde#f+V2J;VOw*q81&z?x8D%W}>6J5wfe!jpwYJLcrhT5NlH;^Cv;vZmb8`5wuA zuK&!o zc5!lIL8@MUQTpt6Hc~)E#t=oNMaiiQ86_nJR{HwM`MJ6IdBu9=nc11SsVSL>Am#cX fo_VJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^Mz9Z5t%R9J=Wluc{Y zP!xvWliV>PWpX2ol=*-#6J{e+#f6KCh@$lmxN;--2VDEHba0{mfQoeGj}Si=rJ##0 ziZbG2CdncU$Y4w=*p_5++}xBXV;yv)n>?$W_nw^hJs}BDQc_Y5t;cIRmh0He`phnYXB(n!?K)!XiQmH&b;r*Bcx)9N1hG|eXfuH_mL-FIF0-F^T7h@z-(n&tu#ol#OZNs{x`YIQS??Pmei{;|(UYa(b-EQB=vg{7jm!WQ+F!Kh0b!Pq`ga{^+$ul_eiTn{F$^g6t@XYhP^#gln8K{CRGV>)OS|Xy8%zPYxsg7eJ3Yodj%NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$g4`T4cYugz9}1k_aI>EalYaqsQ4+rf_vM2_vB z91_9BB`U(cBuwmB>9_y?gUgPwKYf(yE*aLv5w&1W?FT2XiQSi`-~AIeYqH7Dee=}P znKDeIdfgUZ1X5@J^ZCwR+Hz)+%Jyr$e(yANjovK2Tfrw;5Mwux9^{A}*n$*Oxu&i^Pl0(t&zjiwX*y4Tpuy8nxYFh00>)6INwN$KP0zmUwVV3n!p6BBPWz@j z*d$ct$egPh>=ZJ$H{bcT!KyXSw#gbi*!m(;(&xbv1#`{$(;u;GS1wIo|MgPU)R!O6 zDLK)sL2m`m zw*9^qCUo~@wA+E_(@re=9h*P%KvLhOPcE883_rFN8uzC0wFMuWCnbDA%5=T@eBp8y z(Lj!W?pfFMuT-S1-nnk7!v_I1SF^{v{j*n3p6o1o&F6V-fZY^EhLW7mjw`-<-chmI zA9m)5zu|@*9Ra2fZ>Oy|b!iXl9Og}yHb!pjZ{6|}7pkR8TfR{$>FB(;=Kk542KBP( z>`xzDtDJA}(C+(DWnM$I`|`|}5;&WaJqjmHve`eO`q83mvv=QfpFe5(vfjUEMVPYq zrOM@HGNMd2&Uq%J{?YW;qpXXn{nO5FzkDg}^W;bVHFx*KPns(_ZDDfvca6>G-Yd9G zk1{R)c{WLunW5pm;Wjm~+|QG4Gx_c~K6mZ!&!YLE+R_#0-6r|Y5OMF>?vTP@!*-d& z`J2H4$G!3wYrQ~8WLEvO{qx**KHNL;aTzc{ij=rUlsJ}_WaJky_$C&WWacRZl@@2` zmu)|NW+qTx6(paMSdwa$T$Bo=7>o>zjC2i*bq!5J3{9;}jIB&fwG9lc3=H-bx2#0b zkei>9nO2Eg!x=prQJ@A%kPX54X(i=}MX3zs<>h*rdD+Fui3O>8`9 diff --git a/app/ui/style/olive-light/png/eye_closed.64.png b/app/ui/style/olive-light/png/eye_closed.64.png deleted file mode 100644 index 58a0c9d119d5482e7634af4e31c192963f8c5fa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1298 zcmV+t1?~EYP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H102FjZ zSad;kbZBpK08L?XbZKrNQgw4{Z+5rK%$WcH05fz&Saefwb#h~60BCe{a5^t9V{dJ3 zZ*FrgcWG;BZDnL>VJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^M#KuJVFRCt{2m|bXF zWf;f*&-=Drb4HVr)$gD#aa!zcZ)>4|ZEG4$--;1u2q&ZpIq_yJvyF1UYTrRh?J?XZWXf*0{b#+|=u%|{fwY0SK_{_}AwRM52)H;sy z3^o=I0DH97z3oqRdvF}54;zaIfSBVrPge?5jlof$m{Zwo_Rn@Cw-cn(>1hBtA9YoY zwGBx4IK2g+++tokNg2RtA6-?AwGCMHaq9Mw?^={nx+%Mw>)-1ciO4JQczmGctagZ4 zES4hqrjI&Xc~RSdv3edP9i`NJ#+Y3{2;=d1xTB-vEJ?@5q^icM29!#rk441uaZCX? z7mY^!0{`noB9XmHsdFS#_4Fd*mP(~hDrHsQ$>QSTaxfU25RoSVbkvD)tJeBJBoete zH#hfJ`%-V6!NI|x*7^eg2YgIQBv0gWx#>#bhCxv%6lVMS`U)f;@(I*mE|(AY^z@7` zEG#Uxn0H&~@9)12zy$#N{cMy{uX>*MeXYFiq@16hzZ?#SdjQ2)Ylrzih{%}hx-SA?J$=KqGM~@?5DtfL2QcUtAHc9uYNWTfw~){0uln7njc8-c zQ2_4%co+>HqKJIuy6#E%?{6Bu0qdw_GC4}}L=(1YrPRBDK;YZS$;q}3$)Ta4u41wH zD9PuswjwozjK|~mYpq`*c~`5kHpx|zZ)daF zuhGKF)2>%oC6mb`B#(*6gN@eZR=7UkeiV^UGnvddZZP4SirIQv)ud9XTSz{#y1IHq zMDA^HDr<`CLv(`Vcb%P`7t`tVY`by=wxIzv=wvcEO!7_ucZf(ofPExy2GA)YK>#4R z0AN`}W&!*`atgq2B67ub-AVkn{zh3W7K_DVu~;k?i)GjIH~lDOmr2c*fB*mh07*qo IM6N<$g8lDaoB#j- diff --git a/app/ui/style/olive-light/png/eye_opened.128.disabled.png b/app/ui/style/olive-light/png/eye_opened.128.disabled.png deleted file mode 100644 index 83477eb707ea7ce2a2a78422b0a79a9e83ff968b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2684 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 diff --git a/app/ui/style/olive-light/png/eye_opened.128.png b/app/ui/style/olive-light/png/eye_opened.128.png deleted file mode 100644 index ea511c3cdae6a45236381f0ce7daaac8d8b4578a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4071 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 D605gZ diff --git a/app/ui/style/olive-light/png/eye_opened.16.disabled.png b/app/ui/style/olive-light/png/eye_opened.16.disabled.png deleted file mode 100644 index 11c713cfcc8839ae91ea354b854eef6a6041f56b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 612 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlG=I7V8a8t1Y$}?Q{ba4#PIKQ{w(EqT3gv)*L z-QOH0Pgubtx+Neq>EZwXvpqx&I~ZM>UM*C+k;cHdD&pZXX}|LK56-LJFUwBuWULJR zttZ2(=N%a+^n|sjH+BB+X#NEZX5KfGDzC%_`7G<7wag;>(hJ9fX)~{LIF{#|>trNl z@4B&Q5*Mqe7?f0EdM6a?1_}a9BwYR z`zk9hc+S?7lkl})yHch5wr$PU*t1XPT>euTtfTzhy56KbF}+wvK&@W(yEr+qAXP8FD1G)j8!4b7V~C>CqU2PDjFOT9D}DXs{M_99ykfob r%~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq}8a)5S5wqW9`V!*1a~k=Fg6)1HO8&Goz9lH!rA$S8PLOzfN3 zqWuZmHwrm^6z`aQ=-jcS{|()1r*`*F-Ehz@rAI$4arMh-XP=ziJd;zi>BhU2a`Mk* z-|ZCF+q;GL+wZ@9-|HCeFia?sa=mym#c1Y#;{~_h@~P})ddK834+|}2wb*=Z-{*VF4=5*}nQY>FzI&0xdi4{Va`an1 zEIU_JC}SVJHf;VY1BUdqwYy^U`lZr(Dy`@G@h|pUzB#$)C&!Fk@5SH$4fX6dzZLuW z-v3D@jCa=EYz|xf^=8i9H6efbnGMeEWHrcg;7F7>{xSSO?vFZk&mtKoi98lLi|1m3 z4uK+%ftIS?WnUK_IyEXgzT$oHgBwxSTBkpm7Whw^UNYhN&xci=y;Xbf$$Fk|Y*%bK zdQ7r?QdvX(fp(ko_3PAcUR!-P@4nZh6oxx%E@nnfQ~&()&v~=|s@LNaG+LEcMiw0e PMjwNxtDnm{r-UW|j^F+9 diff --git a/app/ui/style/olive-light/png/eye_opened.32.disabled.png b/app/ui/style/olive-light/png/eye_opened.32.disabled.png deleted file mode 100644 index 5900f0c7882dd66a8cfd1711c3a2e7071f34ca75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 871 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-!Z&#!H1sLb`0fr0Uwr;B5V$MLtpvH7ABYqmPp1X+eVuIu-kdW#C$qyFJH+b%hKdGe@cOQ{GJbtN}gF|OJ6T#TFh<}cU!bO ze%`{0DYHXY3-4j^T2PyM<>XgJMxPR%%{wPDA8C%}caiTX;`>mrh?%M5{pDi}48NHj zdYig=A8a_E-S$c+Agzj#=Rq;2KEqkZIZIbr9oT)_sr%7c%p4ECGH5Sf$*?V- z^%1MWZp)K5Un>?K{Aw*_dfCA@elM%nf~hC#Hiw-znw7F_>kQo>X~y%xQhGw4*1cMH z*H>LYbd|v6Y3bLvGW;!Mb#HF2EZQYzSoQJpQl_=9FTbA|S~uu@!x7KapO!oFw#XzTq8;xOG`5Hix_+pi%K%{6oN{Nv-8WgpFT4a zD6a~VPf09EwMs5Z1yT$~21Z7@2FALErXhx=Rwl+)rsmoP237_JT5qN{plHa=PsvQH z#H}HEqb?|AN`h<%&QB{TPb^AhC@(M9%goCzPEIUH)ypqRpZ(583aH2!qNubeIh7%! zq@=(~Uq3lNH#a}8Sg$-YJ2N*mB{LDETpz^K4@t~R&yUYc&d-aRuQ36rox#)9&t;uc GLK6TW6;RIr diff --git a/app/ui/style/olive-light/png/eye_opened.32.png b/app/ui/style/olive-light/png/eye_opened.32.png deleted file mode 100644 index 78c2a7ffeec7587b3f54651f5dba968602b50fbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1062 zcmV+>1ljwEP)VJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^M!R7pfZR9J=Wmd|S( zWgNzz?>m$1y0w{1jYLW5?o6V4sMT66depW4xOf#rS|xh+APB(}@dwd*=|u!l;xCl^ z2@$jnloCOThqQapBs(*bKyzrB7_;ognfLLKNwu@HKPo~m`@kG#-sk&#KQFxRyf4sK zUwz$XNw3CYv3Rdx7!{Hakvt5*24DdofImd!I?1Y1YDsH-&iDPR{|i8|SgeT1Ya;R} zN!3%Rhz9Vp)_OJwf`$JC;JWU8Bxgt-ONCz(k+0)8UWnt^2LPp%V;IJh08Wv-E9L)1 zM5b%C+H%hTj^msnIR#)a6*gb5*QYi%Hny|sMn^~Y6$*uqNIsVuYKq8*p67kr4L}^n zIZg8A7Nf|#=XtLKpzFFPwAPa%as&WKE|HuKg5Z3T@o@$OMC2>a^JcKSZU6vAYUa}< zU&$!ER;c z0YCx3#Kgow0MqSK<2YUb0Il_8hvs{*lS$3_b{>*%Cp~uowARl6$hRwKG#bAHfQUTM z4FJFq0BAOwK?hGhilV3g4ZsfOTM|hEz{to*w|@+80GOuv1As<5XFi`ll!RaI1|TAr z0bpxu>re+UtgHceznxntRY?G5y8&pezW@NkFrMlF`EJtlpIs1!Vb!v% zJ4NK-jDq`fx!m0P`ucCSZ4UrA-X{B#APDBl$)##t=|HWO9gyiC={lu)#{&Fb>(t-|IW_N8IsSYhMG#L4{EjAcP&s^ zK>#p5K0cwfo+0^23gS9|Z{j#!h@!{?0Mj%b!!Rn?J&f#B)Fs0(POq-6u4MJ;dK{NZ zr6)w>RRE9O;&J>FfLYJ;E_C$v5}1J8L$V?w4~ocPk_WJRApwBRy$cD+C8g9k&+|5V g&F-tOzHY1j1{b_!XR1?QC;$Ke07*qoM6N<$g6@ReZ~y=R diff --git a/app/ui/style/olive-light/png/eye_opened.64.disabled.png b/app/ui/style/olive-light/png/eye_opened.64.disabled.png deleted file mode 100644 index 0914bb98aca1a0336357702f4487aa0a065d3fad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1431 zcmZ`(dpHw%82&N$Lc~EWlRxpekJ-DMs>9Zr{fMpwzZs5*>^RqIfCGa>uyHeuOA1o1rUA zFNcT&W!#+|vE+%Bz)|Lh^M}q@NFZ?zzYUGoNe@qqlxC%1w`Di`zd$ORO8xSye`wi^ zr@>PV5E{|G^E{qQ*m>?Rm3Gea@|5oNg4JFx4#dEXuj`mB^^MaLyUv-Nz4Orgpk_{3 zvJ%eYc&4Qj*M4VU;*Z@Yaup<;&_#N1Q1f8pqsG}i)K08qMZ`4UWAxN{T#@!M4XSaC z`URora5qi3iIhnkjr<0Ys8@}A|3PZ?&YSTls0`4G&r_&91;0}4YQz2}Et%Alpbm92 z7PaMnjAH-Zy<}|SN!W|)NxVllEDkEQI%xorxN_Pj;#$?S1};l`DLo_d1`HMBrBRS| zkk#?&Ny<&04f3+c><+&KlKp(uNToQhtD_IcHvKdozMD11B>QS>0sU3sv&lV@<>p+1 zTIqMIg@4Y^f4I-(yla}Od)Ek>QAT=Bq+zpQnFjhz_=Gp*tcQ){yV%Dissfrs;THi* zZz1!g`B!YcZ|jmwS#9`Iuq@cET`xW6G5#v(#=NOC)|Br9d11YJed}bfUR5Yw~%jX);^l$C#?l#$|02Ej9;2X zC!M3N`~^gf+>E?7+n0D}ut{h$^)s6j%Ez`>N1Id6n&ONzYz6tRBMlsCjn>q8D(Z*w zpFSLxF^{B)LJmkcLMg@;Ns-t&K8`&zqwXv%3dJb+kBz=M(OSZS-U?EYXw`2go>r|i z{D`x_cb9~wwNHPx)SIH;R+jrIQCL`iGBkVb?cL{%V8gYg|B>w)-h#=qf%&}0E_A7l z?n#kbpaf-M&r-88n6maXe!Y=Dlo|*dPuh@8^z-7v(oiF&8T|N58s!`QhKmojKW`k* zQam#`!V^iBS1%^$gU{%4Be)GnjJT;r)Udud_;oBQSEpzIA_ym`Q$*Ov?Fan#u1RHj znh|W*tFc*wlTHDBypi_%hU* zcGbQ0avXH~#dP(F&aevY?5-@8r40MTwB~7FOz+WLs6(iAVamW(U)68|@|lT8GI?RH zFIy)@XGD5OsV+yId=1^Fz37tOIlCEFi)Q9w3QZJ7R*q(Cb$cXMksEfFnZ{5bSFWJ9 z4{PAr>$oYpTOXEMoXh(AEY*9yAg^7PNFNYbCB|1LOctLhnz3sOXqeVfTP`2HG}E-w={sEpXBZ{FS)^M?C85ziu_2~3iB03-s5v_M!{Sfa3&D73W| z8g>p R314gn?k?WWkDYMI{{T8jZU+DW diff --git a/app/ui/style/olive-light/png/eye_opened.64.png b/app/ui/style/olive-light/png/eye_opened.64.png deleted file mode 100644 index bb285b7cfe8e7eeed8c1c27ccadbf0daedc8c799..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1995 zcmV;+2Q>JJP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H102FjZ zSad;kbZBpK08L?XbZKrNQgw4{Z+5rK%$WcH05fz&Saefwb#h~60BCe{a5^t9V{dJ3 zZ*FrgcWG;BZDnL>VJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^M%`AI}URCt{2np6MrU3N3|@K%!uWJ`|gf zrmf@RKD3miH-c#?P5R(CmD-r*LW?bosU2e~X=YckCC4`VZH%MK?#}6hR?h5dSDG0~ zX`%Cb`)>bp=Il4~UCsgt2?+@a2?+@a2?+@a|9@~Z#Rmrmn_So31z;!19RRukY$w?% zB256=DqY_rSrm~g0A>M912_-hoNe1@jvqf>+AJS8JOGa4+zen?M21LaMC7CE(IYu0 zA}5tnVCnw+CAXk_4H%Ld>w!Is`S4iG1B5H$lt03u%$QvY&xUM?}z+boKddK(n z_I_R|^{9yKT(2_`nGlgf*=+V00EsISI{=R3+ymfo5xF&#AyP!-EXgquIpO>MW#9K_ zDs5ecVRVwb6Tpy&^oR9>PEAd{5$8D~2cW;d|EBBLukQo!Kqv#G0C>gs{e#(T z)(tbpvaCMCFdhSNuZV>8@egxzbNeq{x^z8c|0VyTbhd5#E|SlP$R|S%$&q~2b=}iZ z>;&u$0C)~dt4A2#0Wjiu-ao_IFd{g!hvZL0q&?)2lf`0jPcD}W^{dxIYdve4=1U}Z z0q6-aq>beLrfDu}t;fUI2r~l=$8q+G$U|WS0f6K`dV72K)UMx|Or|-X&+qnqe~4s1 zfbEs084)=vBBPz1oulL9SFc|EHGn%K`0#@3x=&+`m15NZ3=R%9WwY5sB64q7 z!vJys?)N-T2Pj09+T-SXBK)F$$)m{OT zd{#v6i(pVlKJ0m3HfY1P?I!^|1t84p(+=Q1(=@ket=~dri7ONe^X={Jr&OaBdt4#Yi55LT}9mg3CR+LJmgE4fz z(bw1a^?D5}0^m5#4iOoNYC%NK1lRdYCesYyiKsetboW)X007g|(~~6Mj;iDP{yxjH zR&3g;0?^gfwFSV>0JKImK=QA_az3Bm4Zw=3Q-|&=SFQ{ND@3H>JG}}YF%08S4|1Y6EbhQQy@N5vQf4rRuv@`wDzHj&Mc1>X=IM zwzyh#*i~ce(mJ%h6fD#RAoi3k7K^n`ZHuc_hff3xrBZ2j9a_D?LTvzIA1lk{@}}J` ziAdFME|p4c*nLB-P%f@eYin!mFTS2>S_R1}t!vk=t!H)xH)$&Z@N!&Lk~as-B623K zRvoIeYHdY<-0wQj$m0tM&szzqgJcdR#-^7^YimZf^}5^xOnm6 z`vATNU_OR^)l%g+&REF>zh@yi)4v7zS>& zEURz1P&o?!FosSQN~r_E<8e<Utu}*8P-!e_J6+kA6#{hoedESo^Seh-%$|$8q5bY}OkDlj!zft3=S7KW0 zzok;CPa*vAlK}2+YioPCP$(>aN2C(Wb6DEZnQLfdl~PZ-uKQaA9=^M~yTdSy=MnBs zVaXZtsONc4V3k{;weAE(Yke%0O5FtD(;@A)ksL^;(|?|snYm$DYdtkEFz{kNpFgjZ zDw1p_*-ElVGDq@t0Ecbc{=unJrzV1enM|g6VPWByh%g&P^X{@(JWH~kVZn<2Z0RY1=wkxH!k-UTC zaKv@~j8f`HA6jax7R$0eYZ%5z*c{;o@^2CO>3=ObT7z;NXGlaIBzey!rpLO7sqX*) diff --git a/app/ui/style/olive-light/png/padlock_closed.128.disabled.png b/app/ui/style/olive-light/png/padlock_closed.128.disabled.png deleted file mode 100644 index 7ee3d319b061a16d7ee9300831d8617c8bff5b11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1524 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_Gire{5nkMGfUZk7AAYTIEGZ*dOJ5aU&>wJc>1*N zMq|SSp3JGoY%DUhBeV89*;VaxSmF^XuX8jZDOBvn%J(s6njhx<($W{YIj{9@@`1Vc zUw^z)|KI#~!R~Sihd>cmWc2fY!|VM|qTf6%cGYrlury$pki^72M{V-AH?p>w%(GO3 z+ibNOD-{%u3f>8*F{>(K+rnMKz&>F+&-{Z^cfRtQ-@&+6V1K)mZlx+q$AkBA&$dq3 z$Y}qhSuI5N$luLBO6*PtCFBy;#<^Pmcv$mamaT}JcVuS7gigk@;x{S_Rz>qBf7AZ_qD-47V}HwGo?T*2Te&Xo zm(F+iZEf}C-VgmZp~3f=7o{`LD$Pm1R>N?hC{?W2{93~~y+1R4URo8^z3%zHOO-OK z;@Dr#HeI7*SbLev>{5g4>8iEwS)MN3+Q?RNDj?eZGb6)-YpZ^EJzbd+%~lur>|Zk1 z;*y+Y6POwrnOXuCsphfy9ll@ZU#s!`>TIcPXWbh(+7kb){gZ60=gh2CW~~$=aXs;Y z^N#6U7G{s*GmpP2GQVP9og$UpcB931wNLqP`Fqtj>^~XtzPtADfRc{s-+Pf?UWkaD zU%dJi(NT+aeVsbFY<=fjgA;L; zylh*TwlSYkf4(~9+n_{!+tO1ZZQZ*)?_b0*_ONuly=0@1|C!ezO~PsU z-`Op*ZRU4MAJAPUy!`AN)?%%ebKaHT4I3t2h|FaB;neyw``xQ-gNEvyLhFy|^MB5r zpY~TSK1VUDVGBd%6^2a4ODh;JF)ayXUc%~;ymwMod%$v|XZvmUJE}2TzPqbGTRwPJ zV$by0)9nV@%zbCyD(;K;9leH6;o^pC+bu0NR?Gl~`TT1YA6}kh)bO1zU%M}XS(is+ zYexJoTkVPSSptu+Zfs7l-eUFrrpJbhiT!>*A{XrQt^J?P(Yd#B4dauC9~>_*h1q5^ ztb4k3`WlCC7v`;RSR1GHF*+^!u8lmxWsBK7xF@*rP7qV*l~T}kkTP|MYB0g(1+o?X zOU+z<{{GR#tDp6~?|W`P$QfoE&*-{SD>Sf~>!BSek}Ca!f3FP>PgA>Z6tDymDRGS`aV#y#$S-2>O)M(O z%u@&|EzZs_+kX1YOrX3fNIoU8B-JXpC>2OC7#SED=^7a88k&X}np&BdSQ!{;8yHv_ z7+iX>-U>xSZhlH;S|x4`i?@om0X0a1YzWRzD=AMbN@XZ7FW1Y=%Pvk%EJ)SMFG`>N z&PEET$QYuiv?w{1A)}+MBSBgGssVb_d zQ7^S`LmTCo7FAN?h)I=+v4q-#wzhPV^S-)bJf9IZi@A;i`GcLJ1E6Hog z0|1}|;&Gnh$ds5IRP6igLWjiR2o>)i3jjKIB?ifv-z12W$K#y*;=Cvkag0zJ0bno~ zrljb|*sxG4!IVNHmaP4tB_^p$NZ9zepC~lIEtD2Vibins*t6qdFg>n3Z2e+0Cp?!m0-Nf zb-sT}Be(|fD|d|TI|H+Eb5LMH`dE|pc?JFwLQYhM8cZJIjg+d$8Wy_1@gnV>Hl!+@ z7KADRet{e`dDgCcn(Oj)^f($49v*(nwCE<#h^i_{so76a>izhmOe(~#*k zOI$s8Qj-nDX#WTb8vvJjA|}lXH<#Ai+v}mJscBq)m*m4yM`Tt`;_WgEQ%VEeB5xyp z)i3Ahx{Pg0PxQ4`8pvNVEn0_A&og^=Ois%IftL-{wMdV;ml7Y&F6~Jb49!nE&Dl-F zw$2b!9YW2|VpgsO1u+dXqfxsmi5uY>06zE;NARVF)YZRZ@@I9VHCekKUNXGk1?&ZK zt}U|AiU!1ph%RC2lT!+4D=RvU9h?HSAKfvr%00+QC)fJ2YM1@9xrGKkJBf!38!X)p zNFPW9l)E0!`gPSy7LyNYS;pA%yF6>-I+ssobA2d~YR@GUz>&6LtL>s9foYOeiLNZR zQMZTo*(0(gJ{q8Qr$1kPzsEW}Je*jWX797y=Q{KRiOi~xibH45?^g|5GHXR5QB?or z*V)B zHc}1U#!@uoQ*Qu8JtLp@W`siF&z5eCfB_4xo59Z=es3|VGQB!r{=t;z3FE@IzCcG_ zX-A#`(t2{Bsp6D8+Sb+<8d632Ztyi(@QM)n{F|3poU+s_^v!3rTViQEOVthwy3CAd zxxpquLGevqUCf`m1wW(XTJ6bm5?Gu>)2qQ{&5s1V>aPE_u?uo7|1`b z0jt8`MZ5goe_BnK1T+&lkIjICL6qK$#9afr{`K-LDZplkx@*>lKBy@KeV;Tmtb<8g zCBM{gSaht=GOl@}a9Iyhb_VN>fy+!2obURwYlT9qM0;koy<6 zY^r9lU`r}j+agfp7|`}JwBlQfwitn<#?z~)->Nm5*FX1dLx6~~?9(X5Xw&;N*}8H4#bZrm?*NdZ`i zr0(6jr=0t8d|O^Oo{WMcg*h`bGtT5GziZV1FX&tfEbm^_Tr zlS=r10&hIJ;z0XkFAEAghn9=314CP4Ic(P`<-dd>P{(*d4&0< znAq6Z;nC4i!S%Keh(TS)^TBl7=ckQzm({1vo;w#cpHa)z)q(eK9!FXjAxoN_`#;gJbq{KC% z#Idv_Bfp5jH?gQBGfyF?v^YDzZ2RdmGlBA|Ao-NUl2ohYqEsNoU}Ruqq-$WTYiJr` zXli9*Vr5{UZD0T-UCZ|gqiD#@PsvQH#I3^!1bTb93|aiuKAfvomv3Q!*1l%Jo4! f{gA}G^!)hD~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesQtF5i(`mI@7;bwzrz6nF88fG^mL-8s9m~c%i+32>3N3*b83~= zIR;-phUW{MOf+M5Yz$xIEiEmdK II;Vst0E+XYW&i*H diff --git a/app/ui/style/olive-light/png/padlock_closed.32.disabled.png b/app/ui/style/olive-light/png/padlock_closed.32.disabled.png deleted file mode 100644 index 9c9ec96d34f67fe18df78b25e28a9e6072372fb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 674 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-!Z&#%K6mY}kSfq_xb)5S5w`&&kNsY_0 zri*N6dzCv`DnS1A`tU+mhxmHgQ+88LkIrHJZa!a|`P{aOg9i-tp8ooF^!v7&mphcF zeckc7nk1632UaxI>^HTJR4Oecr|02Y`uHbs=?Y!d;nK>N%_zPGVa{718n5yz% z-Cdu>oHINwy3CuCXUH%&rE_^@;m-_4>7@)CoqO+nes$yD$tcYR`|C&UZ@T<9xut8W zkpH%&>~n)79;hg^C2lDYTJglf;dkZcRI9CD_6V+6&2s+E*7pk-O&b2QcC0MYDNfH< zjFDAjOT7CevzEDCGhF3McjRYac!`v_MwB>~mSp4?G597Hm1O2A1eF$N=a+3ieP$+5 zUKJ#tl30>zm0Xkxq!^40jEr;*jCBo7Lkvx=OiZi{473dlfTU~rK4BCMx%nxXX_dG& zm}s%B2WpT6*$|wcR#Ki=l*&+EUaps!mtCBkSdglhUz9%kosASwkugM3X;E@2LqmdKI;Vst E0PO4Xh5!Hn diff --git a/app/ui/style/olive-light/png/padlock_closed.32.png b/app/ui/style/olive-light/png/padlock_closed.32.png deleted file mode 100644 index e4c244669209c04ecfaa54487ad75f7c892919cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 625 zcmV-%0*?KOP)VJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^MypGibPR9J=Wl)Z1$ zP!z?_u`NW{sv>ARBxy2LSyFQa*dOhPhjwo-f-_b_uSv}V4zf~e=N>3)M~XJMN#xZ(iQ+Xj`O=xsdT#C z?(Iqen$703IF1iU?n-*{Ac%}4efK=?q}S_REghiIXuOnkDrs$EAbCylpx^KRS{gvL zT5Y+m`&Ck98b5#=l6yfAbZkb)X7GLAb6xj1zntVb$sg%C&y76>aOC^GXUn%527|#{ zN!z*hQ4j=Y0OGWE>-G9RfWv!(r0p;a-vIbFDc|}9B)!hHJ{w~`W|jj$Y>fFp@{475 zb^ri7*&<1jPveZE(dfaQq@8izsR2l?XX`Kw2jjfM;n3t}pDqj_$<4LmLSw;Q!R+h+ ztJWX?fm*HhisX9$&(l^OGO=V9`bl0&Y8zvIPBO!BoOhY!_W{{sQ=wndM*6Ucw2-th z#ge%sY10buw^ag^03|>P@c#jjyj;~Xk{4D0N$piYq|4jO&Rtk{_VJtIUE>lu00000 LNkvXXu0mjfb5j-N diff --git a/app/ui/style/olive-light/png/padlock_closed.64.disabled.png b/app/ui/style/olive-light/png/padlock_closed.64.disabled.png deleted file mode 100644 index 5c7512f0af91f7532a11472f2b9a52d56a6283e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 924 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$g4`T2Di!xB{X05x%Yx;Tbp+BRC>14B;^EcSn{%;VMUT4xArMs~J|kDq_8%bOKtZ2Hb@j&q)5+v(h-7=MqTP%0u{-fUTsq78g^jTmcOO-N?+bm{NefW z;OUu84?e#*|H5@^p`7|#Nzd*ndw#q+%W&vrSNz6;nkIzib&x@O{F#)KZ!PC{xWt~$( F699PuXsiGL diff --git a/app/ui/style/olive-light/png/padlock_closed.64.png b/app/ui/style/olive-light/png/padlock_closed.64.png deleted file mode 100644 index 3a6c19f593739ccdf6f0de30bc8e26ae6ed35b56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1095 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 abJii{ENu=GK}%J=Sm2Kd@NMxvbN+9AVz|Em diff --git a/app/ui/style/olive-light/png/padlock_opened.16.disabled.png b/app/ui/style/olive-light/png/padlock_opened.16.disabled.png deleted file mode 100644 index 0284d485d34132db95b44455442324b5c61b25d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 565 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlG=I7U8-jU}z0VuS@)5S4FLn2>uXp3)tFVlq z3y%J~v=mnTPME%OYR?bZx6F#+GE!%&OFT=hxmDyMUY`~GQ)VRA@4PCy(wR3(v7y*& z`Syl6s$6k@%67$zV>#-3Lbx{@HpkqxpC6(fdqUUnV^Y^e(io?PZ*I z$xd_Y-L1P+nfHmzkGcoSayYs+V7sKKq@G6i|^dL{Vu`aw|cr diff --git a/app/ui/style/olive-light/png/padlock_opened.16.png b/app/ui/style/olive-light/png/padlock_opened.16.png deleted file mode 100644 index df820953628ae9f151cc60d8800844d1b62ead67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 461 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9G08$g&*{RsbBprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesQtI6i(`mI@7+oJy^bUZ9I5{uD-hIb(=fqa>{`2+U3>4*#;sv; z;lD)8>{|BrUNdXgY*uK@Db$~EX>v-go=|b;oy6xMhu^$0IQ^Yd+2it;4eMTOHaxG4 z3=~jMiK#Pv8C;f_ZLSX8`?^}aR?%}(vGHzJsRx1;?0pTJ6*$5|L-&^c zT_=CRZ+HOWY=%-#J@t z&R>_Vy70ZacA?Jc(~V(^C9D$lYwVL{j`OFP-7S0{8meDsawA#t!4lPayNB~x*SN>t p{*mGNT{*V<#7n)~Y1?vsir3EZVp}d&eh(N744$rjF6*2UngD7;xH|v< diff --git a/app/ui/style/olive-light/png/padlock_opened.32.disabled.png b/app/ui/style/olive-light/png/padlock_opened.32.disabled.png deleted file mode 100644 index db7edeb071921ec362946a52c055aaab57b08101..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 669 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-!Z&#%Lx#&yA%fq{|7)5S5w@5MX1 z$pv3IcC)XU*VA{S`ICvHXWPul3LmyHFS@b1SK(e+^xog9?-;8aSQlg_MX$b|ulUjZ zfMq>|29-#OYeb1-X-P(Y5rc1HQAuW=LQrXOc7ECR(`RM^?)FK#IZ0z{p6~z*yJNG{n%<%EZLVz(m`?z{(yEr+qAXP8FD1G)j8!4b7V~C>CqU2PDjFOT9 zD}DXs{M_99ykfob%~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq`+Rr;B4qMC;q>`@Ii4$Q-@zy+$N<*Ube5uHOII+O0ZfPgYn| z-!Pfu+@(OluEk0n|C^d8N3(Bi{_n(mNn7@oQ+t!gMw6P@t|j)uxlS@gw{7q3{eJT9 zL;;0I2k+|zctxswXL!Q6guO`EA<|`D*48Lx9fn}dQnybM2Of!>7jIx+`<0hL-Gjk+ z^2s}lH$J}9&s^*O$6-d@r71zrRle6wV?I!&H8tv0iB+op;^%xRn{VYzn>YgVz>K`x3cU0u*aI92(acAdobJmXTkiMCBU4e1T;OXk;vd$@?2>_FM B|G5AF diff --git a/app/ui/style/olive-light/png/padlock_opened.64.disabled.png b/app/ui/style/olive-light/png/padlock_opened.64.disabled.png deleted file mode 100644 index 517ca21d6a0e230de27b5adbbb7c16cf417d687d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 934 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$g4`T2EN19=}T1!@xYba4#Hxc7GES-;y3BCY4= z9`T#&IwwNp7L!p&j)2oEjob+*&p*=Ky*uWgXoIog?WNoA#3Y&?&NX;dxRk-& zy5vAF(?O=@7u%E?m>2Wp(Kvi<4$t8^VkIFPdCt zDp;}Cc%H=8CIh1-Y2xz=D;YjqS{M0UYU_cI)%Sic{>1P>?Zi7do_W6dma85w=JL{1 z`zhkhur5RK!LCU&9(hlBb?3Deqr-2Vsp=1I$=3X~J#*}C-M0R6o$C4nQ_scTW}UBL zS7{llmx1o3d+|G0RK#cm(&5E-$A*9^C|I(*s2^TB!dytU%d@0qw079Ehu9V`Th}MyVR8)G@3;;u`yI!1 zwD$Gp156PNAY&R>H!z5SIIImk|G!S*IU0L+n*ZuG{-@gGSQXwc-n8Cn%BQ6@zLpv) zEA7R2cSy_2N*?`VtM#?|`~AN7FKH8Zi_VNV3QRL1C9V-Aj-@3T`9%!AiA5!uc?vpLQ!5h_D+5z)0|P4q19AU} zTTnFQ=BH$)RpQo=CZx#$)F276Aviy+q&%@Gm7%=6TrV>(yEr+qAXP8FD1G)j8!4b7 zV~C>CqU2PDjFOT9D}DXs{M_99ykfob%anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq}W()5S5QV$R#yjv2w8GROAk`yATVwUOWCTJ8yLvBb9*o0T|3 zZ7U)I#8?Ey^p!d`JUD2(rku4p;_l>oEROt-99hcwl~|W52z^tDTJbj9JgmF@+1h1d zm(JX878HFo`}!Ww<*M(?&;0rMY_|T)nJGs69xrotOqwg&eKhxGPTBrzRn{k&8qS_w zwq40+^^~fc876XmzP@|oH2rh=6AB6p!dGAIoBYSsrR92N#d+`oFYRQdql>|OC6jV7Ozk(HPK ze}CG7O{y#jvE}98=V#o1z?ks+(W6JA46k!Iql90*e{Zj;wExzn?gdXO@9o~Xb7y^S zN90VVeed&`J_sCeOKwjQJzyX8I*=iMmVSPy*IU*C4;QneFN|0U6gZl)R?oAa?5V}T zpmM&$5Z;qVqVpaxc;xkEg?rihDf~Zi zVV`QF8H4rw2B(n6hYlTD9oG8%`E%{INo&_;)vFaUC|#1hYG-V0e1FxqH*a!uJ%I-Q z46X2;#P;A;L$;M&!;$^0Q-XHqNEEt0Vo+04bCPz8x%e?yf%m{x#_LNMcbGkxWx{Zs zEk^jY&xR1KuUbpbG2c*EdVTwirl3l;lF_QIa`S+|;M#1iSWh8XDr zU#W&{=5?OT1-S=IGa1(L?odN_3Pf=aT2{D`HP{MN^*PZcwFWo7d@ zWZU-m`)91t^ayi((zNp2k39|&ZN)!p{>=+oCGMc#Fo(A}_lfOEcBLXKjwbVGpQfC9 ard*=KlXxj6_zy5wGkCiCxvX #include "core.h" +#include "ui/icons/icons.h" #include "widget/menu/menu.h" #include "widget/timelinewidget/undo/timelineundogeneral.h" @@ -56,15 +57,21 @@ TrackViewItem::TrackViewItem(Track* track, QWidget *parent) : connect(line_edit_, &FocusableLineEdit::Cancelled, this, &TrackViewItem::LineEditCancelled); stack_->addWidget(line_edit_); - mute_button_ = CreateMSLButton(tr("M"), Qt::red); + mute_button_ = CreateMSLButton(Qt::red); + mute_button_->setChecked(track->IsMuted()); + UpdateMuteButton(track->IsMuted()); connect(mute_button_, &QPushButton::toggled, track_, &Track::SetMuted); + connect(mute_button_, &QPushButton::toggled, this, &TrackViewItem::UpdateMuteButton); layout->addWidget(mute_button_); /*solo_button_ = CreateMSLButton(tr("S"), Qt::yellow); layout->addWidget(solo_button_);*/ - lock_button_ = CreateMSLButton(tr("L"), Qt::gray); + lock_button_ = CreateMSLButton(Qt::gray); + lock_button_->setCheckable(track->IsLocked()); + UpdateLockButton(track->IsLocked()); connect(lock_button_, &QPushButton::toggled, track_, &Track::SetLocked); + connect(lock_button_, &QPushButton::toggled, this, &TrackViewItem::UpdateLockButton); layout->addWidget(lock_button_); setMinimumHeight(mute_button_->height()); @@ -74,9 +81,9 @@ TrackViewItem::TrackViewItem(Track* track, QWidget *parent) : connect(this, &QWidget::customContextMenuRequested, this, &TrackViewItem::ShowContextMenu); } -QPushButton *TrackViewItem::CreateMSLButton(const QString& text, const QColor& checked_color) const +QPushButton *TrackViewItem::CreateMSLButton(const QColor& checked_color) const { - QPushButton* button = new QPushButton(text); + QPushButton* button = new QPushButton(); button->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding); button->setCheckable(true); button->setStyleSheet(QStringLiteral("QPushButton::checked { background: %1; }").arg(checked_color.name())); @@ -169,4 +176,14 @@ void TrackViewItem::DeleteAllEmptyTracks() } } +void TrackViewItem::UpdateMuteButton(bool e) +{ + mute_button_->setIcon(e ? icon::EyeClosed : icon::EyeOpened); +} + +void TrackViewItem::UpdateLockButton(bool e) +{ + lock_button_->setIcon(e ? icon::LockClosed : icon::LockOpened); +} + } diff --git a/app/widget/timelinewidget/trackview/trackviewitem.h b/app/widget/timelinewidget/trackview/trackviewitem.h index 9d1c04506..000a562f0 100644 --- a/app/widget/timelinewidget/trackview/trackviewitem.h +++ b/app/widget/timelinewidget/trackview/trackviewitem.h @@ -39,7 +39,7 @@ public: QWidget* parent = nullptr); private: - QPushButton* CreateMSLButton(const QString &text, const QColor &checked_color) const; + QPushButton* CreateMSLButton(const QColor &checked_color) const; QStackedWidget* stack_; @@ -67,6 +67,10 @@ private slots: void DeleteAllEmptyTracks(); + void UpdateMuteButton(bool e); + + void UpdateLockButton(bool e); + }; } From c4711370c448f6287bd4ad962d272857d5cda803 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 28 Mar 2022 13:37:42 -0700 Subject: [PATCH 063/114] add skip existing option to style script --- app/ui/style/generate-style.sh | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/app/ui/style/generate-style.sh b/app/ui/style/generate-style.sh index 50ddb4db9..1fc2a897c 100755 --- a/app/ui/style/generate-style.sh +++ b/app/ui/style/generate-style.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # Olive - Non-Linear Video Editor # Copyright (C) 2021 Olive Team @@ -32,22 +32,38 @@ OUTPUT_SIZES=( 16 32 64 128 ) if [ $# -lt 1 ] then echo "Generates sized PNG icons from SVG files" - echo "Usage: $0 icon-pack-name" + echo "Usage: $0 [options] " echo echo "Example: $0 olive-dark" echo + echo "Options:" + echo " -l Skip existing files (only create files that don't exist)" exit 1 fi -PACKNAME=$1 -SVGDIR=$1/svg -PNGDIR=$1/png +SKIP_EXISTING=0 + +for var in "$@" +do + if [ "$var" == "-l" ] + then + SKIP_EXISTING=1 + fi +done + +PACKNAME="${@: -1}" +SVGDIR=$PACKNAME/svg +PNGDIR=$PACKNAME/png mkdir -p $PNGDIR OutputPng() { - inkscape --export-filename $2.png --export-width $s --export-height $s $1 - convert $2.png -alpha set -background none -channel A -evaluate multiply 0.25 +channel $2.disabled.png + if [ $SKIP_EXISTING -eq 0 ] || [ ! -f "$2.png" ]; then + inkscape --export-filename $2.png --export-width $s --export-height $s $1 + fi + if [ $SKIP_EXISTING -eq 0 ] || [ ! -f "$2.disabled.png" ]; then + convert $2.png -alpha set -background none -channel A -evaluate multiply 0.25 +channel $2.disabled.png + fi } for f in $SVGDIR/*.svg From 9022a4f82538bc279fc18b49aa3690cfa0ef6c19 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 28 Mar 2022 13:37:49 -0700 Subject: [PATCH 064/114] add icons for olive-light --- .../olive-light/png/eye-closed.128.disabled.png | Bin 0 -> 1771 bytes app/ui/style/olive-light/png/eye-closed.128.png | Bin 0 -> 2491 bytes .../olive-light/png/eye-closed.16.disabled.png | Bin 0 -> 541 bytes app/ui/style/olive-light/png/eye-closed.16.png | Bin 0 -> 450 bytes .../olive-light/png/eye-closed.32.disabled.png | Bin 0 -> 698 bytes app/ui/style/olive-light/png/eye-closed.32.png | Bin 0 -> 751 bytes .../olive-light/png/eye-closed.64.disabled.png | Bin 0 -> 1027 bytes app/ui/style/olive-light/png/eye-closed.64.png | Bin 0 -> 1298 bytes .../olive-light/png/eye-opened.128.disabled.png | Bin 0 -> 2684 bytes app/ui/style/olive-light/png/eye-opened.128.png | Bin 0 -> 4071 bytes .../olive-light/png/eye-opened.16.disabled.png | Bin 0 -> 612 bytes app/ui/style/olive-light/png/eye-opened.16.png | Bin 0 -> 582 bytes .../olive-light/png/eye-opened.32.disabled.png | Bin 0 -> 871 bytes app/ui/style/olive-light/png/eye-opened.32.png | Bin 0 -> 1062 bytes .../olive-light/png/eye-opened.64.disabled.png | Bin 0 -> 1431 bytes app/ui/style/olive-light/png/eye-opened.64.png | Bin 0 -> 1995 bytes .../olive-light/png/lock-closed.128.disabled.png | Bin 0 -> 1524 bytes app/ui/style/olive-light/png/lock-closed.128.png | Bin 0 -> 1990 bytes .../olive-light/png/lock-closed.16.disabled.png | Bin 0 -> 552 bytes app/ui/style/olive-light/png/lock-closed.16.png | Bin 0 -> 429 bytes .../olive-light/png/lock-closed.32.disabled.png | Bin 0 -> 674 bytes app/ui/style/olive-light/png/lock-closed.32.png | Bin 0 -> 625 bytes .../olive-light/png/lock-closed.64.disabled.png | Bin 0 -> 924 bytes app/ui/style/olive-light/png/lock-closed.64.png | Bin 0 -> 1095 bytes .../olive-light/png/lock-opened.128.disabled.png | Bin 0 -> 1557 bytes app/ui/style/olive-light/png/lock-opened.128.png | Bin 0 -> 2026 bytes .../olive-light/png/lock-opened.16.disabled.png | Bin 0 -> 565 bytes app/ui/style/olive-light/png/lock-opened.16.png | Bin 0 -> 461 bytes .../olive-light/png/lock-opened.32.disabled.png | Bin 0 -> 669 bytes app/ui/style/olive-light/png/lock-opened.32.png | Bin 0 -> 619 bytes .../olive-light/png/lock-opened.64.disabled.png | Bin 0 -> 934 bytes app/ui/style/olive-light/png/lock-opened.64.png | Bin 0 -> 1117 bytes 32 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 app/ui/style/olive-light/png/eye-closed.128.disabled.png create mode 100644 app/ui/style/olive-light/png/eye-closed.128.png create mode 100644 app/ui/style/olive-light/png/eye-closed.16.disabled.png create mode 100644 app/ui/style/olive-light/png/eye-closed.16.png create mode 100644 app/ui/style/olive-light/png/eye-closed.32.disabled.png create mode 100644 app/ui/style/olive-light/png/eye-closed.32.png create mode 100644 app/ui/style/olive-light/png/eye-closed.64.disabled.png create mode 100644 app/ui/style/olive-light/png/eye-closed.64.png create mode 100644 app/ui/style/olive-light/png/eye-opened.128.disabled.png create mode 100644 app/ui/style/olive-light/png/eye-opened.128.png create mode 100644 app/ui/style/olive-light/png/eye-opened.16.disabled.png create mode 100644 app/ui/style/olive-light/png/eye-opened.16.png create mode 100644 app/ui/style/olive-light/png/eye-opened.32.disabled.png create mode 100644 app/ui/style/olive-light/png/eye-opened.32.png create mode 100644 app/ui/style/olive-light/png/eye-opened.64.disabled.png create mode 100644 app/ui/style/olive-light/png/eye-opened.64.png create mode 100644 app/ui/style/olive-light/png/lock-closed.128.disabled.png create mode 100644 app/ui/style/olive-light/png/lock-closed.128.png create mode 100644 app/ui/style/olive-light/png/lock-closed.16.disabled.png create mode 100644 app/ui/style/olive-light/png/lock-closed.16.png create mode 100644 app/ui/style/olive-light/png/lock-closed.32.disabled.png create mode 100644 app/ui/style/olive-light/png/lock-closed.32.png create mode 100644 app/ui/style/olive-light/png/lock-closed.64.disabled.png create mode 100644 app/ui/style/olive-light/png/lock-closed.64.png create mode 100644 app/ui/style/olive-light/png/lock-opened.128.disabled.png create mode 100644 app/ui/style/olive-light/png/lock-opened.128.png create mode 100644 app/ui/style/olive-light/png/lock-opened.16.disabled.png create mode 100644 app/ui/style/olive-light/png/lock-opened.16.png create mode 100644 app/ui/style/olive-light/png/lock-opened.32.disabled.png create mode 100644 app/ui/style/olive-light/png/lock-opened.32.png create mode 100644 app/ui/style/olive-light/png/lock-opened.64.disabled.png create mode 100644 app/ui/style/olive-light/png/lock-opened.64.png diff --git a/app/ui/style/olive-light/png/eye-closed.128.disabled.png b/app/ui/style/olive-light/png/eye-closed.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..decf3759095a16c88aedabe5c4d9625fe2b1f0d7 GIT binary patch literal 1771 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/eye-closed.16.disabled.png b/app/ui/style/olive-light/png/eye-closed.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..844864723f74a421979ea2c3eb57d2fb8febe9cd GIT binary patch literal 541 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGmJw0qyuEC(I#8&`)5S4FSlYUvgKDl}0$I>5F-AD2^uCl6R)F_I1amBYL!?9$3>&~7Pr?gM( z-e|ZRdP`(kYX@0Ff!6LFxEA)2r)9SGB&p|u+%m% zure^vti2VAq9HdwB{QuOw}uFXq?bSqk{}y`^V3So6N^$A%FE03GV`*FlM@S4_413- zXTP(N0xB|wC@L*VPG!g_DJihh*H6yR&CSm%)+^7<&dg0s$xH+(*9Y~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesQrVdi(`mI@7oFcz1j*y+U9>2o?Z~JM)9*c*P|F-UEZzV?>a_b zxOB(W<7lP+FKa$fK#b7Mb$R)Nk7$@`!8J(vIU+1q2%6NB@g*Y5nc zNW*Nijx~e9wOc0&=lo8T@Ox(VVpkrc&f2XLXPU5nW0*N{`pMM{ez&*1cNC~$NZ-b8qw6t1i~K#c}upTZBaNx>vjO!i9mxuJu9(UWMWY0d`6ceeUB@atXi%l z#B@D0^lt6i%}TzPV+D6I^o3qsbKNC{MXurYs#Wu@z5nSZbKH8}>vznzCx5y1{crMR g6Mf^lFV}ytEO2*atSD+^0{Wf7)78&qol`;+075>wD*ylh literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/eye-closed.32.disabled.png b/app/ui/style/olive-light/png/eye-closed.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..6f34bf1fe719b9e261494e079abda291942579e0 GIT binary patch literal 698 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yjBcjTAd)Z=j1_nk=PZ!4!kK=DA#`+&}5O6)8 z*B$XQ<8*V=BHeAB|NsBj2u)@%ofwwc5mZ*w(9q>2Ut{>t=G`4@>tgn@H#a`2M=&Iw zeqR}8rJ2utyY9i+%bFP-t6eSyIEGK(Dj%&i!74C@m3LVy+sXGnH`$tZK55YVqJyn{*~k^vv6Tj(fwKMXRzZR%vo?y}14F?@)#L{|bEkrJ|K;HcndovfX9>HD~|Q zjJoMdntB2!O)M(O%u@&|EzZs_+kX1YOrX3fNIoU8B-JXpC>2OC7#SED=^7a88d-!G z8CV&cTNzkt8yHv_7--hs0vU+Vkei>9nO2EgLxe)oOP~fxkPX54X(i=}MX3zs<>h*r zdD+Fui3O>8`9VJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^Mz9Z5t%R9J=Wluc{Y zP!xvWliV>PWpX2ol=*-#6J{e+#f6KCh@$lmxN;--2VDEHba0{mfQoeGj}Si=rJ##0 ziZbG2CdncU$Y4w=*p_5++}xBXV;yv)n>?$W_nw^hJs}BDQc_Y5t;cIRmh0He`phnYXB(n!?K)!XiQmH&b;r*Bcx)9N1hG|eXfuH_mL-FIF0-F^T7h@z-(n&tu#ol#OZNs{x`YIQS??Pmei{;|(UYa(b-EQB=vg{7jm!WQ+F!Kh0b!Pq`ga{^+$ul_eiTn{F$^g6t@XYhP^#gln8K{CRGV>)OS|Xy8%zPYxsg7eJ3Yodj%NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$g4WkggtZ!cS{4%AfS>EalYaqsQ4+rf_vM2_vB z91_9BB`U(cBuwmB>9_y?gUgPwKYf(yE*aLv5w&1W?FT2XiQSi`-~AIeYqH7Dee=}P znKDeIdfgUZ1X5@J^ZCwR+Hz)+%Jyr$e(yANjovK2Tfrw;5Mwux9^{A}*n$*Oxu&i^Pl0(t&zjiwX*y4Tpuy8nxYFh00>)6INwN$KP0zmUwVV3n!p6BBPWz@j z*d$ct$egPh>=ZJ$H{bcT!KyXSw#gbi*!m(;(&xbv1#`{$(;u;GS1wIo|MgPU)R!O6 zDLK)sL2m`m zw*9^qCUo~@wA+E_(@re=9h*P%KvLhOPcE883_rFN8uzC0wFMuWCnbDA%5=T@eBp8y z(Lj!W?pfFMuT-S1-nnk7!v_I1SF^{v{j*n3p6o1o&F6V-fZY^EhLW7mjw`-<-chmI zA9m)5zu|@*9Ra2fZ>Oy|b!iXl9Og}yHb!pjZ{6|}7pkR8TfR{$>FB(;=Kk542KBP( z>`xzDtDJA}(C+(DWnM$I`|`|}5;&WaJqjmHve`eO`q83mvv=QfpFe5(vfjUEMVPYq zrOM@HGNMd2&Uq%J{?YW;qpXXn{nO5FzkDg}^W;bVHFx*KPns(_ZDDfvca6>G-Yd9G zk1{R)c{WLunW5pm;Wjm~+|QG4Gx_c~K6mZ!&!YLE+R_#0-6r|Y5OMF>?vTP@!*-d& z`J2H4$G!3wYrQ~8WLEvO{qx**KHNL;aTzc{ij=rUlsJ}_WaJky_$C&WWacRZl@@2` zmu)|NW+qTx6(paMSdwa$T$Bo=7>o>zjC2i*b&V`Sj0~)d&8-Y9wG9lc3=A}DZ-Fup zLPKtTN@iLmZVeF%NiTsKBtbR==ckpFCl;kLl$V$5W#(lUCnpx9>g5-u&wghk1yp1V zQB+!#oXU_ont`Fkrha~2u=f`Iz=jX-E*O&m* O&fw|l=d#Wzp$P!L)S{pO literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/eye-closed.64.png b/app/ui/style/olive-light/png/eye-closed.64.png new file mode 100644 index 0000000000000000000000000000000000000000..58a0c9d119d5482e7634af4e31c192963f8c5fa8 GIT binary patch literal 1298 zcmV+t1?~EYP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H102FjZ zSad;kbZBpK08L?XbZKrNQgw4{Z+5rK%$WcH05fz&Saefwb#h~60BCe{a5^t9V{dJ3 zZ*FrgcWG;BZDnL>VJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^M#KuJVFRCt{2m|bXF zWf;f*&-=Drb4HVr)$gD#aa!zcZ)>4|ZEG4$--;1u2q&ZpIq_yJvyF1UYTrRh?J?XZWXf*0{b#+|=u%|{fwY0SK_{_}AwRM52)H;sy z3^o=I0DH97z3oqRdvF}54;zaIfSBVrPge?5jlof$m{Zwo_Rn@Cw-cn(>1hBtA9YoY zwGBx4IK2g+++tokNg2RtA6-?AwGCMHaq9Mw?^={nx+%Mw>)-1ciO4JQczmGctagZ4 zES4hqrjI&Xc~RSdv3edP9i`NJ#+Y3{2;=d1xTB-vEJ?@5q^icM29!#rk441uaZCX? z7mY^!0{`noB9XmHsdFS#_4Fd*mP(~hDrHsQ$>QSTaxfU25RoSVbkvD)tJeBJBoete zH#hfJ`%-V6!NI|x*7^eg2YgIQBv0gWx#>#bhCxv%6lVMS`U)f;@(I*mE|(AY^z@7` zEG#Uxn0H&~@9)12zy$#N{cMy{uX>*MeXYFiq@16hzZ?#SdjQ2)Ylrzih{%}hx-SA?J$=KqGM~@?5DtfL2QcUtAHc9uYNWTfw~){0uln7njc8-c zQ2_4%co+>HqKJIuy6#E%?{6Bu0qdw_GC4}}L=(1YrPRBDK;YZS$;q}3$)Ta4u41wH zD9PuswjwozjK|~mYpq`*c~`5kHpx|zZ)daF zuhGKF)2>%oC6mb`B#(*6gN@eZR=7UkeiV^UGnvddZZP4SirIQv)ud9XTSz{#y1IHq zMDA^HDr<`CLv(`Vcb%P`7t`tVY`by=wxIzv=wvcEO!7_ucZf(ofPExy2GA)YK>#4R z0AN`}W&!*`atgq2B67ub-AVkn{zh3W7K_DVu~;k?i)GjIH~lDOmr2c*fB*mh07*qo IM6N<$g8lDaoB#j- literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/eye-opened.128.disabled.png b/app/ui/style/olive-light/png/eye-opened.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..2edaf1af1c144e1815377a65e6b052542871ea7a GIT binary patch literal 2684 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/eye-opened.128.png b/app/ui/style/olive-light/png/eye-opened.128.png new file mode 100644 index 0000000000000000000000000000000000000000..ea511c3cdae6a45236381f0ce7daaac8d8b4578a GIT binary patch literal 4071 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 D605gZ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/eye-opened.16.disabled.png b/app/ui/style/olive-light/png/eye-opened.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..b889d4f4e6dab98b782afdbb5b8908faafccc755 GIT binary patch literal 612 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGmJw0qyuEC(I#B4cr;B5V#`(SdhW>{QBwX%` z@BZd6dBO@F(JcX?Ne}=3pY0)P*um)1^lG8njWh2IX=5TYl z-B($8!E?5roP@9a+LbEZw{2^-#-4pT=klM*U>)V}*7YXkiRr~U0&4Z*KkWB1Pd)Fa z_;&H_2%z^wN?apK97{_w@{1UJ6N^eR^Av(gi?j2~wx2#T6DY3=l21u2NwrEYN(E93 zMg~Skx(3F&MiwDP23E%ARtA>Z1_o9J2AZ|ELQyp2=BH$)RpQnVp^)?vs6i5BLvVgt zNqJ&XDnogBxn5>oc5!lIL8@MUQTpt6Hc~)E#t=oNMaiiQ86_nJR{HwM`MJ6IdBu9= rnc11SsVSL>Am#cXo_~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq}8a)5S5wqW9`V!*1a~k=Fg6)1HO8&Goz9lH!rA$S8PLOzfN3 zqWuZmHwrm^6z`aQ=-jcS{|()1r*`*F-Ehz@rAI$4arMh-XP=ziJd;zi>BhU2a`Mk* z-|ZCF+q;GL+wZ@9-|HCeFia?sa=mym#c1Y#;{~_h@~P})ddK834+|}2wb*=Z-{*VF4=5*}nQY>FzI&0xdi4{Va`an1 zEIU_JC}SVJHf;VY1BUdqwYy^U`lZr(Dy`@G@h|pUzB#$)C&!Fk@5SH$4fX6dzZLuW z-v3D@jCa=EYz|xf^=8i9H6efbnGMeEWHrcg;7F7>{xSSO?vFZk&mtKoi98lLi|1m3 z4uK+%ftIS?WnUK_IyEXgzT$oHgBwxSTBkpm7Whw^UNYhN&xci=y;Xbf$$Fk|Y*%bK zdQ7r?QdvX(fp(ko_3PAcUR!-P@4nZh6oxx%E@nnfQ~&()&v~=|s@LNaG+LEcMiw0e PMjwNxtDnm{r-UW|j^F+9 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/eye-opened.32.disabled.png b/app/ui/style/olive-light/png/eye-opened.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..13b60e7789591cb5c6336955f7cbd53cdd6e6d0d GIT binary patch literal 871 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yjBcjUXwEojv1_s7!o-U3d9>?DX$L8O15SX*q z*zkTqrl>_518LG zgt+m&U-C%pdSD}qz{SqmhsV#o`618b?8=-~Sh?1B&xSko91^BxJ7%)@ZRwel!QV0K z&7$K|Tkc;h`L#PF;m-5rr{`WfSRxslY#V9*!*1sh6Z7e;jUOlc*4$|p&)|HNIg4RW z^6jFAkK03-Qf6QKsp36vev`aizkDT&EK8H${3!+I@q0cnDtTs=Eq%R|X)(J^+-=eB z_<0K}rpyjqExd=tYe8-5m6Kl?8GTB4Ht(Fse55&=-$lNoi0?zeB4(zJ_m__`F#KkA z=xyreeX!wtcH1kRfV3(`o(IL8`V40s=PX@ibzt{xmrsqkrtU{)F>^fl%Amb`CBwFS z)<>)gyDd-Ne63h`@T;|y>17As_`R%N3#Oi|+Z=Y@XjaOytuu6kq#4f#OX&%HTK8(* zU0-zp(NzMMr=?%x%J8?4)xEj7vS^o>Vb#aWOPSWbzWjb>Xx+5qXSBM1ZrO2);loz3 ze#^``PB$h>zhhjhwfn{9X)3u(e{TL`JlF8mC5E^AYts3*y%f8l9gP2NC6cYLll)3C8siE zl#~=$>FX!w=jP_;73-B}W@qN6rer39lG|=Q$@zJ4^ED;_wKI6S`njxg HN@xNAf3i@G literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/eye-opened.32.png b/app/ui/style/olive-light/png/eye-opened.32.png new file mode 100644 index 0000000000000000000000000000000000000000..78c2a7ffeec7587b3f54651f5dba968602b50fbe GIT binary patch literal 1062 zcmV+>1ljwEP)VJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^M!R7pfZR9J=Wmd|S( zWgNzz?>m$1y0w{1jYLW5?o6V4sMT66depW4xOf#rS|xh+APB(}@dwd*=|u!l;xCl^ z2@$jnloCOThqQapBs(*bKyzrB7_;ognfLLKNwu@HKPo~m`@kG#-sk&#KQFxRyf4sK zUwz$XNw3CYv3Rdx7!{Hakvt5*24DdofImd!I?1Y1YDsH-&iDPR{|i8|SgeT1Ya;R} zN!3%Rhz9Vp)_OJwf`$JC;JWU8Bxgt-ONCz(k+0)8UWnt^2LPp%V;IJh08Wv-E9L)1 zM5b%C+H%hTj^msnIR#)a6*gb5*QYi%Hny|sMn^~Y6$*uqNIsVuYKq8*p67kr4L}^n zIZg8A7Nf|#=XtLKpzFFPwAPa%as&WKE|HuKg5Z3T@o@$OMC2>a^JcKSZU6vAYUa}< zU&$!ER;c z0YCx3#Kgow0MqSK<2YUb0Il_8hvs{*lS$3_b{>*%Cp~uowARl6$hRwKG#bAHfQUTM z4FJFq0BAOwK?hGhilV3g4ZsfOTM|hEz{to*w|@+80GOuv1As<5XFi`ll!RaI1|TAr z0bpxu>re+UtgHceznxntRY?G5y8&pezW@NkFrMlF`EJtlpIs1!Vb!v% zJ4NK-jDq`fx!m0P`ucCSZ4UrA-X{B#APDBl$)##t=|HWO9gyiC={lu)#{&Fb>(t-|IW_N8IsSYhMG#L4{EjAcP&s^ zK>#p5K0cwfo+0^23gS9|Z{j#!h@!{?0Mj%b!!Rn?J&f#B)Fs0(POq-6u4MJ;dK{NZ zr6)w>RRE9O;&J>FfLYJ;E_C$v5}1J8L$V?w4~ocPk_WJRApwBRy$cD+C8g9k&+|5V g&F-tOzHY1j1{b_!XR1?QC;$Ke07*qoM6N<$g6@ReZ~y=R literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/eye-opened.64.disabled.png b/app/ui/style/olive-light/png/eye-opened.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..81136b3d9940a07543a89e4018be859f6f4a2070 GIT binary patch literal 1431 zcmZ`(dpHw%82-)7tq^fg3%N}$+YG5unI_i}mK;54Gh=hvW;V;^amG2Na$7hmmyv^z zV$M8qQaFyJ;<)6JyO7I4DVI1Noq5h*=a2Kp_kGX%z3=uU*02WCA zVDAE;!OH*5%T7W_1-d!m0jNyV$4HPo%lZ2#0F+wy3ewIj50WfpIW7c8*$+^-nxTS2 z_2&Xfpo|M1N2HA}`;D;QpF42M9D*U)|2{ZY3mY0AF3C(LZpm)+eSuaqmU!n?{n)$_ z8-YqOKx;&L%_Sx}2A|{qT49Hulc#sB<*)R(^PmRK0$p5^^fz92^crtw=Jo@#{hHaq zNlGNwqZt+s{L|b0BKJ8Vq-Q= zt>n9vg1_eG-rwW%-ZoCwzHII`-24`kV=jXd>{0KDS!Aws|}NcP*(R<}~=K zZ<<_{on_f4++2@b2z+#;M>L8|WNNfrL@9&n(1E4)8Q+eRSldjw^4THZ&dKqm(JQLi z`LHK!7r?SCdVcGm?^0W-p>*TGs>~~^vw?%7wL5*cnrSyRYaY%B5?1{)`j z31`EWKLc?CKRvhA_5~RaHYlwo-lnr6`RKN)NVBjrCL~0?mTM%>rTym4{cY;=Ilfpq~|;0e5cyT zt~9L~PEi(hFE%NINh>$RtM$CW6hGux!n$m{w>ux1YCUX{E{MITQMT@5xNv{#)B4d& z#Zwc*iDId;s)aax@CjRHgt7tgp*PfmG^{QRd>v)w=oI!tg&|aRx|kTgbzkt#DWOzP zGnDIeH9B)(!ojyUaX2k@t<#k--;i^<$z9*sYpT&YrO9Szp=UYF9gnq8>}YQf{W92+ zdex=nQVe|S`Bc@hj^J|btj_q-pZjk%u{36B-;FJ zZT->*q}6XPu@P`jC%&+! zmuTSDgWC|_sS8di%HjNdCd^|lKetUbh|w>!jE}8~nX=;V+UWp~i9a zJF{}plB6e^%`I4mp*MPWunFd0!u9zBd6K@Fml_vENOgd&m|A5~ RXe^M}fs3OD{;>lo=^upuYjXeq literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/eye-opened.64.png b/app/ui/style/olive-light/png/eye-opened.64.png new file mode 100644 index 0000000000000000000000000000000000000000..bb285b7cfe8e7eeed8c1c27ccadbf0daedc8c799 GIT binary patch literal 1995 zcmV;+2Q>JJP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H102FjZ zSad;kbZBpK08L?XbZKrNQgw4{Z+5rK%$WcH05fz&Saefwb#h~60BCe{a5^t9V{dJ3 zZ*FrgcWG;BZDnL>VJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^M%`AI}URCt{2np6MrU3N3|@K%!uWJ`|gf zrmf@RKD3miH-c#?P5R(CmD-r*LW?bosU2e~X=YckCC4`VZH%MK?#}6hR?h5dSDG0~ zX`%Cb`)>bp=Il4~UCsgt2?+@a2?+@a2?+@a|9@~Z#Rmrmn_So31z;!19RRukY$w?% zB256=DqY_rSrm~g0A>M912_-hoNe1@jvqf>+AJS8JOGa4+zen?M21LaMC7CE(IYu0 zA}5tnVCnw+CAXk_4H%Ld>w!Is`S4iG1B5H$lt03u%$QvY&xUM?}z+boKddK(n z_I_R|^{9yKT(2_`nGlgf*=+V00EsISI{=R3+ymfo5xF&#AyP!-EXgquIpO>MW#9K_ zDs5ecVRVwb6Tpy&^oR9>PEAd{5$8D~2cW;d|EBBLukQo!Kqv#G0C>gs{e#(T z)(tbpvaCMCFdhSNuZV>8@egxzbNeq{x^z8c|0VyTbhd5#E|SlP$R|S%$&q~2b=}iZ z>;&u$0C)~dt4A2#0Wjiu-ao_IFd{g!hvZL0q&?)2lf`0jPcD}W^{dxIYdve4=1U}Z z0q6-aq>beLrfDu}t;fUI2r~l=$8q+G$U|WS0f6K`dV72K)UMx|Or|-X&+qnqe~4s1 zfbEs084)=vBBPz1oulL9SFc|EHGn%K`0#@3x=&+`m15NZ3=R%9WwY5sB64q7 z!vJys?)N-T2Pj09+T-SXBK)F$$)m{OT zd{#v6i(pVlKJ0m3HfY1P?I!^|1t84p(+=Q1(=@ket=~dri7ONe^X={Jr&OaBdt4#Yi55LT}9mg3CR+LJmgE4fz z(bw1a^?D5}0^m5#4iOoNYC%NK1lRdYCesYyiKsetboW)X007g|(~~6Mj;iDP{yxjH zR&3g;0?^gfwFSV>0JKImK=QA_az3Bm4Zw=3Q-|&=SFQ{ND@3H>JG}}YF%08S4|1Y6EbhQQy@N5vQf4rRuv@`wDzHj&Mc1>X=IM zwzyh#*i~ce(mJ%h6fD#RAoi3k7K^n`ZHuc_hff3xrBZ2j9a_D?LTvzIA1lk{@}}J` ziAdFME|p4c*nLB-P%f@eYin!mFTS2>S_R1}t!vk=t!H)xH)$&Z@N!&Lk~as-B623K zRvoIeYHdY<-0wQj$m0tM&szzqgJcdR#-^7^YimZf^}5^xOnm6 z`vATNU_OR^)l%g+&REF>zh@yi)4v7zS>& zEURz1P&o?!FosSQN~r_E<8e<Utu}*8P-!e_J6+kA6#{hoedESo^Seh-%$|$8q5bY}OkDlj!zft3=S7KW0 zzok;CPa*vAlK}2+YioPCP$(>aN2C(Wb6DEZnQLfdl~PZ-uKQaA9=^M~yTdSy=MnBs zVaXZtsONc4V3k{;weAE(Yke%0O5FtD(;@A)ksL^;(|?|snYm$DYdtkEFz{kNpFgjZ zDw1p_*-ElVGDq@t0Ecbc{=unJrzV1enM|g6VPWByh%g&P^X{@(JWH~kVZn<2Z0RY1=wkxH!k-UTC zaKv@~j8f`HA6jax7R$0eYZ%5z*c{;o@^2CO>3=ObT7z;NXGlaIBzey!rpLO7sqX*) literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/lock-closed.128.disabled.png b/app/ui/style/olive-light/png/lock-closed.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..e1f96bbbfe35bddb43abaa8ebc8a3d39275ef8e3 GIT binary patch literal 1524 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 II;Vst0E+XYW&i*H literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/lock-closed.32.disabled.png b/app/ui/style/olive-light/png/lock-closed.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..da0ce7f049a67c98a46b81b0b17055434ce3ef69 GIT binary patch literal 674 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yjBcjUXwEojv1_nk!PZ!4!kK=DAd;1?Y5NJui zn;^<1)L+EV>8|PI^jG-r|8hN!i5I$@GWkV0SeB(&98ozK=CQco%(H~_vOk&ECN(b0 znl7@P?N#n%sQ~%c>%$9O9pdX{PuWd1JvxW=yZL-==5yOB4jwSnd;06!(eK-8UhYty z{-yNj-nq|PKc<9Bc)hmi%}dcMHe9*g{)-U%x`OMexATraWae=2<1b)g$m!oTW2(x7 zb$5LhbI$O%=rV6ko*~2Bl+NXqg+DVGrI#{nbnd$H+Oe`or#L-d zF-BIAE%EM?%v$Dl&2W`3-I1Sx;U!Yy8d2g{T9T1p#NeA)RFave5L8;6onN;7^qHAJ zc~y{nN@7W>RdP`(kYX@0Ff!6LFxEA)2r)9SGB&p|G|)CMure?x@SiV%q9HdwB{QuO zw+2Qb^(8VJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^MypGibPR9J=Wl)Z1$ zP!z?_u`NW{sv>ARBxy2LSyFQa*dOhPhjwo-f-_b_uSv}V4zf~e=N>3)M~XJMN#xZ(iQ+Xj`O=xsdT#C z?(Iqen$703IF1iU?n-*{Ac%}4efK=?q}S_REghiIXuOnkDrs$EAbCylpx^KRS{gvL zT5Y+m`&Ck98b5#=l6yfAbZkb)X7GLAb6xj1zntVb$sg%C&y76>aOC^GXUn%527|#{ zN!z*hQ4j=Y0OGWE>-G9RfWv!(r0p;a-vIbFDc|}9B)!hHJ{w~`W|jj$Y>fFp@{475 zb^ri7*&<1jPveZE(dfaQq@8izsR2l?XX`Kw2jjfM;n3t}pDqj_$<4LmLSw;Q!R+h+ ztJWX?fm*HhisX9$&(l^OGO=V9`bl0&Y8zvIPBO!BoOhY!_W{{sQ=wndM*6Ucw2-th z#ge%sY10buw^ag^03|>P@c#jjyj;~Xk{4D0N$piYq|4jO&Rtk{_VJtIUE>lu00000 LNkvXXu0mjfb5j-N literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/lock-closed.64.disabled.png b/app/ui/style/olive-light/png/lock-closed.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..c19c807a2eed748de6d2692659261d65f9ccffad GIT binary patch literal 924 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$g4WkgiDoYsGu3)IBz>EalYaqsQSSpP>360PU0 zFKl|+QR3WvMa7O+nDd$*8isRi z*zRV1N5kOEh5kG(rW=Ci7}?n-K7RhWE^k(pvFSUrInH^Kk$a<#_fLKk%V?JMPH|RR z90T9h>u$-5;{@Cque>>AtjEs~cgs{dZn4~r`;U6Vr?NNbJC;@Ff4Kc++Fq-=6$_>$ z&G9#2f6yhyv`(8h_)lL@Y*lPJL&of-pIBmc{=NMFa?X{vskd*WSpJsQD}8xO@rUQf zgQsUYJ^1|M{0rBug>vd|B|W>R?D_HPEW@GarJCF1dBrUsALqL;N$S3;vF|=Uh4&s$ zmp@FHX)ckVwbS~7$9|rrSI-}g_b&gPyeym3VRyw=h9@4plbm+{S^N8&+ytd%t^9Y7 zM;5*oV$iW}61|BWwuajwSu&y$+N4SQK7}SQ>NK!!U=TaN z6v4m^;xIY1g|AUvx@7h7Po7i1dhU!5WcVbvWqSA0)5~iV>zD1(P+4g&#Jl6YowZTd zPaUnV>rXwu7XKh-!k;-SU&R1Zib#oTM2TZ*Nk)DVgKuI{NoJlxP-$^?e%bcZXJ!KB zRYCG8i6yC4$wjF^iowXh$Vk_~Sl7rR#K^$P*xbs{K-<8;%D|w&f4&5YhTQy=%(P0} z8W@GtmjE?Lf@}!RPb(=;EJ|f4FE7{2%*!rLPAo{(%P&fw{mw=TsK^+isI(|Kl_8^~ zq`*pFKRG`)H$SgfuRJq5GdDFQGZCa*AH>rSNz6;nkIzib&x@O{F#)KZ!PC{xWt~$( F69DDVXsiGL literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/lock-closed.64.png b/app/ui/style/olive-light/png/lock-closed.64.png new file mode 100644 index 0000000000000000000000000000000000000000..3a6c19f593739ccdf6f0de30bc8e26ae6ed35b56 GIT binary patch literal 1095 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 abJii{ENu=GK}%J=Sm2Kd@NMxvbN+9AVz|Em literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/lock-opened.16.disabled.png b/app/ui/style/olive-light/png/lock-opened.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..0c5a0016f1e4cb7b0b2003db07692c22f9748b6e GIT binary patch literal 565 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlGmJw0qHeGRu8z{8I)5S4FLn2>uXp3)tFVlq z3y%J~v=mnTPME%OYR?bZx6F#+GE!%&OFT=hxmDyMUY`~GQ)VRA@4PCy(wR3(v7y*& z`Syl6s$6k@%67$zV>#-3Lbx{@HpkqxpC6(fdqUUnV^Y^e(io?PZ*I z$xd_Y~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesQtI6i(`mI@7+oJy^bUZ9I5{uD-hIb(=fqa>{`2+U3>4*#;sv; z;lD)8>{|BrUNdXgY*uK@Db$~EX>v-go=|b;oy6xMhu^$0IQ^Yd+2it;4eMTOHaxG4 z3=~jMiK#Pv8C;f_ZLSX8`?^}aR?%}(vGHzJsRx1;?0pTJ6*$5|L-&^c zT_=CRZ+HOWY=%-#J@t z&R>_Vy70ZacA?Jc(~V(^C9D$lYwVL{j`OFP-7S0{8meDsawA#t!4lPayNB~x*SN>t p{*mGNT{*V<#7n)~Y1?vsir3EZVp}d&eh(N744$rjF6*2UngD7;xH|v< literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/lock-opened.32.disabled.png b/app/ui/style/olive-light/png/lock-opened.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..8cb05af38922f7e5182089b36be12053618916d7 GIT binary patch literal 669 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yjBcjS}y5bNw0|O(Er;B5V$MLt5{rwL)2pqky zy{qg0t!6Vr!$`wdN8kSsv^lUeK)IzQ;WcaQn#T)ycSIk_t$J`MrtEU%`|IYDbuMiB z5$>!Vr_{ofFyVAg$}ENz`4zce_Zdp=b9!~@oZ9cV%*pJ&F)r#i?{F_LU2pd6m7C+V z|J*y?KU(+4nm1_KoTP)7gN|?h{PXwpwe|&!t~#kd&L4h$P>A8f#~*3)3RpOrC6uG( zcQA0S_Kv#A$TMwH*lLd0T3(0HdED8z9^ZMF=N*un8ujPjE&Vs|#2hZK(w+EtTEmm2 zk_*0a>}Fpxucz-u^CuHY&$gM96+UcZUUXx1ufn~u=)J#H-!WDn?EJFrr_am;%BzCp zQxZ#3t&)pUffR$0fsv7}fw8WUMTn7sm9e>%p`o^cft7*5HH#^0P&DM`r(~v8;?}S{ zRYw4*K@wy`aDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$Qb0w<5Jja$$*Bw(B_#z` z`ufTFxw-jy#d_tL*_pYiDVd2N<@z9=en?_odVYLna(-Uie2ob}?F^o-elF{r5}E+k C<@kdD literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/lock-opened.32.png b/app/ui/style/olive-light/png/lock-opened.32.png new file mode 100644 index 0000000000000000000000000000000000000000..992796261276536aaa349a7c198bd14a1a08953b GIT binary patch literal 619 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?5GL=a}2dU(e+prB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq`+Rr;B4qMC;q>`@Ii4$Q-@zy+$N<*Ube5uHOII+O0ZfPgYn| z-!Pfu+@(OluEk0n|C^d8N3(Bi{_n(mNn7@oQ+t!gMw6P@t|j)uxlS@gw{7q3{eJT9 zL;;0I2k+|zctxswXL!Q6guO`EA<|`D*48Lx9fn}dQnybM2Of!>7jIx+`<0hL-Gjk+ z^2s}lH$J}9&s^*O$6-d@r71zrRle6wV?I!&H8tv0iB+op;^%xRn{VYzn>YgVz>K`x3cU0u*aI92(acAdobJmXTkiMCBU4e1T;OXk;vd$@?2>_FM B|G5AF literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/lock-opened.64.disabled.png b/app/ui/style/olive-light/png/lock-opened.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..c455dbb0a4054f96d36e0f3a04deb3e34757158b GIT binary patch literal 934 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$g4WkgiDO;;S^25J)Zba4#Hxc7GES-;y3BCY4= z9`T#&IwwNp7L!p&j)2oEjob+*&p*=Ky*uWgXoIog?WNoA#3Y&?&NX;dxRk-& zy5vAF(?O=@7u%E?m>2Wp(Kvi<4$t8^VkIFPdCt zDp;}Cc%H=8CIh1-Y2xz=D;YjqS{M0UYU_cI)%Sic{>1P>?Zi7do_W6dma85w=JL{1 z`zhkhur5RK!LCU&9(hlBb?3Deqr-2Vsp=1I$=3X~J#*}C-M0R6o$C4nQ_scTW}UBL zS7{llmx1o3d+|G0RK#cm(&5E-$A*9^C|I(*s2^TB!dytU%d@0qw079Ehu9V`Th}MyVR8)G@3;;u`yI!1 zwD$Gp156PNAY&R>H!z5SIIImk|G!S*IU0L+n*ZuG{-@gGSQXwc-n8Cn%BQ6@zLpv) zEA7R2cSy_2N*?`VtM#?|`~AN7FKH8Zi_VNV3QRL1C9V-Aj-@3T`9%!AiA5!uc?v5D?>wV0|P4qgKHL3 z)}Uy}%}>cptHiBgd8&>8P=h4MhT#0PlJdl&REF~Ma=pyF?Be9af>gcyqV(DCY@~pS zj3J6ji;`0rGD=Dctn~Gh^K*0a^NRJ#GqW>uQ&Tb%LCW<(JpGWwy!8C|%;fyMxcM3r QfZ7>6UHx3vIVCg!09LhX!vFvP literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/lock-opened.64.png b/app/ui/style/olive-light/png/lock-opened.64.png new file mode 100644 index 0000000000000000000000000000000000000000..bea866a6e74cad4f50ec3b8c8d7b445b4db8bebe GIT binary patch literal 1117 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq}W()5S5QV$R#yjv2w8GROAk`yATVwUOWCTJ8yLvBb9*o0T|3 zZ7U)I#8?Ey^p!d`JUD2(rku4p;_l>oEROt-99hcwl~|W52z^tDTJbj9JgmF@+1h1d zm(JX878HFo`}!Ww<*M(?&;0rMY_|T)nJGs69xrotOqwg&eKhxGPTBrzRn{k&8qS_w zwq40+^^~fc876XmzP@|oH2rh=6AB6p!dGAIoBYSsrR92N#d+`oFYRQdql>|OC6jV7Ozk(HPK ze}CG7O{y#jvE}98=V#o1z?ks+(W6JA46k!Iql90*e{Zj;wExzn?gdXO@9o~Xb7y^S zN90VVeed&`J_sCeOKwjQJzyX8I*=iMmVSPy*IU*C4;QneFN|0U6gZl)R?oAa?5V}T zpmM&$5Z;qVqVpaxc;xkEg?rihDf~Zi zVV`QF8H4rw2B(n6hYlTD9oG8%`E%{INo&_;)vFaUC|#1hYG-V0e1FxqH*a!uJ%I-Q z46X2;#P;A;L$;M&!;$^0Q-XHqNEEt0Vo+04bCPz8x%e?yf%m{x#_LNMcbGkxWx{Zs zEk^jY&xR1KuUbpbG2c*EdVTwirl3l;lF_QIa`S+|;M#1iSWh8XDr zU#W&{=5?OT1-S=IGa1(L?odN_3Pf=aT2{D`HP{MN^*PZcwFWo7d@ zWZU-m`)91t^ayi((zNp2k39|&ZN)!p{>=+oCGMc#Fo(A}_lfOEcBLXKjwbVGpQfC9 ard*=KlXxj6_zy5wGkCiCxvX Date: Mon, 28 Mar 2022 13:39:54 -0700 Subject: [PATCH 065/114] trackviewitem: fixed bug --- app/widget/timelinewidget/trackview/trackviewitem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/widget/timelinewidget/trackview/trackviewitem.cpp b/app/widget/timelinewidget/trackview/trackviewitem.cpp index d4a41b403..2e860a2ae 100644 --- a/app/widget/timelinewidget/trackview/trackviewitem.cpp +++ b/app/widget/timelinewidget/trackview/trackviewitem.cpp @@ -68,7 +68,7 @@ TrackViewItem::TrackViewItem(Track* track, QWidget *parent) : layout->addWidget(solo_button_);*/ lock_button_ = CreateMSLButton(Qt::gray); - lock_button_->setCheckable(track->IsLocked()); + lock_button_->setChecked(track->IsLocked()); UpdateLockButton(track->IsLocked()); connect(lock_button_, &QPushButton::toggled, track_, &Track::SetLocked); connect(lock_button_, &QPushButton::toggled, this, &TrackViewItem::UpdateLockButton); From 102b782215f2d9cabbdbd8266e334264bbda7d2a Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Wed, 30 Mar 2022 10:13:45 -0700 Subject: [PATCH 066/114] viewertexteditor: improved UI --- app/widget/viewer/viewerdisplay.cpp | 2 +- app/widget/viewer/viewertexteditor.cpp | 30 ++++++++++++++++++-------- app/widget/viewer/viewertexteditor.h | 4 ++++ 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/app/widget/viewer/viewerdisplay.cpp b/app/widget/viewer/viewerdisplay.cpp index a0087bc8c..0721ca4bb 100644 --- a/app/widget/viewer/viewerdisplay.cpp +++ b/app/widget/viewer/viewerdisplay.cpp @@ -344,7 +344,7 @@ void ViewerDisplayWidget::mouseDoubleClickEvent(QMouseEvent *event) text_edit->setGeometry(transformed_geom.toRect()); ViewerTextEditorToolBar *toolbar = new ViewerTextEditorToolBar(this); - toolbar->setWindowFlags(Qt::FramelessWindowHint | Qt::Window | Qt::WindowStaysOnTopHint); + toolbar->setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint); toolbar->resize(toolbar->sizeHint()); QPoint pos = mapToGlobal(QPoint(transformed_geom.x(), transformed_geom.y() - toolbar->height())); diff --git a/app/widget/viewer/viewertexteditor.cpp b/app/widget/viewer/viewertexteditor.cpp index 74fd53116..48d253d7d 100644 --- a/app/widget/viewer/viewertexteditor.cpp +++ b/app/widget/viewer/viewertexteditor.cpp @@ -36,7 +36,8 @@ namespace olive { ViewerTextEditor::ViewerTextEditor(double scale, QWidget *parent) : super(parent), - transparent_clone_(nullptr) + transparent_clone_(nullptr), + block_update_toolbar_signal_(false) { // Ensure default text color is white QPalette p = palette(); @@ -198,8 +199,10 @@ void ViewerTextEditor::FocusChanged(QWidget *old, QWidget *now) void ViewerTextEditor::FormatChanged(const QTextCharFormat &f) { - foreach (ViewerTextEditorToolBar *toolbar, toolbars_) { - UpdateToolBar(toolbar, f, textCursor().blockFormat(), this->alignment()); + if (!block_update_toolbar_signal_) { + foreach (ViewerTextEditorToolBar *toolbar, toolbars_) { + UpdateToolBar(toolbar, f, textCursor().blockFormat(), this->alignment()); + } } } @@ -210,42 +213,51 @@ void ViewerTextEditor::SetFamily(const QString &s) #if QT_VERSION >= QT_VERSION_CHECK(5, 13, 0) f.setFontFamilies({s}); #endif - mergeCurrentCharFormat(f); + MergeCharFormat(f); } void ViewerTextEditor::SetStyle(const QString &s) { QTextCharFormat f; f.setFontStyleName(s); - mergeCurrentCharFormat(f); + MergeCharFormat(f); } void ViewerTextEditor::SetFontStrikethrough(bool e) { QTextCharFormat f; f.setFontStrikeOut(e); - mergeCurrentCharFormat(f); + MergeCharFormat(f); } void ViewerTextEditor::SetSmallCaps(bool e) { QTextCharFormat f; f.setFontCapitalization(e ? QFont::SmallCaps : QFont::MixedCase); - mergeCurrentCharFormat(f); + MergeCharFormat(f); } void ViewerTextEditor::SetFontStretch(int i) { QTextCharFormat f; f.setFontStretch(i); - mergeCurrentCharFormat(f); + MergeCharFormat(f); } void ViewerTextEditor::SetFontKerning(qreal i) { QTextCharFormat f; f.setFontLetterSpacing(i); - mergeCurrentCharFormat(f); + MergeCharFormat(f); +} + +void ViewerTextEditor::MergeCharFormat(const QTextCharFormat &fmt) +{ + // mergeCurrentCharFormat throws a currentCharFormatChanged signal that updates the toolbar, + // this can be undesirable if the user is currently typing a font + block_update_toolbar_signal_ = true; + mergeCurrentCharFormat(fmt); + block_update_toolbar_signal_ = false; } void ViewerTextEditor::SetLineHeight(qreal i) diff --git a/app/widget/viewer/viewertexteditor.h b/app/widget/viewer/viewertexteditor.h index 12a2e3ee2..e01ced6fa 100644 --- a/app/widget/viewer/viewertexteditor.h +++ b/app/widget/viewer/viewertexteditor.h @@ -142,12 +142,16 @@ protected: private: static void UpdateToolBar(ViewerTextEditorToolBar *toolbar, const QTextCharFormat &f, const QTextBlockFormat &b, Qt::Alignment alignment); + void MergeCharFormat(const QTextCharFormat &fmt); + QVector toolbars_; QImage dpi_force_; QTextDocument *transparent_clone_; + bool block_update_toolbar_signal_; + private slots: void FocusChanged(QWidget *old, QWidget *now); From 2a74522aa67da1ce8abf1d7bc4dbce669b58b1be Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Wed, 30 Mar 2022 12:04:36 -0700 Subject: [PATCH 067/114] viewertexteditor: fixed UI issues on macOS --- app/widget/viewer/viewerdisplay.cpp | 8 +++++++- app/widget/viewer/viewertexteditor.cpp | 7 ++++++- app/widget/viewer/viewertexteditor.h | 4 ++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/widget/viewer/viewerdisplay.cpp b/app/widget/viewer/viewerdisplay.cpp index 0721ca4bb..d90dffeba 100644 --- a/app/widget/viewer/viewerdisplay.cpp +++ b/app/widget/viewer/viewerdisplay.cpp @@ -344,7 +344,7 @@ void ViewerDisplayWidget::mouseDoubleClickEvent(QMouseEvent *event) text_edit->setGeometry(transformed_geom.toRect()); ViewerTextEditorToolBar *toolbar = new ViewerTextEditorToolBar(this); - toolbar->setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint); + toolbar->setWindowFlags(Qt::Tool | Qt::FramelessWindowHint); toolbar->resize(toolbar->sizeHint()); QPoint pos = mapToGlobal(QPoint(transformed_geom.x(), transformed_geom.y() - toolbar->height())); @@ -376,6 +376,12 @@ void ViewerDisplayWidget::mouseDoubleClickEvent(QMouseEvent *event) // Start text cursor where the user clicked text_edit->setTextCursor(text_edit->cursorForPosition(text_edit_pos)); + + // HACK: On macOS, for some reason the QDockWidget receives focus before the + // ViewerTextEditor, causing the editor to close prematurely. However this only + // happens the first time the editor receives focus and not subsequent times, so + // if we get it to only listen after the first one, this solves the problem. + text_edit->SetListenToFocusEvents(true); }); break; } diff --git a/app/widget/viewer/viewertexteditor.cpp b/app/widget/viewer/viewertexteditor.cpp index 48d253d7d..29be978a6 100644 --- a/app/widget/viewer/viewertexteditor.cpp +++ b/app/widget/viewer/viewertexteditor.cpp @@ -37,7 +37,8 @@ namespace olive { ViewerTextEditor::ViewerTextEditor(double scale, QWidget *parent) : super(parent), transparent_clone_(nullptr), - block_update_toolbar_signal_(false) + block_update_toolbar_signal_(false), + listen_to_focus_events_(false) { // Ensure default text color is white QPalette p = palette(); @@ -175,6 +176,10 @@ void ViewerTextEditor::UpdateToolBar(ViewerTextEditorToolBar *toolbar, const QTe void ViewerTextEditor::FocusChanged(QWidget *old, QWidget *now) { + if (!listen_to_focus_events_) { + return; + } + QWidget *test = now; if (!test) { diff --git a/app/widget/viewer/viewertexteditor.h b/app/widget/viewer/viewertexteditor.h index e01ced6fa..3cc4153e9 100644 --- a/app/widget/viewer/viewertexteditor.h +++ b/app/widget/viewer/viewertexteditor.h @@ -134,6 +134,8 @@ public: void ConnectToolBar(ViewerTextEditorToolBar *toolbar); + void SetListenToFocusEvents(bool e) { listen_to_focus_events_ = e; } + protected: virtual void keyPressEvent(QKeyEvent *event) override; @@ -152,6 +154,8 @@ private: bool block_update_toolbar_signal_; + bool listen_to_focus_events_; + private slots: void FocusChanged(QWidget *old, QWidget *now); From 7c68efb0cea87cd121082757c2c8af967ee251f9 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Wed, 30 Mar 2022 15:06:33 -0700 Subject: [PATCH 068/114] viewertexteditor: force weight and italic Windows seems to require this for some reason --- app/widget/viewer/viewertexteditor.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/widget/viewer/viewertexteditor.cpp b/app/widget/viewer/viewertexteditor.cpp index 48d253d7d..50313757f 100644 --- a/app/widget/viewer/viewertexteditor.cpp +++ b/app/widget/viewer/viewertexteditor.cpp @@ -218,8 +218,17 @@ void ViewerTextEditor::SetFamily(const QString &s) void ViewerTextEditor::SetStyle(const QString &s) { + ViewerTextEditorToolBar *toolbar = static_cast(sender()); + QTextCharFormat f; + + // NOTE: Windows appears to require setting weight and italic manually instead of just the style name + QFontDatabase fd; + f.setFontWeight(fd.weight(toolbar->GetFontFamily(), s)); + f.setFontItalic(fd.italic(toolbar->GetFontFamily(), s)); + f.setFontStyleName(s); + MergeCharFormat(f); } From 96174365847f0b047833fc1f4c65d9aed54c34d0 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Wed, 30 Mar 2022 15:07:33 -0700 Subject: [PATCH 069/114] ui: disable native OS styling There really isn't much point to maintaining this and it directly opposes Qt's code so we'll be fighting them forever --- app/ui/style/style.cpp | 13 ------------- app/ui/style/style.h | 2 -- app/widget/colorlabelmenu/colorlabelmenuitem.cpp | 1 - app/widget/menu/menu.cpp | 3 --- app/window/mainwindow/mainmenu.cpp | 2 -- 5 files changed, 21 deletions(-) diff --git a/app/ui/style/style.cpp b/app/ui/style/style.cpp index 4e883261f..a63845984 100644 --- a/app/ui/style/style.cpp +++ b/app/ui/style/style.cpp @@ -38,19 +38,6 @@ QString StyleManager::current_style_; QMap StyleManager::available_themes_; QPalette StyleManager::platform_palette_; -void StyleManager::UseOSNativeStyling(QWidget *widget) -{ -#if defined(Q_OS_WINDOWS) - QStyle* s = QStyleFactory::create(QStringLiteral("windowsvista")); - widget->setStyle(s); - widget->setPalette(platform_palette_); -#elif defined(Q_OS_MAC) - QStyle* s = QStyleFactory::create(QStringLiteral("macintosh")); - widget->setStyle(s); - widget->setPalette(platform_palette_); -#endif -} - QPalette StyleManager::ParsePalette(const QString& ini_path) { QSettings ini(ini_path, QSettings::IniFormat); diff --git a/app/ui/style/style.h b/app/ui/style/style.h index 8b86914f6..83c782f52 100644 --- a/app/ui/style/style.h +++ b/app/ui/style/style.h @@ -36,8 +36,6 @@ public: static void SetStyle(const QString& style_path); - static void UseOSNativeStyling(QWidget* widget); - static const char* kDefaultStyle; static const QMap& available_themes() diff --git a/app/widget/colorlabelmenu/colorlabelmenuitem.cpp b/app/widget/colorlabelmenu/colorlabelmenuitem.cpp index f08a5c405..93ccda0b9 100644 --- a/app/widget/colorlabelmenu/colorlabelmenuitem.cpp +++ b/app/widget/colorlabelmenu/colorlabelmenuitem.cpp @@ -41,7 +41,6 @@ ColorLabelMenuItem::ColorLabelMenuItem(QWidget* parent) : layout->addWidget(box_); label_ = new QLabel(); - StyleManager::UseOSNativeStyling(label_); layout->addWidget(label_); } diff --git a/app/widget/menu/menu.cpp b/app/widget/menu/menu.cpp index 6745940b8..f1cd655c2 100644 --- a/app/widget/menu/menu.cpp +++ b/app/widget/menu/menu.cpp @@ -106,9 +106,6 @@ void Menu::Init() QPalette p = palette(); p.setColor(QPalette::Disabled, QPalette::Light, QColor(0, 0, 0, 0)); setPalette(p); - - // If a native palette is available, it should override the one above - StyleManager::UseOSNativeStyling(this); } } diff --git a/app/window/mainwindow/mainmenu.cpp b/app/window/mainwindow/mainmenu.cpp index 3492f9442..276c698a2 100644 --- a/app/window/mainwindow/mainmenu.cpp +++ b/app/window/mainwindow/mainmenu.cpp @@ -42,8 +42,6 @@ namespace olive { MainMenu::MainMenu(MainWindow *parent) : QMenuBar(parent) { - StyleManager::UseOSNativeStyling(this); - // // FILE MENU // From 1f70c8f18d8f97ac20c5183b7ce5887360fe8844 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Wed, 30 Mar 2022 15:48:11 -0700 Subject: [PATCH 070/114] viewertexteditor: reset style on family change --- app/widget/viewer/viewertexteditor.cpp | 33 +++++++++++++++++++------- app/widget/viewer/viewertexteditor.h | 9 +++++++ 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/app/widget/viewer/viewertexteditor.cpp b/app/widget/viewer/viewertexteditor.cpp index 488c6b6bc..7eeab3787 100644 --- a/app/widget/viewer/viewertexteditor.cpp +++ b/app/widget/viewer/viewertexteditor.cpp @@ -213,11 +213,16 @@ void ViewerTextEditor::FormatChanged(const QTextCharFormat &f) void ViewerTextEditor::SetFamily(const QString &s) { + ViewerTextEditorToolBar *toolbar = static_cast(sender()); + QTextCharFormat f; f.setFontFamily(s); #if QT_VERSION >= QT_VERSION_CHECK(5, 13, 0) f.setFontFamilies({s}); #endif + + ApplyStyle(&f, s, toolbar->GetFontStyleName()); + MergeCharFormat(f); } @@ -227,12 +232,7 @@ void ViewerTextEditor::SetStyle(const QString &s) QTextCharFormat f; - // NOTE: Windows appears to require setting weight and italic manually instead of just the style name - QFontDatabase fd; - f.setFontWeight(fd.weight(toolbar->GetFontFamily(), s)); - f.setFontItalic(fd.italic(toolbar->GetFontFamily(), s)); - - f.setFontStyleName(s); + ApplyStyle(&f, toolbar->GetFontFamily(), s); MergeCharFormat(f); } @@ -274,6 +274,17 @@ void ViewerTextEditor::MergeCharFormat(const QTextCharFormat &fmt) block_update_toolbar_signal_ = false; } +void ViewerTextEditor::ApplyStyle(QTextCharFormat *format, const QString &family, const QString &style) +{ + // NOTE: Windows appears to require setting weight and italic manually, while macOS and Linux are + // perfectly fine with just the style name + QFontDatabase fd; + format->setFontWeight(fd.weight(family, style)); + format->setFontItalic(fd.italic(family, style)); + + format->setFontStyleName(style); +} + void ViewerTextEditor::SetLineHeight(qreal i) { QTextBlockFormat f = this->textCursor().blockFormat(); @@ -322,8 +333,7 @@ ViewerTextEditorToolBar::ViewerTextEditorToolBar(QWidget *parent) : int advanced_slider_width = QtUtils::QFontMetricsWidth(fontMetrics(), QStringLiteral("9999.9%")); font_combo_ = new QFontComboBox(); - connect(font_combo_, &QFontComboBox::currentTextChanged, this, &ViewerTextEditorToolBar::FamilyChanged); - connect(font_combo_, &QFontComboBox::currentTextChanged, this, &ViewerTextEditorToolBar::UpdateFontStyleList); + connect(font_combo_, &QFontComboBox::currentTextChanged, this, &ViewerTextEditorToolBar::UpdateFontStyleListAndEmitFamilyChanged); basic_layout->addWidget(font_combo_); font_sz_slider_ = new FloatSlider(); @@ -483,6 +493,13 @@ void ViewerTextEditorToolBar::UpdateFontStyleList(const QString &family) style_combo_->blockSignals(false); } +void ViewerTextEditorToolBar::UpdateFontStyleListAndEmitFamilyChanged(const QString &family) +{ + // Ensures correct ordering of commands + UpdateFontStyleList(family); + emit FamilyChanged(family); +} + void ViewerTextEditorToolBar::mousePressEvent(QMouseEvent *event) { QWidget::mousePressEvent(event); diff --git a/app/widget/viewer/viewertexteditor.h b/app/widget/viewer/viewertexteditor.h index 3cc4153e9..d1faae7be 100644 --- a/app/widget/viewer/viewertexteditor.h +++ b/app/widget/viewer/viewertexteditor.h @@ -43,6 +43,11 @@ public: return font_combo_->currentText(); } + QString GetFontStyleName() const + { + return style_combo_->currentText(); + } + public slots: void SetFontFamily(QString s) { @@ -124,6 +129,8 @@ private: private slots: void UpdateFontStyleList(const QString &family); + void UpdateFontStyleListAndEmitFamilyChanged(const QString &family); + }; class ViewerTextEditor : public QTextEdit @@ -146,6 +153,8 @@ private: void MergeCharFormat(const QTextCharFormat &fmt); + void ApplyStyle(QTextCharFormat *format, const QString &family, const QString &style); + QVector toolbars_; QImage dpi_force_; From 49e622ac0fe937fedb49b1014641bc51de5704a9 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Wed, 30 Mar 2022 20:36:24 -0700 Subject: [PATCH 071/114] viewertexteditor: shifted code to class [skip ci] Minor code organization --- app/widget/viewer/viewerdisplay.cpp | 2 -- app/widget/viewer/viewertexteditor.cpp | 4 +++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/widget/viewer/viewerdisplay.cpp b/app/widget/viewer/viewerdisplay.cpp index d90dffeba..7914763a9 100644 --- a/app/widget/viewer/viewerdisplay.cpp +++ b/app/widget/viewer/viewerdisplay.cpp @@ -344,8 +344,6 @@ void ViewerDisplayWidget::mouseDoubleClickEvent(QMouseEvent *event) text_edit->setGeometry(transformed_geom.toRect()); ViewerTextEditorToolBar *toolbar = new ViewerTextEditorToolBar(this); - toolbar->setWindowFlags(Qt::Tool | Qt::FramelessWindowHint); - toolbar->resize(toolbar->sizeHint()); QPoint pos = mapToGlobal(QPoint(transformed_geom.x(), transformed_geom.y() - toolbar->height())); for (QScreen *screen : qApp->screens()) { diff --git a/app/widget/viewer/viewertexteditor.cpp b/app/widget/viewer/viewertexteditor.cpp index 7eeab3787..a3480a67c 100644 --- a/app/widget/viewer/viewertexteditor.cpp +++ b/app/widget/viewer/viewertexteditor.cpp @@ -321,7 +321,7 @@ void ViewerTextEditor::DocumentChanged() } ViewerTextEditorToolBar::ViewerTextEditorToolBar(QWidget *parent) : - QWidget(parent), + QWidget(parent, Qt::Tool | Qt::FramelessWindowHint), painted_(false) { QVBoxLayout *outer_layout = new QVBoxLayout(this); @@ -449,6 +449,8 @@ ViewerTextEditorToolBar::ViewerTextEditorToolBar(QWidget *parent) : advanced_layout->addStretch(); setAutoFillBackground(true); + + resize(sizeHint()); } void ViewerTextEditorToolBar::SetAlignment(Qt::Alignment a) From afaf6bcf92e814059b0bf433b9de57672ca4b73d Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun, 3 Apr 2022 19:18:39 -0700 Subject: [PATCH 072/114] groups: started revision - Removed UUIDs since we already have ptrs - Changed input passthroughs from map to list so they'll always be added in the same order - Fixed group copy on duplication - Fixed group copy on clip split --- app/node/group/group.cpp | 40 ++++------ app/node/group/group.h | 34 +++++++-- app/node/node.cpp | 57 ++++++++++---- app/node/node.h | 6 -- .../project/serializer/serializer210528.cpp | 2 - .../project/serializer/serializer210907.cpp | 2 - .../project/serializer/serializer211228.cpp | 11 ++- .../project/serializer/serializer211228.h | 1 + app/render/previewautocacher.cpp | 13 +++- app/widget/nodeview/nodeview.cpp | 74 +++++++++++++++---- app/widget/nodeview/nodeview.h | 2 +- app/widget/nodeview/nodeviewitem.cpp | 14 +++- 12 files changed, 174 insertions(+), 82 deletions(-) diff --git a/app/node/group/group.cpp b/app/node/group/group.cpp index 795c7f969..97ef05677 100644 --- a/app/node/group/group.cpp +++ b/app/node/group/group.cpp @@ -63,18 +63,23 @@ QString NodeGroup::AddInputPassthrough(const NodeInput &input, const InputFlags Q_ASSERT(ContextContainsNode(input.node())); for (auto it=input_passthroughs_.cbegin(); it!=input_passthroughs_.cend(); it++) { - if (it.value() == input) { + if (it->second == input) { // Already passing this input through - return it.key(); + return it->first; } } // Add input - QString id = GetGroupInputIDFromInput(input); + QString id = input.input(); + int i = 2; + while (HasInputWithID(id)) { + id = QStringLiteral("%1_%2").arg(input.name(), QString::number(i)); + i++; + } AddInput(id, input.GetDataType(), input.GetDefaultValue(), input.GetFlags() | flags); - input_passthroughs_.insert(id, input); + input_passthroughs_.append({id, input}); emit InputPassthroughAdded(this, input); @@ -83,11 +88,11 @@ QString NodeGroup::AddInputPassthrough(const NodeInput &input, const InputFlags void NodeGroup::RemoveInputPassthrough(const NodeInput &input) { - for (auto it=input_passthroughs_.cbegin(); it!=input_passthroughs_.cend(); it++) { - if (it.value() == input) { - RemoveInput(it.key()); + for (auto it=input_passthroughs_.begin(); it!=input_passthroughs_.end(); it++) { + if (it->second == input) { + RemoveInput(it->first); + emit InputPassthroughRemoved(this, it->second); input_passthroughs_.erase(it); - emit InputPassthroughRemoved(this, it.value()); break; } } @@ -102,23 +107,10 @@ void NodeGroup::SetOutputPassthrough(Node *node) emit OutputPassthroughChanged(this, output_passthrough_); } -QString NodeGroup::GetGroupInputIDFromInput(const NodeInput &input) -{ - QCryptographicHash hash(QCryptographicHash::Sha1); - - hash.addData(input.node()->GetUUID().toByteArray()); - - hash.addData(input.input().toUtf8()); - - hash.addData((const char*) &input.element(), sizeof(input.element())); - - return QString::fromLatin1(hash.result().toHex()); -} - bool NodeGroup::ContainsInputPassthrough(const NodeInput &input) const { for (auto it=input_passthroughs_.cbegin(); it!=input_passthroughs_.cend(); it++) { - if (it.value() == input) { + if (it->second == input) { return true; } } @@ -135,7 +127,7 @@ QString NodeGroup::GetInputName(const QString &id) const } // Call GetInputName of passed through node, which may be another group - NodeInput pass = input_passthroughs_.value(id); + NodeInput pass = GetInputFromID(id); return pass.node()->GetInputName(pass.input()); } @@ -149,7 +141,7 @@ NodeInput NodeGroup::ResolveInput(NodeInput input) bool NodeGroup::GetInner(NodeInput *input) { if (NodeGroup *g = dynamic_cast(input->node())) { - const NodeInput &passthrough = g->GetInputPassthroughs().value(input->input()); + const NodeInput &passthrough = g->GetInputFromID(input->input()); input->set_node(passthrough.node()); input->set_input(passthrough.input()); return true; diff --git a/app/node/group/group.h b/app/node/group/group.h index 05e3b851a..b87339d30 100644 --- a/app/node/group/group.h +++ b/app/node/group/group.h @@ -52,9 +52,9 @@ public: void SetOutputPassthrough(Node *node); - static QString GetGroupInputIDFromInput(const NodeInput &input); - - const QHash &GetInputPassthroughs() const + using InputPassthrough = QPair; + using InputPassthroughs = QVector; + const InputPassthroughs &GetInputPassthroughs() const { return input_passthroughs_; } @@ -66,15 +66,35 @@ public: static NodeInput ResolveInput(NodeInput input); static bool GetInner(NodeInput *input); + QString GetIDOfPassthrough(const NodeInput &input) const + { + for (auto it=input_passthroughs_.cbegin(); it!=input_passthroughs_.cend(); it++) { + if (it->second == input) { + return it->first; + } + } + return QString(); + } + + NodeInput GetInputFromID(const QString &id) const + { + for (auto it=input_passthroughs_.cbegin(); it!=input_passthroughs_.cend(); it++) { + if (it->first == id) { + return it->second; + } + } + return NodeInput(); + } + signals: - void InputPassthroughAdded(NodeGroup *group, const NodeInput &input); + void InputPassthroughAdded(olive::NodeGroup *group, const olive::NodeInput &input); - void InputPassthroughRemoved(NodeGroup *group, const NodeInput &input); + void InputPassthroughRemoved(olive::NodeGroup *group, const olive::NodeInput &input); - void OutputPassthroughChanged(NodeGroup *group, Node *output); + void OutputPassthroughChanged(olive::NodeGroup *group, olive::Node *output); private: - QHash input_passthroughs_; + InputPassthroughs input_passthroughs_; Node *output_passthrough_; diff --git a/app/node/node.cpp b/app/node/node.cpp index dd4f98878..74468036e 100644 --- a/app/node/node.cpp +++ b/app/node/node.cpp @@ -50,7 +50,6 @@ Node::Node() : cache_result_(false), flags_(kNone) { - uuid_ = QUuid::createUuid(); } Node::~Node() @@ -991,12 +990,44 @@ Node *Node::CopyNodeAndDependencyGraphMinusItemsInternal(QMap& cre // Add to map created.insert(node, copy); - // Copy values to the clone - CopyInputs(node, copy, false); - // Add it to the same graph command->add_child(new NodeAddCommand(node->parent(), copy)); + // Copy context children + const PositionMap &map = node->GetContextPositions(); + for (auto it=map.cbegin(); it!=map.cend(); it++) { + // Add either the copy (if it exists) or the original node to the context + Node *child; + + if (it.key()->IsItem()) { + child = it.key(); + } else { + child = created.value(it.key()); + if (!child) { + child = CopyNodeAndDependencyGraphMinusItemsInternal(created, it.key(), command); + } + } + + command->add_child(new NodeSetPositionCommand(child, copy, it.value())); + } + + // If this is a group, copy input and output passthroughs + if (NodeGroup *src_group = dynamic_cast(node)) { + NodeGroup *dst_group = static_cast(copy); + + for (auto it=src_group->GetInputPassthroughs().cbegin(); it!=src_group->GetInputPassthroughs().cend(); it++) { + // This node should have been created by the context loop above + NodeInput input = it->second; + input.set_node(created.value(input.node())); + command->add_child(new NodeGroupAddInputPassthrough(dst_group, input)); + } + + command->add_child(new NodeGroupSetOutputPassthrough(dst_group, created.value(src_group->GetOutputPassthrough()))); + } + + // Copy values to the clone + command->add_child(new NodeCopyInputsCommand(node, copy, false)); + // Go through input connections and copy if non-item and connect if item for (auto it=node->input_connections_.cbegin(); it!=node->input_connections_.cend(); it++) { NodeInput input = it->first; @@ -1009,23 +1040,17 @@ Node *Node::CopyNodeAndDependencyGraphMinusItemsInternal(QMap& cre } else { // Non-item, we want to clone this too connected_copy = created.value(connected, nullptr); - if (!connected_copy) { connected_copy = CopyNodeAndDependencyGraphMinusItemsInternal(created, connected, command); } } - NodeInput copied_input(copy, input.input(), input.element()); + NodeInput copied_input = input; + copied_input.set_node(copy); command->add_child(new NodeEdgeAddCommand(connected_copy, copied_input)); command->add_child(new NodeSetValueHintCommand(copied_input, node->GetValueHintForInput(input.input(), input.element()))); } - const PositionMap &map = node->GetContextPositions(); - for (auto it=map.cbegin(); it!=map.cend(); it++) { - // Add either the copy (if it exists) or the original node to the context - command->add_child(new NodeSetPositionCommand(created.value(it.key(), it.key()), copy, it.value())); - } - return copy; } @@ -1045,8 +1070,7 @@ Node *Node::CopyNodeInGraph(Node *node, MultiUndoCommand *command) } else { copy = node->copy(); - command->add_child(new NodeAddCommand(static_cast(node->parent()), - copy)); + command->add_child(new NodeAddCommand(static_cast(node->parent()), copy)); command->add_child(new NodeCopyInputsCommand(node, copy, true)); @@ -1302,6 +1326,11 @@ void Node::CopyInputs(const Node *source, Node *destination, bool include_connec Q_ASSERT(source->id() == destination->id()); foreach (const QString& input, source->inputs()) { + // NOTE: This assert is to ensure that inputs in the source also exist in the destination, which + // they should. If they don't and you hit this assert, check if you're handling group + // passthroughs correctly. + Q_ASSERT(destination->HasInputWithID(input)); + CopyInput(source, destination, input, include_connections, true); } diff --git a/app/node/node.h b/app/node/node.h index 3268cc34e..f0c27c55a 100644 --- a/app/node/node.h +++ b/app/node/node.h @@ -27,7 +27,6 @@ #include #include #include -#include #include #include "codec/frame.h" @@ -121,9 +120,6 @@ public: Project* project() const; - const QUuid &GetUUID() const {return uuid_;} - void SetUUID(const QUuid &uuid) {uuid_ = uuid;} - const uint64_t &GetFlags() const { return flags_; @@ -1340,8 +1336,6 @@ private: PositionMap context_positions_; - QUuid uuid_; - uint64_t flags_; QVector gizmos_; diff --git a/app/node/project/serializer/serializer210528.cpp b/app/node/project/serializer/serializer210528.cpp index 403105ad8..6c9ec058f 100644 --- a/app/node/project/serializer/serializer210528.cpp +++ b/app/node/project/serializer/serializer210528.cpp @@ -178,8 +178,6 @@ void ProjectSerializer210528::LoadNode(Node *node, XMLNodeData &xml_node_data, Q xml_node_data.node_ptrs.insert(reader->readElementText().toULongLong(), node); } else if (reader->name() == QStringLiteral("label")) { node->SetLabel(reader->readElementText()); - } else if (reader->name() == QStringLiteral("uuid")) { - node->SetUUID(QUuid::fromString(reader->readElementText())); } else if (reader->name() == QStringLiteral("color")) { node->SetOverrideColor(reader->readElementText().toInt()); } else if (reader->name() == QStringLiteral("links")) { diff --git a/app/node/project/serializer/serializer210907.cpp b/app/node/project/serializer/serializer210907.cpp index 688b7ad07..870fa0b30 100644 --- a/app/node/project/serializer/serializer210907.cpp +++ b/app/node/project/serializer/serializer210907.cpp @@ -178,8 +178,6 @@ void ProjectSerializer210907::LoadNode(Node *node, XMLNodeData &xml_node_data, Q xml_node_data.node_ptrs.insert(reader->readElementText().toULongLong(), node); } else if (reader->name() == QStringLiteral("label")) { node->SetLabel(reader->readElementText()); - } else if (reader->name() == QStringLiteral("uuid")) { - node->SetUUID(QUuid::fromString(reader->readElementText())); } else if (reader->name() == QStringLiteral("color")) { node->SetOverrideColor(reader->readElementText().toInt()); } else if (reader->name() == QStringLiteral("links")) { diff --git a/app/node/project/serializer/serializer211228.cpp b/app/node/project/serializer/serializer211228.cpp index a10d34bae..e41c33360 100644 --- a/app/node/project/serializer/serializer211228.cpp +++ b/app/node/project/serializer/serializer211228.cpp @@ -303,7 +303,7 @@ void ProjectSerializer211228::LoadNode(Node *node, XMLNodeData &xml_node_data, Q } else if (reader->name() == QStringLiteral("label")) { node->SetLabel(reader->readElementText()); } else if (reader->name() == QStringLiteral("uuid")) { - node->SetUUID(QUuid::fromString(reader->readElementText())); + xml_node_data.node_uuids.insert(node, QUuid::fromString(reader->readElementText())); } else if (reader->name() == QStringLiteral("color")) { node->SetOverrideColor(reader->readElementText().toInt()); } else if (reader->name() == QStringLiteral("links")) { @@ -377,7 +377,6 @@ void ProjectSerializer211228::SaveNode(Node *node, QXmlStreamWriter *writer) con { writer->writeTextElement(QStringLiteral("ptr"), QString::number(reinterpret_cast(node))); - writer->writeTextElement(QStringLiteral("uuid"), node->GetUUID().toString()); writer->writeTextElement(QStringLiteral("label"), node->GetLabel()); writer->writeTextElement(QStringLiteral("color"), QString::number(node->GetOverrideColor())); @@ -844,11 +843,11 @@ void ProjectSerializer211228::SaveNodeCustom(QXmlStreamWriter *writer, Node *nod } else if (NodeGroup *group = dynamic_cast(node)) { writer->writeStartElement(QStringLiteral("inputpassthroughs")); - foreach (const NodeInput &ip, group->GetInputPassthroughs()) { + foreach (const NodeGroup::InputPassthrough &ip, group->GetInputPassthroughs()) { writer->writeStartElement(QStringLiteral("inputpassthrough")); - writer->writeTextElement(QStringLiteral("node"), QString::number(reinterpret_cast(ip.node()))); - writer->writeTextElement(QStringLiteral("input"), ip.input()); - writer->writeTextElement(QStringLiteral("element"), QString::number(ip.element())); + writer->writeTextElement(QStringLiteral("node"), QString::number(reinterpret_cast(ip.second.node()))); + writer->writeTextElement(QStringLiteral("input"), ip.second.input()); + writer->writeTextElement(QStringLiteral("element"), QString::number(ip.second.element())); writer->writeEndElement(); // input } diff --git a/app/node/project/serializer/serializer211228.h b/app/node/project/serializer/serializer211228.h index 543a45498..a13e0641b 100644 --- a/app/node/project/serializer/serializer211228.h +++ b/app/node/project/serializer/serializer211228.h @@ -64,6 +64,7 @@ private: QList block_links; QVector group_input_links; QHash group_output_links; + QHash node_uuids; }; diff --git a/app/render/previewautocacher.cpp b/app/render/previewautocacher.cpp index 887c8b578..dcdb3d20a 100644 --- a/app/render/previewautocacher.cpp +++ b/app/render/previewautocacher.cpp @@ -378,9 +378,6 @@ void PreviewAutoCacher::AddNode(Node *node) // Add to project copy->setParent(&copied_project_); - // Copy UUID - copy->SetUUID(node->GetUUID()); - // Insert into map InsertIntoCopyMap(node, copy); @@ -420,6 +417,11 @@ void PreviewAutoCacher::RemoveEdge(Node *output, const NodeInput &input) void PreviewAutoCacher::CopyValue(const NodeInput &input) { + if (dynamic_cast(input.node())) { + // Group nodes are just dummy nodes, no need to copy them + return; + } + // Copy all values to our graph Node* our_input = copy_map_.value(input.node()); Node::CopyValuesOfElement(input.node(), our_input, input.input(), input.element()); @@ -427,6 +429,11 @@ void PreviewAutoCacher::CopyValue(const NodeInput &input) void PreviewAutoCacher::CopyValueHint(const NodeInput &input) { + if (dynamic_cast(input.node())) { + // Group nodes are just dummy nodes, no need to copy them + return; + } + // Copy value hint to our graph Node* our_input = copy_map_.value(input.node()); Node::ValueHint hint = input.node()->GetValueHintForInput(input.input(), input.element()); diff --git a/app/widget/nodeview/nodeview.cpp b/app/widget/nodeview/nodeview.cpp index 5e334b3c0..92b8f0d03 100644 --- a/app/widget/nodeview/nodeview.cpp +++ b/app/widget/nodeview/nodeview.cpp @@ -213,20 +213,67 @@ void NodeView::Paste() void NodeView::Duplicate() { if (!selected_nodes_.isEmpty()) { - Node::PositionMap map; + QVector selected = selected_nodes_; QVector new_nodes; - new_nodes.resize(selected_nodes_.size()); + Node::PositionMap map; - for (int i=0; icopy(); - Node::CopyInputs(og, copy, false); - map.insert(copy, GetAssumedPositionForSelectedNode(og)); - new_nodes[i] = copy; + new_nodes.resize(selected.size()); + + // Create copies of each selected node, checking for groups and adding children if necessary + for (int i=0; icopy(); + + if (NodeGroup *g = dynamic_cast(selected.at(i))) { + for (auto it=g->GetContextPositions().cbegin(); it!=g->GetContextPositions().cend(); it++) { + if (!selected.contains(it.key())) { + // This should automatically recurse if this is a group inside a group + selected.append(it.key()); + } + } + new_nodes.resize(selected.size()); + } } - Node::CopyDependencyGraph(selected_nodes_, new_nodes, nullptr); + // Get positions in contexts, add input passthroughs, and copy input values/keyframes + for (int i=0; iGetContextPositions().cbegin(); it!=og->GetContextPositions().cend(); it++) { + Node *child_og = it.key(); + int child_index = selected.indexOf(child_og); + + if (child_index != -1) { + Node *child_copy = new_nodes.at(child_index); + + copy->SetNodePositionInContext(child_copy, it.value()); + } + } + + if (NodeGroup *src_group = dynamic_cast(og)) { + NodeGroup *dst_group = static_cast(copy); + + for (auto it=src_group->GetInputPassthroughs().cbegin(); it!=src_group->GetInputPassthroughs().cend(); it++) { + NodeInput input = it->second; + input.set_node(new_nodes.at(selected.indexOf(input.node()))); + dst_group->AddInputPassthrough(input); + } + + dst_group->SetOutputPassthrough(new_nodes.at(selected.indexOf(src_group->GetOutputPassthrough()))); + } + + Node::CopyInputs(selected.at(i), new_nodes.at(i), false); + } + + // Copy connections + Node::CopyDependencyGraph(selected, new_nodes, nullptr); + + // Set root level context positions and attach to PostPaste(new_nodes, map); } } @@ -1020,12 +1067,13 @@ NodeViewItem *NodeView::GetAssumedItemForSelectedNode(Node *node) return nullptr; } -Node::Position NodeView::GetAssumedPositionForSelectedNode(Node *node) +bool NodeView::GetAssumedPositionForSelectedNode(Node *node, Node::Position *pos) { if (NodeViewItem *item = GetAssumedItemForSelectedNode(node)) { - return item->GetNodePositionData(); + *pos = item->GetNodePositionData(); + return true; } else { - return Node::Position(); + return false; } } @@ -1353,7 +1401,7 @@ void NodeView::EndEdgeDrag(bool cancel) } while (NodeGroup *input_group = dynamic_cast(creating_input.node())) { - creating_input = input_group->GetInputPassthroughs().value(creating_input.input()); + creating_input = input_group->GetInputFromID(creating_input.input()); } if (creating_input.IsConnected()) { diff --git a/app/widget/nodeview/nodeview.h b/app/widget/nodeview/nodeview.h index b3d6d4038..79964a998 100644 --- a/app/widget/nodeview/nodeview.h +++ b/app/widget/nodeview/nodeview.h @@ -149,7 +149,7 @@ private: QPointF GetEstimatedPositionForContext(NodeViewItem *item, Node *context) const; NodeViewItem *GetAssumedItemForSelectedNode(Node *node); - Node::Position GetAssumedPositionForSelectedNode(Node *node); + bool GetAssumedPositionForSelectedNode(Node *node, Node::Position *pos); Menu *CreateAddMenu(Menu *parent); diff --git a/app/widget/nodeview/nodeviewitem.cpp b/app/widget/nodeview/nodeviewitem.cpp index 01c1c6eb6..479bd9f72 100644 --- a/app/widget/nodeview/nodeviewitem.cpp +++ b/app/widget/nodeview/nodeviewitem.cpp @@ -464,10 +464,16 @@ void NodeViewItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) QVariant NodeViewItem::itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value) { - if (change == ItemPositionHasChanged && node_) { - ReadjustAllEdges(); + if (node_) { + if (change == ItemPositionHasChanged) { + ReadjustAllEdges(); - UpdateContextRect(); + UpdateContextRect(); + } else if (change == ItemSelectedHasChanged) { + if (value.toBool()) { + qDebug() << "Selected node:" << node_; + } + } } return QGraphicsItem::itemChange(change, value); @@ -786,7 +792,7 @@ NodeViewItem *NodeViewItem::GetItemForInput(NodeInput input) if (NodeGroup *group = dynamic_cast(node_)) { if (input.node() != group) { // Translate input to group input - QString id = NodeGroup::GetGroupInputIDFromInput(input); + QString id = group->GetIDOfPassthrough(input); input.set_node(group); input.set_input(id); } From d7b3c523f4fc54f092ae704e2ac64da1bcf7b6c7 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 4 Apr 2022 00:03:57 -0700 Subject: [PATCH 073/114] groups: improved serialization Introduced new project version with extra customization for groups --- app/node/group/group.cpp | 29 +- app/node/group/group.h | 6 +- app/node/node.cpp | 33 +- app/node/node.h | 8 +- app/node/param.cpp | 9 + app/node/param.h | 49 +- app/node/project/serializer/CMakeLists.txt | 2 + app/node/project/serializer/serializer.cpp | 2 + .../project/serializer/serializer211228.cpp | 304 ----- .../project/serializer/serializer211228.h | 20 - .../project/serializer/serializer220403.cpp | 1071 +++++++++++++++++ .../project/serializer/serializer220403.h | 119 ++ app/node/value.cpp | 67 ++ app/node/value.h | 10 +- app/render/opengl/openglrenderer.cpp | 1 + .../nodeparamviewwidgetbridge.cpp | 3 + app/widget/nodeview/nodeview.cpp | 2 +- 17 files changed, 1392 insertions(+), 343 deletions(-) create mode 100644 app/node/project/serializer/serializer220403.cpp create mode 100644 app/node/project/serializer/serializer220403.h diff --git a/app/node/group/group.cpp b/app/node/group/group.cpp index 97ef05677..20b43caaa 100644 --- a/app/node/group/group.cpp +++ b/app/node/group/group.cpp @@ -58,7 +58,7 @@ void NodeGroup::Retranslate() } } -QString NodeGroup::AddInputPassthrough(const NodeInput &input, const InputFlags &flags) +QString NodeGroup::AddInputPassthrough(const NodeInput &input, const InputFlags &flags, const QString &force_id) { Q_ASSERT(ContextContainsNode(input.node())); @@ -70,11 +70,26 @@ QString NodeGroup::AddInputPassthrough(const NodeInput &input, const InputFlags } // Add input - QString id = input.input(); - int i = 2; - while (HasInputWithID(id)) { - id = QStringLiteral("%1_%2").arg(input.name(), QString::number(i)); - i++; + QString id; + if (force_id.isEmpty()) { + id = input.input(); + int i = 2; + while (HasInputWithID(id)) { + id = QStringLiteral("%1_%2").arg(input.name(), QString::number(i)); + i++; + } + } else { + id = force_id; + + bool already_exists = false; + for (auto it=input_passthroughs_.cbegin(); it!=input_passthroughs_.cend(); it++) { + if (it->first == id) { + already_exists = true; + break; + } + } + + Q_ASSERT(!already_exists); } AddInput(id, input.GetDataType(), input.GetDefaultValue(), input.GetFlags() | flags); @@ -153,7 +168,7 @@ bool NodeGroup::GetInner(NodeInput *input) void NodeGroupAddInputPassthrough::redo() { if (!group_->ContainsInputPassthrough(input_)) { - group_->AddInputPassthrough(input_); + group_->AddInputPassthrough(input_, InputFlags(), force_id_); actually_added_ = true; } else { actually_added_ = false; diff --git a/app/node/group/group.h b/app/node/group/group.h index b87339d30..d9407dd3a 100644 --- a/app/node/group/group.h +++ b/app/node/group/group.h @@ -41,7 +41,7 @@ public: virtual void Retranslate() override; - QString AddInputPassthrough(const NodeInput &input, const InputFlags &flags = InputFlags()); + QString AddInputPassthrough(const NodeInput &input, const InputFlags &flags = InputFlags(), const QString &force_id = QString()); void RemoveInputPassthrough(const NodeInput &input); @@ -103,7 +103,7 @@ private: class NodeGroupAddInputPassthrough : public UndoCommand { public: - NodeGroupAddInputPassthrough(NodeGroup *group, const NodeInput &input) : + NodeGroupAddInputPassthrough(NodeGroup *group, const NodeInput &input, const QString &force_id = QString()) : group_(group), input_(input), actually_added_(false) @@ -124,6 +124,8 @@ private: NodeInput input_; + QString force_id_; + bool actually_added_; }; diff --git a/app/node/node.cpp b/app/node/node.cpp index 74468036e..daf12f663 100644 --- a/app/node/node.cpp +++ b/app/node/node.cpp @@ -554,6 +554,37 @@ QVariant Node::GetSplitDefaultValueOnTrack(const QString &input, int track) cons } } +void Node::SetDefaultValue(const QString &input, const QVariant &val) +{ + NodeValue::Type type = GetInputDataType(input); + + SetSplitDefaultValue(input, NodeValue::split_normal_value_into_track_values(type, val)); +} + +void Node::SetSplitDefaultValue(const QString &input, const SplitValue &val) +{ + Input* i = GetInternalInputData(input); + + if (i) { + i->default_value = val; + } else { + ReportInvalidInput("set default value of", input); + } +} + +void Node::SetSplitDefaultValueOnTrack(const QString &input, const QVariant &val, int track) +{ + Input* i = GetInternalInputData(input); + + if (i) { + if (track < i->default_value.size()) { + i->default_value[track] = val; + } + } else { + ReportInvalidInput("set default value on track of", input); + } +} + const QVector &Node::GetKeyframeTracks(const QString &input, int element) const { return GetImmediate(input, element)->keyframe_tracks(); @@ -1019,7 +1050,7 @@ Node *Node::CopyNodeAndDependencyGraphMinusItemsInternal(QMap& cre // This node should have been created by the context loop above NodeInput input = it->second; input.set_node(created.value(input.node())); - command->add_child(new NodeGroupAddInputPassthrough(dst_group, input)); + command->add_child(new NodeGroupAddInputPassthrough(dst_group, input, it->first)); } command->add_child(new NodeGroupSetOutputPassthrough(dst_group, created.value(src_group->GetOutputPassthrough()))); diff --git a/app/node/node.h b/app/node/node.h index f0c27c55a..1b5414d2b 100644 --- a/app/node/node.h +++ b/app/node/node.h @@ -321,6 +321,8 @@ public: virtual QString GetInputName(const QString& id) const; + void SetInputName(const QString& id, const QString& name); + bool IsInputHidden(const QString& input) const; bool IsInputConnectable(const QString& input) const; bool IsInputKeyframable(const QString& input) const; @@ -404,6 +406,10 @@ public: SplitValue GetSplitDefaultValue(const QString& input) const; QVariant GetSplitDefaultValueOnTrack(const QString& input, int track) const; + void SetDefaultValue(const QString& input, const QVariant &val); + void SetSplitDefaultValue(const QString& input, const SplitValue &val); + void SetSplitDefaultValueOnTrack(const QString& input, const QVariant &val, int track); + const QVector& GetKeyframeTracks(const QString& input, int element) const; const QVector& GetKeyframeTracks(const NodeInput& input) const { @@ -974,8 +980,6 @@ protected: void RemoveInput(const QString& id); - void SetInputName(const QString& id, const QString& name); - void SetComboBoxStrings(const QString& id, const QStringList& strings) { SetInputProperty(id, QStringLiteral("combo_str"), strings); diff --git a/app/node/param.cpp b/app/node/param.cpp index d7676c615..07a5c6510 100644 --- a/app/node/param.cpp +++ b/app/node/param.cpp @@ -123,6 +123,15 @@ QVariant NodeInput::GetProperty(const QString &key) const } } +QHash NodeInput::GetProperties() const +{ + if (IsValid()) { + return node_->GetInputProperties(input_); + } else { + return QHash(); + } +} + QVariant NodeInput::GetValueAtTime(const rational &time) const { if (IsValid()) { diff --git a/app/node/param.h b/app/node/param.h index e06ba0a9b..da2e12320 100644 --- a/app/node/param.h +++ b/app/node/param.h @@ -52,11 +52,6 @@ public: f_ = flags; } - bool operator&(const InputFlag& f) const - { - return f_ & f; - } - InputFlags operator|(const InputFlags &f) const { InputFlags i = *this; @@ -70,6 +65,49 @@ public: return *this; } + InputFlags operator&(const InputFlags &f) const + { + InputFlags i = *this; + i &= f; + return i; + } + + InputFlags &operator&=(const InputFlags &f) + { + f_ &= f.f_; + return *this; + } + + InputFlags operator&(const InputFlag &f) const + { + InputFlags i = *this; + i &= f; + return i; + } + + InputFlags &operator&=(const InputFlag &f) + { + f_ &= f; + return *this; + } + + InputFlags operator~() const + { + InputFlags i = *this; + i.f_ = ~i.f_; + return i; + } + + inline operator bool() const + { + return f_; + } + + inline const uint64_t &value() const + { + return f_; + } + private: uint64_t f_; @@ -188,6 +226,7 @@ public: QStringList GetComboBoxStrings() const; QVariant GetProperty(const QString& key) const; + QHash GetProperties() const; QVariant GetValueAtTime(const rational& time) const; diff --git a/app/node/project/serializer/CMakeLists.txt b/app/node/project/serializer/CMakeLists.txt index e0328450e..44201649c 100644 --- a/app/node/project/serializer/CMakeLists.txt +++ b/app/node/project/serializer/CMakeLists.txt @@ -27,5 +27,7 @@ set(OLIVE_SOURCES node/project/serializer/serializer210907.h node/project/serializer/serializer211228.cpp node/project/serializer/serializer211228.h + node/project/serializer/serializer220403.cpp + node/project/serializer/serializer220403.h PARENT_SCOPE ) diff --git a/app/node/project/serializer/serializer.cpp b/app/node/project/serializer/serializer.cpp index 446dced66..91164db0e 100644 --- a/app/node/project/serializer/serializer.cpp +++ b/app/node/project/serializer/serializer.cpp @@ -30,6 +30,7 @@ #include "serializer210528.h" #include "serializer210907.h" #include "serializer211228.h" +#include "serializer220403.h" namespace olive { @@ -45,6 +46,7 @@ void ProjectSerializer::Initialize() instances_.append(new ProjectSerializer210528); instances_.append(new ProjectSerializer210907); instances_.append(new ProjectSerializer211228); + instances_.append(new ProjectSerializer220403); } void ProjectSerializer::Destroy() diff --git a/app/node/project/serializer/serializer211228.cpp b/app/node/project/serializer/serializer211228.cpp index e41c33360..fb7c507d3 100644 --- a/app/node/project/serializer/serializer211228.cpp +++ b/app/node/project/serializer/serializer211228.cpp @@ -214,80 +214,6 @@ ProjectSerializer211228::LoadData ProjectSerializer211228::Load(Project *project return load_data; } -void ProjectSerializer211228::Save(QXmlStreamWriter *writer, const SaveData &data, void *reserved) const -{ - Project *project = data.GetProject(); - - writer->writeTextElement(QStringLiteral("uuid"), data.GetProject()->GetUuid().toString()); - - writer->writeStartElement(QStringLiteral("nodes")); - - const QVector &using_node_list = (data.GetOnlySerializeNodes().isEmpty()) ? project->nodes() : data.GetOnlySerializeNodes(); - - foreach (Node* node, using_node_list) { - writer->writeStartElement(QStringLiteral("node")); - - if (node == project->root()) { - writer->writeAttribute(QStringLiteral("root"), QStringLiteral("1")); - } else if (node == project->color_manager()) { - writer->writeAttribute(QStringLiteral("cm"), QStringLiteral("1")); - } else if (node == project->settings()) { - writer->writeAttribute(QStringLiteral("settings"), QStringLiteral("1")); - } - - writer->writeAttribute(QStringLiteral("id"), node->id()); - - SaveNode(node, writer); - - writer->writeEndElement(); // node - } - - writer->writeEndElement(); // nodes - - writer->writeStartElement(QStringLiteral("positions")); - - foreach (Node* context, using_node_list) { - const Node::PositionMap &map = context->GetContextPositions(); - - if (!map.isEmpty()) { - writer->writeStartElement(QStringLiteral("context")); - - writer->writeAttribute(QStringLiteral("ptr"), QString::number(reinterpret_cast(context))); - - for (auto jt=map.cbegin(); jt!=map.cend(); jt++) { - if (data.GetOnlySerializeNodes().isEmpty() || data.GetOnlySerializeNodes().contains(jt.key())) { - writer->writeStartElement(QStringLiteral("node")); - SavePosition(writer, jt.key(), jt.value()); - writer->writeEndElement(); // node - } - } - - writer->writeEndElement(); // context - } - } - - writer->writeEndElement(); // positions - - writer->writeStartElement(QStringLiteral("properties")); - - for (auto it=data.GetProperties().cbegin(); it!=data.GetProperties().cend(); it++) { - writer->writeStartElement(QStringLiteral("node")); - - writer->writeAttribute(QStringLiteral("ptr"), QString::number(reinterpret_cast(it.key()))); - - for (auto jt=it.value().cbegin(); jt!=it.value().cend(); jt++) { - writer->writeTextElement(jt.key(), jt.value()); - } - - writer->writeEndElement(); // node - } - - writer->writeEndElement(); // properties - - // Save main window project layout - project->GetLayoutInfo().toXml(writer); -} - void ProjectSerializer211228::LoadNode(Node *node, XMLNodeData &xml_node_data, QXmlStreamReader *reader) const { while (XMLReadNextStartElement(reader)) { @@ -373,60 +299,6 @@ void ProjectSerializer211228::LoadNode(Node *node, XMLNodeData &xml_node_data, Q } } -void ProjectSerializer211228::SaveNode(Node *node, QXmlStreamWriter *writer) const -{ - writer->writeTextElement(QStringLiteral("ptr"), QString::number(reinterpret_cast(node))); - - writer->writeTextElement(QStringLiteral("label"), node->GetLabel()); - writer->writeTextElement(QStringLiteral("color"), QString::number(node->GetOverrideColor())); - - foreach (const QString& input, node->inputs()) { - writer->writeStartElement(QStringLiteral("input")); - - SaveInput(node, writer, input); - - writer->writeEndElement(); // input - } - - writer->writeStartElement(QStringLiteral("links")); - foreach (Node* link, node->links()) { - writer->writeTextElement(QStringLiteral("link"), QString::number(reinterpret_cast(link))); - } - writer->writeEndElement(); // links - - writer->writeStartElement(QStringLiteral("connections")); - for (auto it=node->input_connections().cbegin(); it!=node->input_connections().cend(); it++) { - writer->writeStartElement(QStringLiteral("connection")); - - writer->writeAttribute(QStringLiteral("input"), it->first.input()); - writer->writeAttribute(QStringLiteral("element"), QString::number(it->first.element())); - - writer->writeTextElement(QStringLiteral("output"), QString::number(reinterpret_cast(it->second))); - - writer->writeEndElement(); // connection - } - writer->writeEndElement(); // connections - - writer->writeStartElement(QStringLiteral("hints")); - for (auto it=node->GetValueHints().cbegin(); it!=node->GetValueHints().cend(); it++) { - writer->writeStartElement(QStringLiteral("hint")); - - writer->writeAttribute(QStringLiteral("input"), it.key().input); - writer->writeAttribute(QStringLiteral("element"), QString::number(it.key().element)); - - SaveValueHint(&it.value(), writer); - - writer->writeEndElement(); // hint - } - writer->writeEndElement(); - - writer->writeStartElement(QStringLiteral("custom")); - - SaveNodeCustom(writer, node); - - writer->writeEndElement(); // custom -} - void ProjectSerializer211228::LoadInput(Node *node, QXmlStreamReader *reader, XMLNodeData &xml_node_data) const { QString param_id; @@ -484,33 +356,6 @@ void ProjectSerializer211228::LoadInput(Node *node, QXmlStreamReader *reader, XM } } -void ProjectSerializer211228::SaveInput(Node *node, QXmlStreamWriter *writer, const QString &id) const -{ - writer->writeAttribute(QStringLiteral("id"), id); - - writer->writeStartElement(QStringLiteral("primary")); - - SaveImmediate(writer, node, id, -1); - - writer->writeEndElement(); // primary - - writer->writeStartElement(QStringLiteral("subelements")); - - int arr_sz = node->InputArraySize(id); - - writer->writeAttribute(QStringLiteral("count"), QString::number(arr_sz)); - - for (int i=0; iwriteStartElement(QStringLiteral("element")); - - SaveImmediate(writer, node, id, i); - - writer->writeEndElement(); // element - } - - writer->writeEndElement(); // subelements -} - void ProjectSerializer211228::LoadImmediate(QXmlStreamReader *reader, Node *node, const QString& input, int element, XMLNodeData &xml_node_data) const { Q_UNUSED(xml_node_data) @@ -628,69 +473,6 @@ void ProjectSerializer211228::LoadImmediate(QXmlStreamReader *reader, Node *node } } -void ProjectSerializer211228::SaveImmediate(QXmlStreamWriter *writer, Node *node, const QString& input, int element) const -{ - if (node->IsInputKeyframable(input)) { - writer->writeTextElement(QStringLiteral("keyframing"), QString::number(node->IsInputKeyframing(input, element))); - } - - NodeValue::Type data_type = node->GetInputDataType(input); - - // Write standard value - writer->writeStartElement(QStringLiteral("standard")); - - foreach (const QVariant& v, node->GetSplitStandardValue(input, element)) { - writer->writeStartElement(QStringLiteral("track")); - - if (data_type == NodeValue::kVideoParams) { - v.value().Save(writer); - } else if (data_type == NodeValue::kAudioParams) { - v.value().Save(writer); - } else { - writer->writeCharacters(NodeValue::ValueToString(data_type, v, true)); - } - - writer->writeEndElement(); // track - } - - writer->writeEndElement(); // standard - - // Write keyframes - writer->writeStartElement(QStringLiteral("keyframes")); - - for (const NodeKeyframeTrack& track : node->GetKeyframeTracks(input, element)) { - writer->writeStartElement(QStringLiteral("track")); - - for (NodeKeyframe* key : track) { - writer->writeStartElement(QStringLiteral("key")); - - writer->writeAttribute(QStringLiteral("input"), key->input()); - writer->writeAttribute(QStringLiteral("time"), key->time().toString()); - writer->writeAttribute(QStringLiteral("type"), QString::number(key->type())); - writer->writeAttribute(QStringLiteral("inhandlex"), QString::number(key->bezier_control_in().x())); - writer->writeAttribute(QStringLiteral("inhandley"), QString::number(key->bezier_control_in().y())); - writer->writeAttribute(QStringLiteral("outhandlex"), QString::number(key->bezier_control_out().x())); - writer->writeAttribute(QStringLiteral("outhandley"), QString::number(key->bezier_control_out().y())); - - writer->writeCharacters(NodeValue::ValueToString(data_type, key->value(), true)); - - writer->writeEndElement(); // key - } - - writer->writeEndElement(); // track - } - - writer->writeEndElement(); // keyframes - - if (data_type == NodeValue::kColor) { - // Save color management information - writer->writeTextElement(QStringLiteral("csinput"), node->GetInputProperty(input, QStringLiteral("col_input")).toString()); - writer->writeTextElement(QStringLiteral("csdisplay"), node->GetInputProperty(input, QStringLiteral("col_display")).toString()); - writer->writeTextElement(QStringLiteral("csview"), node->GetInputProperty(input, QStringLiteral("col_view")).toString()); - writer->writeTextElement(QStringLiteral("cslook"), node->GetInputProperty(input, QStringLiteral("col_look")).toString()); - } -} - bool ProjectSerializer211228::LoadPosition(QXmlStreamReader *reader, quintptr *node_ptr, Node::Position *pos) const { bool got_node_ptr = false; @@ -722,15 +504,6 @@ bool ProjectSerializer211228::LoadPosition(QXmlStreamReader *reader, quintptr *n return got_node_ptr && got_pos_x && got_pos_y; } -void ProjectSerializer211228::SavePosition(QXmlStreamWriter *writer, Node *node, const Node::Position &pos) const -{ - writer->writeAttribute(QStringLiteral("ptr"), QString::number(reinterpret_cast(node))); - - writer->writeTextElement(QStringLiteral("x"), QString::number(pos.position.x())); - writer->writeTextElement(QStringLiteral("y"), QString::number(pos.position.y())); - writer->writeTextElement(QStringLiteral("expanded"), QString::number(pos.expanded)); -} - void ProjectSerializer211228::PostConnect(const XMLNodeData &xml_node_data) const { foreach (const XMLNodeData::SerializedConnection& con, xml_node_data.desired_connections) { @@ -827,36 +600,6 @@ void ProjectSerializer211228::LoadNodeCustom(QXmlStreamReader *reader, Node *nod } } -void ProjectSerializer211228::SaveNodeCustom(QXmlStreamWriter *writer, Node *node) const -{ - if (ViewerOutput *viewer = dynamic_cast(node)) { - // Write TimelinePoints - writer->writeStartElement(QStringLiteral("points")); - SaveTimelinePoints(writer, viewer->GetTimelinePoints()); - writer->writeEndElement(); // points - - if (Footage *footage = dynamic_cast(node)) { - writer->writeTextElement(QStringLiteral("timestamp"), QString::number(footage->timestamp())); - } - } else if (Track *track = dynamic_cast(node)) { - writer->writeTextElement(QStringLiteral("height"), QString::number(track->GetTrackHeight())); - } else if (NodeGroup *group = dynamic_cast(node)) { - writer->writeStartElement(QStringLiteral("inputpassthroughs")); - - foreach (const NodeGroup::InputPassthrough &ip, group->GetInputPassthroughs()) { - writer->writeStartElement(QStringLiteral("inputpassthrough")); - writer->writeTextElement(QStringLiteral("node"), QString::number(reinterpret_cast(ip.second.node()))); - writer->writeTextElement(QStringLiteral("input"), ip.second.input()); - writer->writeTextElement(QStringLiteral("element"), QString::number(ip.second.element())); - writer->writeEndElement(); // input - } - - writer->writeEndElement(); // inputpassthroughs - - writer->writeTextElement(QStringLiteral("outputpassthrough"), QString::number(reinterpret_cast(group->GetOutputPassthrough()))); - } -} - void ProjectSerializer211228::LoadTimelinePoints(QXmlStreamReader *reader, TimelinePoints *points) const { while (XMLReadNextStartElement(reader)) { @@ -870,17 +613,6 @@ void ProjectSerializer211228::LoadTimelinePoints(QXmlStreamReader *reader, Timel } } -void ProjectSerializer211228::SaveTimelinePoints(QXmlStreamWriter *writer, TimelinePoints *points) const -{ - writer->writeStartElement(QStringLiteral("workarea")); - SaveWorkArea(writer, points->workarea()); - writer->writeEndElement(); // workarea - - writer->writeStartElement(QStringLiteral("markers")); - SaveMarkerList(writer, points->markers()); - writer->writeEndElement(); // markers -} - void ProjectSerializer211228::LoadWorkArea(QXmlStreamReader *reader, TimelineWorkArea *workarea) const { rational range_in = workarea->in(); @@ -905,13 +637,6 @@ void ProjectSerializer211228::LoadWorkArea(QXmlStreamReader *reader, TimelineWor reader->skipCurrentElement(); } -void ProjectSerializer211228::SaveWorkArea(QXmlStreamWriter *writer, TimelineWorkArea *workarea) const -{ - writer->writeAttribute(QStringLiteral("enabled"), QString::number(workarea->enabled())); - writer->writeAttribute(QStringLiteral("in"), workarea->in().toString()); - writer->writeAttribute(QStringLiteral("out"), workarea->out().toString()); -} - void ProjectSerializer211228::LoadMarkerList(QXmlStreamReader *reader, TimelineMarkerList *markers) const { while (XMLReadNextStartElement(reader)) { @@ -936,20 +661,6 @@ void ProjectSerializer211228::LoadMarkerList(QXmlStreamReader *reader, TimelineM } } -void ProjectSerializer211228::SaveMarkerList(QXmlStreamWriter *writer, TimelineMarkerList *markers) const -{ - foreach (TimelineMarker* marker, markers->list()) { - writer->writeStartElement(QStringLiteral("marker")); - - writer->writeAttribute(QStringLiteral("name"), marker->name()); - - writer->writeAttribute(QStringLiteral("in"), marker->time().in().toString()); - writer->writeAttribute(QStringLiteral("out"), marker->time().out().toString()); - - writer->writeEndElement(); // marker - } -} - void ProjectSerializer211228::LoadValueHint(Node::ValueHint *hint, QXmlStreamReader *reader) const { QVector types; @@ -975,19 +686,4 @@ void ProjectSerializer211228::LoadValueHint(Node::ValueHint *hint, QXmlStreamRea hint->set_type(types); } -void ProjectSerializer211228::SaveValueHint(const Node::ValueHint *hint, QXmlStreamWriter *writer) const -{ - writer->writeStartElement(QStringLiteral("types")); - - for (auto it=hint->types().cbegin(); it!=hint->types().cend(); it++) { - writer->writeTextElement(QStringLiteral("type"), QString::number(*it)); - } - - writer->writeEndElement(); // types - - writer->writeTextElement(QStringLiteral("index"), QString::number(hint->index())); - - writer->writeTextElement(QStringLiteral("tag"), hint->tag()); -} - } diff --git a/app/node/project/serializer/serializer211228.h b/app/node/project/serializer/serializer211228.h index a13e0641b..20982c07a 100644 --- a/app/node/project/serializer/serializer211228.h +++ b/app/node/project/serializer/serializer211228.h @@ -33,8 +33,6 @@ public: protected: virtual LoadData Load(Project *project, QXmlStreamReader *reader, void *reserved) const override; - virtual void Save(QXmlStreamWriter *writer, const SaveData &data, void *reserved) const override; - virtual uint Version() const override { return 211228; @@ -70,42 +68,24 @@ private: void LoadNode(Node *node, XMLNodeData &xml_node_data, QXmlStreamReader *reader) const; - void SaveNode(Node *node, QXmlStreamWriter *writer) const; - void LoadInput(Node *node, QXmlStreamReader* reader, XMLNodeData &xml_node_data) const; - void SaveInput(Node *node, QXmlStreamWriter* writer, const QString& id) const; - void LoadImmediate(QXmlStreamReader *reader, Node *node, const QString& input, int element, XMLNodeData& xml_node_data) const; - void SaveImmediate(QXmlStreamWriter *writer, Node *node, const QString &input, int element) const; - bool LoadPosition(QXmlStreamReader *reader, quintptr *node_ptr, Node::Position *pos) const; - void SavePosition(QXmlStreamWriter *writer, Node *node, const Node::Position &pos) const; - void PostConnect(const XMLNodeData &xml_node_data) const; void LoadNodeCustom(QXmlStreamReader *reader, Node *node, XMLNodeData &xml_node_data) const; - void SaveNodeCustom(QXmlStreamWriter *writer, Node *node) const; - void LoadTimelinePoints(QXmlStreamReader *reader, TimelinePoints *points) const; - void SaveTimelinePoints(QXmlStreamWriter *writer, TimelinePoints *points) const; - void LoadWorkArea(QXmlStreamReader *reader, TimelineWorkArea *workarea) const; - void SaveWorkArea(QXmlStreamWriter *writer, TimelineWorkArea *workarea) const; - void LoadMarkerList(QXmlStreamReader *reader, TimelineMarkerList *markers) const; - void SaveMarkerList(QXmlStreamWriter *writer, TimelineMarkerList *markers) const; - void LoadValueHint(Node::ValueHint *hint, QXmlStreamReader *reader) const; - void SaveValueHint(const Node::ValueHint *hint, QXmlStreamWriter *writer) const; - }; } diff --git a/app/node/project/serializer/serializer220403.cpp b/app/node/project/serializer/serializer220403.cpp new file mode 100644 index 000000000..e8e9187f2 --- /dev/null +++ b/app/node/project/serializer/serializer220403.cpp @@ -0,0 +1,1071 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#include "serializer220403.h" + +#include "node/factory.h" + +namespace olive { + +ProjectSerializer220403::LoadData ProjectSerializer220403::Load(Project *project, QXmlStreamReader *reader, void *reserved) const +{ + QMap > properties; + QMap > positions; + XMLNodeData xml_node_data; + + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("url")) { + project->SetSavedURL(reader->readElementText()); + } else if (reader->name() == QStringLiteral("project")) { + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("layout")) { + + // Since the main window's functions have to occur in the GUI thread (and we're likely + // loading in a secondary thread), we load all necessary data into a separate struct so we + // can continue loading and queue it with the main window so it can handle the data + // appropriately in its own thread. + + project->SetLayoutInfo(MainWindowLayoutInfo::fromXml(reader, xml_node_data.node_ptrs)); + + } else if (reader->name() == QStringLiteral("uuid")) { + + project->SetUuid(QUuid::fromString(reader->readElementText())); + + } else if (reader->name() == QStringLiteral("nodes")) { + + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("node")) { + bool is_root = false; + bool is_cm = false; + bool is_settings = false; + QString id; + + { + XMLAttributeLoop(reader, attr) { + if (attr.name() == QStringLiteral("id")) { + id = attr.value().toString(); + } else if (attr.name() == QStringLiteral("root") && attr.value() == QStringLiteral("1")) { + is_root = true; + } else if (attr.name() == QStringLiteral("cm") && attr.value() == QStringLiteral("1")) { + is_cm = true; + } else if (attr.name() == QStringLiteral("settings") && attr.value() == QStringLiteral("1")) { + is_settings = true; + } + } + } + + if (id.isEmpty()) { + qWarning() << "Failed to load node with empty ID"; + reader->skipCurrentElement(); + } else { + Node* node; + + if (is_root) { + node = project->root(); + } else if (is_cm) { + node = project->color_manager(); + } else if (is_settings) { + node = project->settings(); + } else { + node = NodeFactory::CreateFromID(id); + } + + if (!node) { + qWarning() << "Failed to find node with ID" << id; + reader->skipCurrentElement(); + } else { + LoadNode(node, xml_node_data, reader); + node->setParent(project); + } + } + } else { + reader->skipCurrentElement(); + } + } + + } else if (reader->name() == QStringLiteral("positions")) { + + while (XMLReadNextStartElement(reader)) { + + if (reader->name() == QStringLiteral("context")) { + + quintptr context_ptr = 0; + XMLAttributeLoop(reader, attr) { + if (attr.name() == QStringLiteral("ptr")) { + context_ptr = attr.value().toULongLong(); + break; + } + } + + if (context_ptr) { + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("node")) { + quintptr node_ptr; + Node::Position node_pos; + + if (LoadPosition(reader, &node_ptr, &node_pos)) { + if (node_ptr) { + positions[context_ptr].insert(node_ptr, node_pos); + } else { + qWarning() << "Failed to find pointer for node position"; + reader->skipCurrentElement(); + } + } + } else { + reader->skipCurrentElement(); + } + } + } else { + qWarning() << "Attempted to load context with no pointer"; + reader->skipCurrentElement(); + } + + } else { + + reader->skipCurrentElement(); + + } + + } + + + } else if (reader->name() == QStringLiteral("properties")) { + + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("node")) { + quintptr ptr = 0; + + XMLAttributeLoop(reader, attr) { + if (attr.name() == QStringLiteral("ptr")) { + ptr = attr.value().toULongLong(); + + // Only attribute we're looking for right now + break; + } + } + + if (ptr) { + QMap properties_for_node; + while (XMLReadNextStartElement(reader)) { + properties_for_node.insert(reader->name().toString(), reader->readElementText()); + } + properties.insert(ptr, properties_for_node); + } + } else { + reader->skipCurrentElement(); + } + } + + } else { + + // Skip this + reader->skipCurrentElement(); + + } + } + } else { + reader->skipCurrentElement(); + } + } + + // Resolve positions + for (auto it=positions.cbegin(); it!=positions.cend(); it++) { + Node *ctx = xml_node_data.node_ptrs.value(it.key()); + if (ctx) { + for (auto jt=it.value().cbegin(); jt!=it.value().cend(); jt++) { + Node *n = xml_node_data.node_ptrs.value(jt.key()); + if (n) { + ctx->SetNodePositionInContext(n, jt.value()); + } + } + } + } + + // Make connections + PostConnect(xml_node_data); + + LoadData load_data; + + // Resolve serialized properties (if any) + for (auto it=properties.cbegin(); it!=properties.cend(); it++) { + Node *node = xml_node_data.node_ptrs.value(it.key()); + if (node) { + load_data.properties.insert(node, it.value()); + } + } + + return load_data; +} + +void ProjectSerializer220403::Save(QXmlStreamWriter *writer, const SaveData &data, void *reserved) const +{ + Project *project = data.GetProject(); + + writer->writeTextElement(QStringLiteral("uuid"), data.GetProject()->GetUuid().toString()); + + writer->writeStartElement(QStringLiteral("nodes")); + + const QVector &using_node_list = (data.GetOnlySerializeNodes().isEmpty()) ? project->nodes() : data.GetOnlySerializeNodes(); + + foreach (Node* node, using_node_list) { + writer->writeStartElement(QStringLiteral("node")); + + if (node == project->root()) { + writer->writeAttribute(QStringLiteral("root"), QStringLiteral("1")); + } else if (node == project->color_manager()) { + writer->writeAttribute(QStringLiteral("cm"), QStringLiteral("1")); + } else if (node == project->settings()) { + writer->writeAttribute(QStringLiteral("settings"), QStringLiteral("1")); + } + + writer->writeAttribute(QStringLiteral("id"), node->id()); + + SaveNode(node, writer); + + writer->writeEndElement(); // node + } + + writer->writeEndElement(); // nodes + + writer->writeStartElement(QStringLiteral("positions")); + + foreach (Node* context, using_node_list) { + const Node::PositionMap &map = context->GetContextPositions(); + + if (!map.isEmpty()) { + writer->writeStartElement(QStringLiteral("context")); + + writer->writeAttribute(QStringLiteral("ptr"), QString::number(reinterpret_cast(context))); + + for (auto jt=map.cbegin(); jt!=map.cend(); jt++) { + if (data.GetOnlySerializeNodes().isEmpty() || data.GetOnlySerializeNodes().contains(jt.key())) { + writer->writeStartElement(QStringLiteral("node")); + SavePosition(writer, jt.key(), jt.value()); + writer->writeEndElement(); // node + } + } + + writer->writeEndElement(); // context + } + } + + writer->writeEndElement(); // positions + + writer->writeStartElement(QStringLiteral("properties")); + + for (auto it=data.GetProperties().cbegin(); it!=data.GetProperties().cend(); it++) { + writer->writeStartElement(QStringLiteral("node")); + + writer->writeAttribute(QStringLiteral("ptr"), QString::number(reinterpret_cast(it.key()))); + + for (auto jt=it.value().cbegin(); jt!=it.value().cend(); jt++) { + writer->writeTextElement(jt.key(), jt.value()); + } + + writer->writeEndElement(); // node + } + + writer->writeEndElement(); // properties + + // Save main window project layout + project->GetLayoutInfo().toXml(writer); +} + +void ProjectSerializer220403::LoadNode(Node *node, XMLNodeData &xml_node_data, QXmlStreamReader *reader) const +{ + while (XMLReadNextStartElement(reader)) { + if (IsCancelled()) { + return; + } + + if (reader->name() == QStringLiteral("input")) { + LoadInput(node, reader, xml_node_data); + } else if (reader->name() == QStringLiteral("ptr")) { + quintptr ptr = reader->readElementText().toULongLong(); + xml_node_data.node_ptrs.insert(ptr, node); + } else if (reader->name() == QStringLiteral("label")) { + node->SetLabel(reader->readElementText()); + } else if (reader->name() == QStringLiteral("uuid")) { + xml_node_data.node_uuids.insert(node, QUuid::fromString(reader->readElementText())); + } else if (reader->name() == QStringLiteral("color")) { + node->SetOverrideColor(reader->readElementText().toInt()); + } else if (reader->name() == QStringLiteral("links")) { + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("link")) { + xml_node_data.block_links.append({node, reader->readElementText().toULongLong()}); + } else { + reader->skipCurrentElement(); + } + } + } else if (reader->name() == QStringLiteral("custom")) { + LoadNodeCustom(reader, node, xml_node_data); + } else if (reader->name() == QStringLiteral("connections")) { + // Load connections + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("connection")) { + QString param_id; + int ele = -1; + + XMLAttributeLoop(reader, attr) { + if (attr.name() == QStringLiteral("element")) { + ele = attr.value().toInt(); + } else if (attr.name() == QStringLiteral("input")) { + param_id = attr.value().toString(); + } + } + + QString output_node_id; + + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("output")) { + output_node_id = reader->readElementText(); + } else { + reader->skipCurrentElement(); + } + } + + xml_node_data.desired_connections.append({NodeInput(node, param_id, ele), output_node_id.toULongLong()}); + } else { + reader->skipCurrentElement(); + } + } + } else if (reader->name() == QStringLiteral("hints")) { + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("hint")) { + QString input; + int element = -1; + + XMLAttributeLoop(reader, attr) { + if (attr.name() == QStringLiteral("input")) { + input = attr.value().toString(); + } else if (attr.name() == QStringLiteral("element")) { + element = attr.value().toInt(); + } + } + + Node::ValueHint vh; + LoadValueHint(&vh, reader); + node->SetValueHintForInput(input, vh, element); + } else { + reader->skipCurrentElement(); + } + } + } else { + reader->skipCurrentElement(); + } + } +} + +void ProjectSerializer220403::SaveNode(Node *node, QXmlStreamWriter *writer) const +{ + writer->writeTextElement(QStringLiteral("ptr"), QString::number(reinterpret_cast(node))); + + writer->writeTextElement(QStringLiteral("label"), node->GetLabel()); + writer->writeTextElement(QStringLiteral("color"), QString::number(node->GetOverrideColor())); + + foreach (const QString& input, node->inputs()) { + writer->writeStartElement(QStringLiteral("input")); + + SaveInput(node, writer, input); + + writer->writeEndElement(); // input + } + + writer->writeStartElement(QStringLiteral("links")); + foreach (Node* link, node->links()) { + writer->writeTextElement(QStringLiteral("link"), QString::number(reinterpret_cast(link))); + } + writer->writeEndElement(); // links + + writer->writeStartElement(QStringLiteral("connections")); + for (auto it=node->input_connections().cbegin(); it!=node->input_connections().cend(); it++) { + writer->writeStartElement(QStringLiteral("connection")); + + writer->writeAttribute(QStringLiteral("input"), it->first.input()); + writer->writeAttribute(QStringLiteral("element"), QString::number(it->first.element())); + + writer->writeTextElement(QStringLiteral("output"), QString::number(reinterpret_cast(it->second))); + + writer->writeEndElement(); // connection + } + writer->writeEndElement(); // connections + + writer->writeStartElement(QStringLiteral("hints")); + for (auto it=node->GetValueHints().cbegin(); it!=node->GetValueHints().cend(); it++) { + writer->writeStartElement(QStringLiteral("hint")); + + writer->writeAttribute(QStringLiteral("input"), it.key().input); + writer->writeAttribute(QStringLiteral("element"), QString::number(it.key().element)); + + SaveValueHint(&it.value(), writer); + + writer->writeEndElement(); // hint + } + writer->writeEndElement(); + + writer->writeStartElement(QStringLiteral("custom")); + + SaveNodeCustom(writer, node); + + writer->writeEndElement(); // custom +} + +void ProjectSerializer220403::LoadInput(Node *node, QXmlStreamReader *reader, XMLNodeData &xml_node_data) const +{ + if (dynamic_cast(node)) { + // Ignore input of group + reader->skipCurrentElement(); + return; + } + + QString param_id; + + XMLAttributeLoop(reader, attr) { + if (attr.name() == QStringLiteral("id")) { + param_id = attr.value().toString(); + + break; + } + } + + if (param_id.isEmpty()) { + qWarning() << "Failed to load parameter with missing ID"; + reader->skipCurrentElement(); + return; + } + + if (!node->HasInputWithID(param_id)) { + qWarning() << "Failed to load parameter that didn't exist:" << param_id; + reader->skipCurrentElement(); + return; + } + + while (XMLReadNextStartElement(reader)) { + if (IsCancelled()) { + return; + } + + if (reader->name() == QStringLiteral("primary")) { + // Load primary immediate + LoadImmediate(reader, node, param_id, -1, xml_node_data); + } else if (reader->name() == QStringLiteral("subelements")) { + // Load subelements + XMLAttributeLoop(reader, attr) { + if (attr.name() == QStringLiteral("count")) { + node->InputArrayResize(param_id, attr.value().toInt()); + } + } + + int element_counter = 0; + + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("element")) { + LoadImmediate(reader, node, param_id, element_counter, xml_node_data); + + element_counter++; + } else { + reader->skipCurrentElement(); + } + } + } else { + reader->skipCurrentElement(); + } + } +} + +void ProjectSerializer220403::SaveInput(Node *node, QXmlStreamWriter *writer, const QString &id) const +{ + writer->writeAttribute(QStringLiteral("id"), id); + + writer->writeStartElement(QStringLiteral("primary")); + + SaveImmediate(writer, node, id, -1); + + writer->writeEndElement(); // primary + + writer->writeStartElement(QStringLiteral("subelements")); + + int arr_sz = node->InputArraySize(id); + + writer->writeAttribute(QStringLiteral("count"), QString::number(arr_sz)); + + for (int i=0; iwriteStartElement(QStringLiteral("element")); + + SaveImmediate(writer, node, id, i); + + writer->writeEndElement(); // element + } + + writer->writeEndElement(); // subelements +} + +void ProjectSerializer220403::LoadImmediate(QXmlStreamReader *reader, Node *node, const QString& input, int element, XMLNodeData &xml_node_data) const +{ + Q_UNUSED(xml_node_data) + + NodeValue::Type data_type = node->GetInputDataType(input); + + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("standard")) { + // Load standard value + int val_index = 0; + + while (XMLReadNextStartElement(reader)) { + if (IsCancelled()) { + return; + } + + if (reader->name() == QStringLiteral("track")) { + QVariant value_on_track; + + if (data_type == NodeValue::kVideoParams) { + VideoParams vp; + vp.Load(reader); + value_on_track = QVariant::fromValue(vp); + } else if (data_type == NodeValue::kAudioParams) { + AudioParams ap; + ap.Load(reader); + value_on_track = QVariant::fromValue(ap); + } else { + QString value_text = reader->readElementText(); + + if (!value_text.isEmpty()) { + value_on_track = NodeValue::StringToValue(data_type, value_text, true); + } + } + + node->SetSplitStandardValueOnTrack(input, val_index, value_on_track, element); + + val_index++; + } else { + reader->skipCurrentElement(); + } + } + } else if (reader->name() == QStringLiteral("keyframing") && node->IsInputKeyframable(input)) { + node->SetInputIsKeyframing(input, reader->readElementText().toInt(), element); + } else if (reader->name() == QStringLiteral("keyframes")) { + int track = 0; + + while (XMLReadNextStartElement(reader)) { + if (IsCancelled()) { + return; + } + + if (reader->name() == QStringLiteral("track")) { + while (XMLReadNextStartElement(reader)) { + if (IsCancelled()) { + return; + } + + if (reader->name() == QStringLiteral("key")) { + QString key_input; + rational key_time; + NodeKeyframe::Type key_type = NodeKeyframe::kLinear; + QVariant key_value; + QPointF key_in_handle; + QPointF key_out_handle; + + XMLAttributeLoop(reader, attr) { + if (IsCancelled()) { + return; + } + + if (attr.name() == QStringLiteral("input")) { + key_input = attr.value().toString(); + } else if (attr.name() == QStringLiteral("time")) { + key_time = rational::fromString(attr.value().toString()); + } else if (attr.name() == QStringLiteral("type")) { + key_type = static_cast(attr.value().toInt()); + } else if (attr.name() == QStringLiteral("inhandlex")) { + key_in_handle.setX(attr.value().toDouble()); + } else if (attr.name() == QStringLiteral("inhandley")) { + key_in_handle.setY(attr.value().toDouble()); + } else if (attr.name() == QStringLiteral("outhandlex")) { + key_out_handle.setX(attr.value().toDouble()); + } else if (attr.name() == QStringLiteral("outhandley")) { + key_out_handle.setY(attr.value().toDouble()); + } + } + + key_value = NodeValue::StringToValue(data_type, reader->readElementText(), true); + + NodeKeyframe* key = new NodeKeyframe(key_time, key_value, key_type, track, element, key_input, node); + key->set_bezier_control_in(key_in_handle); + key->set_bezier_control_out(key_out_handle); + } else { + reader->skipCurrentElement(); + } + } + + track++; + } else { + reader->skipCurrentElement(); + } + } + } else if (reader->name() == QStringLiteral("csinput")) { + node->SetInputProperty(input, QStringLiteral("col_input"), reader->readElementText()); + } else if (reader->name() == QStringLiteral("csdisplay")) { + node->SetInputProperty(input, QStringLiteral("col_display"), reader->readElementText()); + } else if (reader->name() == QStringLiteral("csview")) { + node->SetInputProperty(input, QStringLiteral("col_view"), reader->readElementText()); + } else if (reader->name() == QStringLiteral("cslook")) { + node->SetInputProperty(input, QStringLiteral("col_look"), reader->readElementText()); + } else { + reader->skipCurrentElement(); + } + } +} + +void ProjectSerializer220403::SaveImmediate(QXmlStreamWriter *writer, Node *node, const QString& input, int element) const +{ + if (node->IsInputKeyframable(input)) { + writer->writeTextElement(QStringLiteral("keyframing"), QString::number(node->IsInputKeyframing(input, element))); + } + + NodeValue::Type data_type = node->GetInputDataType(input); + + // Write standard value + writer->writeStartElement(QStringLiteral("standard")); + + foreach (const QVariant& v, node->GetSplitStandardValue(input, element)) { + writer->writeStartElement(QStringLiteral("track")); + + if (data_type == NodeValue::kVideoParams) { + v.value().Save(writer); + } else if (data_type == NodeValue::kAudioParams) { + v.value().Save(writer); + } else { + writer->writeCharacters(NodeValue::ValueToString(data_type, v, true)); + } + + writer->writeEndElement(); // track + } + + writer->writeEndElement(); // standard + + // Write keyframes + writer->writeStartElement(QStringLiteral("keyframes")); + + for (const NodeKeyframeTrack& track : node->GetKeyframeTracks(input, element)) { + writer->writeStartElement(QStringLiteral("track")); + + for (NodeKeyframe* key : track) { + writer->writeStartElement(QStringLiteral("key")); + + writer->writeAttribute(QStringLiteral("input"), key->input()); + writer->writeAttribute(QStringLiteral("time"), key->time().toString()); + writer->writeAttribute(QStringLiteral("type"), QString::number(key->type())); + writer->writeAttribute(QStringLiteral("inhandlex"), QString::number(key->bezier_control_in().x())); + writer->writeAttribute(QStringLiteral("inhandley"), QString::number(key->bezier_control_in().y())); + writer->writeAttribute(QStringLiteral("outhandlex"), QString::number(key->bezier_control_out().x())); + writer->writeAttribute(QStringLiteral("outhandley"), QString::number(key->bezier_control_out().y())); + + writer->writeCharacters(NodeValue::ValueToString(data_type, key->value(), true)); + + writer->writeEndElement(); // key + } + + writer->writeEndElement(); // track + } + + writer->writeEndElement(); // keyframes + + if (data_type == NodeValue::kColor) { + // Save color management information + writer->writeTextElement(QStringLiteral("csinput"), node->GetInputProperty(input, QStringLiteral("col_input")).toString()); + writer->writeTextElement(QStringLiteral("csdisplay"), node->GetInputProperty(input, QStringLiteral("col_display")).toString()); + writer->writeTextElement(QStringLiteral("csview"), node->GetInputProperty(input, QStringLiteral("col_view")).toString()); + writer->writeTextElement(QStringLiteral("cslook"), node->GetInputProperty(input, QStringLiteral("col_look")).toString()); + } +} + +bool ProjectSerializer220403::LoadPosition(QXmlStreamReader *reader, quintptr *node_ptr, Node::Position *pos) const +{ + bool got_node_ptr = false; + bool got_pos_x = false; + bool got_pos_y = false; + + XMLAttributeLoop(reader, attr) { + if (attr.name() == QStringLiteral("ptr")) { + *node_ptr = attr.value().toULongLong(); + got_node_ptr = true; + break; + } + } + + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("x")) { + pos->position.setX(reader->readElementText().toDouble()); + got_pos_x = true; + } else if (reader->name() == QStringLiteral("y")) { + pos->position.setY(reader->readElementText().toDouble()); + got_pos_y = true; + } else if (reader->name() == QStringLiteral("expanded")) { + pos->expanded = reader->readElementText().toInt(); + } else { + reader->skipCurrentElement(); + } + } + + return got_node_ptr && got_pos_x && got_pos_y; +} + +void ProjectSerializer220403::SavePosition(QXmlStreamWriter *writer, Node *node, const Node::Position &pos) const +{ + writer->writeAttribute(QStringLiteral("ptr"), QString::number(reinterpret_cast(node))); + + writer->writeTextElement(QStringLiteral("x"), QString::number(pos.position.x())); + writer->writeTextElement(QStringLiteral("y"), QString::number(pos.position.y())); + writer->writeTextElement(QStringLiteral("expanded"), QString::number(pos.expanded)); +} + +void ProjectSerializer220403::PostConnect(const XMLNodeData &xml_node_data) const +{ + foreach (const XMLNodeData::SerializedConnection& con, xml_node_data.desired_connections) { + if (Node *out = xml_node_data.node_ptrs.value(con.output_node)) { + Node::ConnectEdge(out, con.input); + } + } + + foreach (const XMLNodeData::BlockLink& l, xml_node_data.block_links) { + Node *a = l.block; + Node *b = xml_node_data.node_ptrs.value(l.link); + + Node::Link(a, b); + } + + foreach (const XMLNodeData::GroupLink &l, xml_node_data.group_input_links) { + if (Node *input_node = xml_node_data.node_ptrs.value(l.input_node)) { + NodeInput resolved(input_node, l.input_id, l.input_element); + + l.group->AddInputPassthrough(resolved, l.custom_flags, l.passthrough_id); + + if (!l.custom_name.isEmpty()) { + l.group->SetInputName(l.passthrough_id, l.custom_name); + } + + l.group->SetInputDataType(l.passthrough_id, l.data_type); + + l.group->SetDefaultValue(l.passthrough_id, l.default_val); + + for (auto it=l.custom_properties.cbegin(); it!=l.custom_properties.cend(); it++) { + l.group->SetInputProperty(l.passthrough_id, it.key(), it.value()); + } + } + } + + for (auto it=xml_node_data.group_output_links.cbegin(); it!=xml_node_data.group_output_links.cend(); it++) { + if (Node *output_node = xml_node_data.node_ptrs.value(it.value())) { + it.key()->SetOutputPassthrough(output_node); + } + } +} + +void ProjectSerializer220403::LoadNodeCustom(QXmlStreamReader *reader, Node *node, XMLNodeData &xml_node_data) const +{ + // Viewer-based nodes + if (ViewerOutput *viewer = dynamic_cast(node)) { + + Footage *footage = dynamic_cast(node); + + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("points")) { + LoadTimelinePoints(reader, viewer->GetTimelinePoints()); + } else if (reader->name() == QStringLiteral("timestamp") && footage) { + footage->set_timestamp(reader->readElementText().toLongLong()); + } else { + reader->skipCurrentElement(); + } + } + + } else if (Track *track = dynamic_cast(node)) { + + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("height")) { + track->SetTrackHeight(reader->readElementText().toDouble()); + } else { + reader->skipCurrentElement(); + } + } + + } else if (NodeGroup *group = dynamic_cast(node)) { + + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("inputpassthroughs")) { + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("inputpassthrough")) { + XMLNodeData::GroupLink link; + + link.group = group; + + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("node")) { + link.input_node = reader->readElementText().toULongLong(); + } else if (reader->name() == QStringLiteral("input")) { + link.input_id = reader->readElementText(); + } else if (reader->name() == QStringLiteral("element")) { + link.input_element = reader->readElementText().toInt(); + } else if (reader->name() == QStringLiteral("id")) { + link.passthrough_id = reader->readElementText(); + } else if (reader->name() == QStringLiteral("name")) { + link.custom_name = reader->readElementText(); + } else if (reader->name() == QStringLiteral("flags")) { + link.custom_flags = InputFlags(reader->readElementText().toULongLong()); + } else if (reader->name() == QStringLiteral("type")) { + link.data_type = NodeValue::GetDataTypeFromName(reader->readElementText()); + } else if (reader->name() == QStringLiteral("default")) { + link.default_val = NodeValue::StringToValue(link.data_type, reader->readElementText(), false); + } else if (reader->name() == QStringLiteral("properties")) { + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("property")) { + QString key; + QString value; + + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("key")) { + key = reader->readElementText(); + } else if (reader->name() == QStringLiteral("value")) { + value = reader->readElementText(); + } else { + reader->skipCurrentElement(); + } + } + + if (!key.isEmpty()) { + link.custom_properties.insert(key, value); + } + } else { + reader->skipCurrentElement(); + } + } + } else { + reader->skipCurrentElement(); + } + } + + xml_node_data.group_input_links.append(link); + } else { + reader->skipCurrentElement(); + } + } + } else if (reader->name() == QStringLiteral("outputpassthrough")) { + xml_node_data.group_output_links.insert(group, reader->readElementText().toULongLong()); + } else { + reader->skipCurrentElement(); + } + } + + } else { + reader->skipCurrentElement(); + } +} + +void ProjectSerializer220403::SaveNodeCustom(QXmlStreamWriter *writer, Node *node) const +{ + if (ViewerOutput *viewer = dynamic_cast(node)) { + // Write TimelinePoints + writer->writeStartElement(QStringLiteral("points")); + SaveTimelinePoints(writer, viewer->GetTimelinePoints()); + writer->writeEndElement(); // points + + if (Footage *footage = dynamic_cast(node)) { + writer->writeTextElement(QStringLiteral("timestamp"), QString::number(footage->timestamp())); + } + } else if (Track *track = dynamic_cast(node)) { + writer->writeTextElement(QStringLiteral("height"), QString::number(track->GetTrackHeight())); + } else if (NodeGroup *group = dynamic_cast(node)) { + writer->writeStartElement(QStringLiteral("inputpassthroughs")); + + foreach (const NodeGroup::InputPassthrough &ip, group->GetInputPassthroughs()) { + writer->writeStartElement(QStringLiteral("inputpassthrough")); + + // Reference to inner input + writer->writeTextElement(QStringLiteral("node"), QString::number(reinterpret_cast(ip.second.node()))); + writer->writeTextElement(QStringLiteral("input"), ip.second.input()); + writer->writeTextElement(QStringLiteral("element"), QString::number(ip.second.element())); + + // ID of passthrough + writer->writeTextElement(QStringLiteral("id"), ip.first); + + // Passthrough-specific details + NodeInput group_input(group, ip.first, ip.second.element()); + writer->writeTextElement(QStringLiteral("name"), group->Node::GetInputName(ip.first)); + + writer->writeTextElement(QStringLiteral("flags"), QString::number((group_input.GetFlags() & ~ip.second.GetFlags()).value())); + + NodeValue::Type data_type = group_input.GetDataType(); + writer->writeTextElement(QStringLiteral("type"), NodeValue::GetDataTypeName(data_type)); + + writer->writeTextElement(QStringLiteral("default"), NodeValue::ValueToString(data_type, group_input.GetDefaultValue(), false)); + + writer->writeStartElement(QStringLiteral("properties")); + auto p = group_input.GetProperties(); + for (auto it=p.cbegin(); it!=p.cend(); it++) { + writer->writeStartElement(QStringLiteral("property")); + writer->writeTextElement(QStringLiteral("key"), it.key()); + writer->writeTextElement(QStringLiteral("value"), it.value().toString()); + writer->writeEndElement(); // property + } + writer->writeEndElement(); // properties + + writer->writeEndElement(); // input + } + + writer->writeEndElement(); // inputpassthroughs + + writer->writeTextElement(QStringLiteral("outputpassthrough"), QString::number(reinterpret_cast(group->GetOutputPassthrough()))); + } +} + +void ProjectSerializer220403::LoadTimelinePoints(QXmlStreamReader *reader, TimelinePoints *points) const +{ + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("markers")) { + LoadMarkerList(reader, points->markers()); + } else if (reader->name() == QStringLiteral("workarea")) { + LoadWorkArea(reader, points->workarea()); + } else { + reader->skipCurrentElement(); + } + } +} + +void ProjectSerializer220403::SaveTimelinePoints(QXmlStreamWriter *writer, TimelinePoints *points) const +{ + writer->writeStartElement(QStringLiteral("workarea")); + SaveWorkArea(writer, points->workarea()); + writer->writeEndElement(); // workarea + + writer->writeStartElement(QStringLiteral("markers")); + SaveMarkerList(writer, points->markers()); + writer->writeEndElement(); // markers +} + +void ProjectSerializer220403::LoadWorkArea(QXmlStreamReader *reader, TimelineWorkArea *workarea) const +{ + rational range_in = workarea->in(); + rational range_out = workarea->out(); + + XMLAttributeLoop(reader, attr) { + if (attr.name() == QStringLiteral("enabled")) { + workarea->set_enabled(attr.value() != QStringLiteral("0")); + } else if (attr.name() == QStringLiteral("in")) { + range_in = rational::fromString(attr.value().toString()); + } else if (attr.name() == QStringLiteral("out")) { + range_out = rational::fromString(attr.value().toString()); + } + } + + TimeRange loaded_workarea(range_in, range_out); + + if (loaded_workarea != workarea->range()) { + workarea->set_range(loaded_workarea); + } + + reader->skipCurrentElement(); +} + +void ProjectSerializer220403::SaveWorkArea(QXmlStreamWriter *writer, TimelineWorkArea *workarea) const +{ + writer->writeAttribute(QStringLiteral("enabled"), QString::number(workarea->enabled())); + writer->writeAttribute(QStringLiteral("in"), workarea->in().toString()); + writer->writeAttribute(QStringLiteral("out"), workarea->out().toString()); +} + +void ProjectSerializer220403::LoadMarkerList(QXmlStreamReader *reader, TimelineMarkerList *markers) const +{ + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("marker")) { + QString name; + rational in, out; + + XMLAttributeLoop(reader, attr) { + if (attr.name() == QStringLiteral("name")) { + name = attr.value().toString(); + } else if (attr.name() == QStringLiteral("in")) { + in = rational::fromString(attr.value().toString()); + } else if (attr.name() == QStringLiteral("out")) { + out = rational::fromString(attr.value().toString()); + } + } + + markers->AddMarker(TimeRange(in, out), name); + } + + reader->skipCurrentElement(); + } +} + +void ProjectSerializer220403::SaveMarkerList(QXmlStreamWriter *writer, TimelineMarkerList *markers) const +{ + foreach (TimelineMarker* marker, markers->list()) { + writer->writeStartElement(QStringLiteral("marker")); + + writer->writeAttribute(QStringLiteral("name"), marker->name()); + + writer->writeAttribute(QStringLiteral("in"), marker->time().in().toString()); + writer->writeAttribute(QStringLiteral("out"), marker->time().out().toString()); + + writer->writeEndElement(); // marker + } +} + +void ProjectSerializer220403::LoadValueHint(Node::ValueHint *hint, QXmlStreamReader *reader) const +{ + QVector types; + + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("types")) { + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("type")) { + types.append(static_cast(reader->readElementText().toInt())); + } else { + reader->skipCurrentElement(); + } + } + } else if (reader->name() == QStringLiteral("index")) { + hint->set_index(reader->readElementText().toInt()); + } else if (reader->name() == QStringLiteral("tag")) { + hint->set_tag(reader->readElementText()); + } else { + reader->skipCurrentElement(); + } + } + + hint->set_type(types); +} + +void ProjectSerializer220403::SaveValueHint(const Node::ValueHint *hint, QXmlStreamWriter *writer) const +{ + writer->writeStartElement(QStringLiteral("types")); + + for (auto it=hint->types().cbegin(); it!=hint->types().cend(); it++) { + writer->writeTextElement(QStringLiteral("type"), QString::number(*it)); + } + + writer->writeEndElement(); // types + + writer->writeTextElement(QStringLiteral("index"), QString::number(hint->index())); + + writer->writeTextElement(QStringLiteral("tag"), hint->tag()); +} + +} diff --git a/app/node/project/serializer/serializer220403.h b/app/node/project/serializer/serializer220403.h new file mode 100644 index 000000000..f6a1b939f --- /dev/null +++ b/app/node/project/serializer/serializer220403.h @@ -0,0 +1,119 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#ifndef SERIALIZER220403_H +#define SERIALIZER220403_H + +#include "serializer.h" + +namespace olive { + +class ProjectSerializer220403 : public ProjectSerializer +{ +public: + ProjectSerializer220403() = default; + +protected: + virtual LoadData Load(Project *project, QXmlStreamReader *reader, void *reserved) const override; + + virtual void Save(QXmlStreamWriter *writer, const SaveData &data, void *reserved) const override; + + virtual uint Version() const override + { + return 220403; + } + +private: + struct XMLNodeData { + struct SerializedConnection { + NodeInput input; + quintptr output_node; + }; + + struct BlockLink { + Node* block; + quintptr link; + }; + + struct GroupLink { + NodeGroup *group; + QString passthrough_id; + quintptr input_node; + QString input_id; + int input_element; + QString custom_name; + InputFlags custom_flags; + NodeValue::Type data_type; + QVariant default_val; + QHash custom_properties; + }; + + QHash node_ptrs; + QList desired_connections; + QList block_links; + QVector group_input_links; + QHash group_output_links; + QHash node_uuids; + + }; + + void LoadNode(Node *node, XMLNodeData &xml_node_data, QXmlStreamReader *reader) const; + + void SaveNode(Node *node, QXmlStreamWriter *writer) const; + + void LoadInput(Node *node, QXmlStreamReader* reader, XMLNodeData &xml_node_data) const; + + void SaveInput(Node *node, QXmlStreamWriter* writer, const QString& id) const; + + void LoadImmediate(QXmlStreamReader *reader, Node *node, const QString& input, int element, XMLNodeData& xml_node_data) const; + + void SaveImmediate(QXmlStreamWriter *writer, Node *node, const QString &input, int element) const; + + bool LoadPosition(QXmlStreamReader *reader, quintptr *node_ptr, Node::Position *pos) const; + + void SavePosition(QXmlStreamWriter *writer, Node *node, const Node::Position &pos) const; + + void PostConnect(const XMLNodeData &xml_node_data) const; + + void LoadNodeCustom(QXmlStreamReader *reader, Node *node, XMLNodeData &xml_node_data) const; + + void SaveNodeCustom(QXmlStreamWriter *writer, Node *node) const; + + void LoadTimelinePoints(QXmlStreamReader *reader, TimelinePoints *points) const; + + void SaveTimelinePoints(QXmlStreamWriter *writer, TimelinePoints *points) const; + + void LoadWorkArea(QXmlStreamReader *reader, TimelineWorkArea *workarea) const; + + void SaveWorkArea(QXmlStreamWriter *writer, TimelineWorkArea *workarea) const; + + void LoadMarkerList(QXmlStreamReader *reader, TimelineMarkerList *markers) const; + + void SaveMarkerList(QXmlStreamWriter *writer, TimelineMarkerList *markers) const; + + void LoadValueHint(Node::ValueHint *hint, QXmlStreamReader *reader) const; + + void SaveValueHint(const Node::ValueHint *hint, QXmlStreamWriter *writer) const; + +}; + +} + +#endif // SERIALIZER220403_H diff --git a/app/node/value.cpp b/app/node/value.cpp index 3cc567a92..d3fa7373b 100644 --- a/app/node/value.cpp +++ b/app/node/value.cpp @@ -141,6 +141,7 @@ QByteArray NodeValue::ValueToBytes(NodeValue::Type type, const QVariant &value) case kShaderJob: case kSampleJob: case kGenerateJob: + case kDataTypeCount: break; } @@ -357,12 +358,78 @@ QString NodeValue::GetPrettyDataTypeName(Type type) case kShaderJob: case kSampleJob: case kGenerateJob: + case kDataTypeCount: break; } return QCoreApplication::translate("NodeValue", "Unknown"); } +QString NodeValue::GetDataTypeName(Type type) +{ + switch (type) { + case kNone: + return QStringLiteral("none"); + case kInt: + return QStringLiteral("int"); + case kCombo: + return QStringLiteral("combo"); + case kFloat: + return QStringLiteral("float"); + case kRational: + return QStringLiteral("rational"); + case kBoolean: + return QStringLiteral("bool"); + case kColor: + return QStringLiteral("color"); + case kMatrix: + return QStringLiteral("matrix"); + case kText: + return QStringLiteral("text"); + case kFont: + return QStringLiteral("font"); + case kFile: + return QStringLiteral("file"); + case kTexture: + return QStringLiteral("texture"); + case kSamples: + return QStringLiteral("samples"); + case kVec2: + return QStringLiteral("vec2"); + case kVec3: + return QStringLiteral("vec3"); + case kVec4: + return QStringLiteral("vec4"); + case kBezier: + return QStringLiteral("bezier"); + case kVideoParams: + return QStringLiteral("vparam"); + case kAudioParams: + return QStringLiteral("aparam"); + case kFootageJob: + case kShaderJob: + case kSampleJob: + case kGenerateJob: + case kDataTypeCount: + break; + } + + return QString(); +} + +NodeValue::Type NodeValue::GetDataTypeFromName(const QString &n) +{ + // Slow but easy to maintain + for (int i=0; i(i); + if (GetDataTypeName(t) == n) { + return t; + } + } + + return NodeValue::kNone; +} + NodeValue NodeValueTable::GetWithMeta(const QVector &type, const QString &tag) const { int value_index = GetValueIndex(type, tag); diff --git a/app/node/value.h b/app/node/value.h index 518517b78..12fb91a33 100644 --- a/app/node/value.h +++ b/app/node/value.h @@ -206,7 +206,12 @@ public: * take place. This value will usually be taken from a table and a kSamples value will be * pushed to take its place. */ - kGenerateJob + kGenerateJob, + + /** + * End of list + */ + kDataTypeCount }; static const QVector kNumber; @@ -261,6 +266,9 @@ public: static QString GetPrettyDataTypeName(Type type); + static QString GetDataTypeName(Type type); + static NodeValue::Type GetDataTypeFromName(const QString &n); + static QString ValueToString(Type data_type, const QVariant& value, bool value_is_a_key_track); static QVariant StringToValue(Type data_type, const QString &string, bool value_is_a_key_track); diff --git a/app/render/opengl/openglrenderer.cpp b/app/render/opengl/openglrenderer.cpp index 6464580cf..810b022e6 100644 --- a/app/render/opengl/openglrenderer.cpp +++ b/app/render/opengl/openglrenderer.cpp @@ -523,6 +523,7 @@ void OpenGLRenderer::Blit(QVariant s, ShaderJob job, Texture *destination, Video case NodeValue::kFootageJob: case NodeValue::kBezier: case NodeValue::kNone: + case NodeValue::kDataTypeCount: break; } } diff --git a/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp b/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp index feca63029..29c35657b 100644 --- a/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp +++ b/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp @@ -92,6 +92,7 @@ void NodeParamViewWidgetBridge::CreateWidgets() case NodeValue::kGenerateJob: case NodeValue::kVideoParams: case NodeValue::kAudioParams: + case NodeValue::kDataTypeCount: break; case NodeValue::kInt: { @@ -245,6 +246,7 @@ void NodeParamViewWidgetBridge::WidgetCallback() case NodeValue::kGenerateJob: case NodeValue::kVideoParams: case NodeValue::kAudioParams: + case NodeValue::kDataTypeCount: break; case NodeValue::kInt: { @@ -421,6 +423,7 @@ void NodeParamViewWidgetBridge::UpdateWidgetValues() case NodeValue::kGenerateJob: case NodeValue::kVideoParams: case NodeValue::kAudioParams: + case NodeValue::kDataTypeCount: break; case NodeValue::kInt: { diff --git a/app/widget/nodeview/nodeview.cpp b/app/widget/nodeview/nodeview.cpp index 92b8f0d03..2c1ffb3e5 100644 --- a/app/widget/nodeview/nodeview.cpp +++ b/app/widget/nodeview/nodeview.cpp @@ -261,7 +261,7 @@ void NodeView::Duplicate() for (auto it=src_group->GetInputPassthroughs().cbegin(); it!=src_group->GetInputPassthroughs().cend(); it++) { NodeInput input = it->second; input.set_node(new_nodes.at(selected.indexOf(input.node()))); - dst_group->AddInputPassthrough(input); + dst_group->AddInputPassthrough(input, InputFlags(), it->first); } dst_group->SetOutputPassthrough(new_nodes.at(selected.indexOf(src_group->GetOutputPassthrough()))); From 38c8bd4b0d4fe21ac44d4e2dac1477ccb5bd337f Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 4 Apr 2022 22:13:08 -0700 Subject: [PATCH 074/114] paramview: implemented passthrough editing --- app/panel/node/node.cpp | 3 +- app/panel/node/node.h | 16 ++--- app/panel/param/param.cpp | 4 +- app/panel/param/param.h | 12 +--- app/widget/nodeparamview/nodeparamview.cpp | 74 +++++++++++++++------- app/widget/nodeparamview/nodeparamview.h | 33 +++------- app/widget/nodeview/nodeview.cpp | 61 +++++++++++++++++- app/widget/nodeview/nodeview.h | 22 ++++++- app/window/mainwindow/mainwindow.cpp | 21 ++---- app/window/mainwindow/mainwindow.h | 2 +- 10 files changed, 159 insertions(+), 89 deletions(-) diff --git a/app/panel/node/node.cpp b/app/panel/node/node.cpp index d6abc3a1d..5e694867b 100644 --- a/app/panel/node/node.cpp +++ b/app/panel/node/node.cpp @@ -31,7 +31,8 @@ NodePanel::NodePanel(QWidget *parent) : // Connect node view signals to this panel - MAY REMOVE connect(node_widget_->view(), &NodeView::NodesSelected, this, &NodePanel::NodesSelected); connect(node_widget_->view(), &NodeView::NodesDeselected, this, &NodePanel::NodesDeselected); - connect(node_widget_->view(), &NodeView::NodeGroupOpenRequested, this, &NodePanel::NodeGroupOpenRequested); + connect(node_widget_->view(), &NodeView::NodeGroupOpened, this, &NodePanel::NodeGroupOpened); + connect(node_widget_->view(), &NodeView::NodeGroupClosed, this, &NodePanel::NodeGroupClosed); // Set it as the main widget of this panel SetWidgetWithPadding(node_widget_); diff --git a/app/panel/node/node.h b/app/panel/node/node.h index f1dae048f..b9a5ebf35 100644 --- a/app/panel/node/node.h +++ b/app/panel/node/node.h @@ -40,10 +40,9 @@ public: return node_widget_; } - const QVector &GetContexts() const - { - return node_widget_->view()->GetContexts(); - } + const QVector &GetContexts() const { return node_widget_->view()->GetContexts(); } + + bool IsGroupOverlay() const { return node_widget_->view()->IsGroupOverlay(); } void SetContexts(const QVector &nodes) { @@ -55,11 +54,6 @@ public: node_widget_->view()->CloseContextsBelongingToProject(project); } - const QVector &GetCurrentContexts() const - { - return node_widget_->view()->GetCurrentContexts(); - } - virtual void SelectAll() override { node_widget_->view()->SelectAll(); @@ -122,7 +116,9 @@ signals: void NodesDeselected(const QVector& nodes); - void NodeGroupOpenRequested(NodeGroup *group); + void NodeGroupOpened(NodeGroup *group); + + void NodeGroupClosed(); private: virtual void Retranslate() override diff --git a/app/panel/param/param.cpp b/app/panel/param/param.cpp index 8504a86b4..5f51b21e7 100644 --- a/app/panel/param/param.cpp +++ b/app/panel/param/param.cpp @@ -61,9 +61,9 @@ void ParamPanel::DeselectAll() static_cast(GetTimeBasedWidget())->DeselectAll(); } -void ParamPanel::SetContexts(const QVector &contexts) +void ParamPanel::SetContexts(const QVector &contexts, bool group_mode) { - static_cast(GetTimeBasedWidget())->SetContexts(contexts); + static_cast(GetTimeBasedWidget())->SetContexts(contexts, group_mode); } void ParamPanel::Retranslate() diff --git a/app/panel/param/param.h b/app/panel/param/param.h index 9f2336eb1..c45a981cf 100644 --- a/app/panel/param/param.h +++ b/app/panel/param/param.h @@ -43,16 +43,6 @@ public: return GetParamView()->GetContexts(); } - void SetCreateCheckBoxes(NodeParamViewCheckBoxBehavior e) - { - GetParamView()->SetCreateCheckBoxes(e); - } - - void SetIgnoreNodeFlags(bool e) - { - GetParamView()->SetIgnoreNodeFlags(e); - } - void CloseContextsBelongingToProject(Project *p) { GetParamView()->CloseContextsBelongingToProject(p); @@ -68,7 +58,7 @@ public slots: virtual void DeselectAll() override; - void SetContexts(const QVector &contexts); + void SetContexts(const QVector &contexts, bool group_mode); signals: void RequestSelectNode(const QVector& target); diff --git a/app/widget/nodeparamview/nodeparamview.cpp b/app/widget/nodeparamview/nodeparamview.cpp index 48339d4a3..865ab2982 100644 --- a/app/widget/nodeparamview/nodeparamview.cpp +++ b/app/widget/nodeparamview/nodeparamview.cpp @@ -37,9 +37,8 @@ NodeParamView::NodeParamView(bool create_keyframe_view, QWidget *parent) : super(true, false, parent), last_scroll_val_(0), focused_node_(nullptr), - create_checkboxes_(kNoCheckBoxes), time_target_(nullptr), - ignore_flags_(false) + group_mode_(false) { // Create horizontal layout to place scroll area in (and keyframe editing eventually) QHBoxLayout* layout = new QHBoxLayout(this); @@ -174,7 +173,7 @@ void NodeParamView::CloseContextsBelongingToProject(Project *p) } } - SetContexts(new_contexts); + SetContexts(new_contexts, group_mode_); } /*void NodeParamView::SelectNodes(const QVector &nodes) @@ -236,15 +235,7 @@ void NodeParamView::DeselectNodes(const QVector &nodes) } }*/ -void NodeParamView::SetInputChecked(const NodeInput &input, bool e) -{ - input_checked_.insert(input, e); - foreach (NodeParamViewContext *ctx, context_items_) { - ctx->SetInputChecked(input, e); - } -} - -void NodeParamView::SetContexts(const QVector &contexts) +void NodeParamView::SetContexts(const QVector &contexts, bool group_mode) { //TIME_THIS_FUNCTION; @@ -258,6 +249,9 @@ void NodeParamView::SetContexts(const QVector &contexts) } contexts_ = contexts; + group_mode_ = group_mode; + + Q_ASSERT((contexts_.size() == 1 && dynamic_cast(contexts_.first())) || !group_mode_ || contexts_.isEmpty()); foreach (Node *ctx, contexts_) { // Queued so that if any further work is done in connecting this node to the context, it'll be @@ -285,6 +279,17 @@ void NodeParamView::SetContexts(const QVector &contexts) } } + if (group_mode_) { + // Check inputs that have been passed through + NodeGroup *group = static_cast(contexts_.first()); + for (auto it=group->GetInputPassthroughs().cbegin(); it!=group->GetInputPassthroughs().cend(); it++) { + GroupInputPassthroughAdded(group, it->second); + } + + connect(group, &NodeGroup::InputPassthroughAdded, this, &NodeParamView::GroupInputPassthroughAdded); + connect(group, &NodeGroup::InputPassthroughRemoved, this, &NodeParamView::GroupInputPassthroughRemoved); + } + foreach (NodeParamViewContext *ctx, context_items_) { SortItemsInContext(ctx); } @@ -386,24 +391,16 @@ void NodeParamView::QueueKeyframePositionUpdate() void NodeParamView::AddNode(Node *n, NodeParamViewContext *context) { - if ((n->GetFlags() & Node::kDontShowInParamView) && !ignore_flags_) { + if ((n->GetFlags() & Node::kDontShowInParamView) && !group_mode_) { return; } - NodeParamViewItem* item = new NodeParamViewItem(n, create_checkboxes_, context); + NodeParamViewItem* item = new NodeParamViewItem(n, group_mode_ ? kCheckBoxesOnNonConnected : kNoCheckBoxes, context); connect(item, &NodeParamViewItem::RequestSetTime, this, &NodeParamView::SetTimeAndSignal); connect(item, &NodeParamViewItem::RequestSelectNode, this, &NodeParamView::RequestSelectNode); connect(item, &NodeParamViewItem::PinToggled, this, &NodeParamView::PinNode); - connect(item, &NodeParamViewItem::InputCheckedChanged, this, &NodeParamView::SetInputChecked); - - if (create_checkboxes_) { - for (auto it=input_checked_.cbegin(); it!=input_checked_.cend(); it++) { - if (it.key().node() == n) { - item->SetInputChecked(it.key(), it.value()); - } - } - } + connect(item, &NodeParamViewItem::InputCheckedChanged, this, &NodeParamView::InputCheckBoxChanged); item->SetTimeTarget(GetTimeTarget()); item->SetTimebase(timebase()); @@ -616,4 +613,35 @@ void NodeParamView::NodeAddedToContext(Node *n) SortItemsInContext(item); } +void NodeParamView::InputCheckBoxChanged(const NodeInput &input, bool e) +{ + NodeGroup *group = static_cast(contexts_.first()); + + if (e) { + group->AddInputPassthrough(input); + } else { + group->RemoveInputPassthrough(input); + } +} + +void NodeParamView::GroupInputPassthroughAdded(NodeGroup *group, const NodeInput &input) +{ + foreach (NodeParamViewContext *pvctx, context_items_) { + NodeParamViewItem *item = pvctx->GetItems().value(input.node()); + if (item) { + item->SetInputChecked(input, true); + } + } +} + +void NodeParamView::GroupInputPassthroughRemoved(NodeGroup *group, const NodeInput &input) +{ + foreach (NodeParamViewContext *pvctx, context_items_) { + NodeParamViewItem *item = pvctx->GetItems().value(input.node()); + if (item) { + item->SetInputChecked(input, false); + } + } +} + } diff --git a/app/widget/nodeparamview/nodeparamview.h b/app/widget/nodeparamview/nodeparamview.h index 6a00883fc..ceceb58a5 100644 --- a/app/widget/nodeparamview/nodeparamview.h +++ b/app/widget/nodeparamview/nodeparamview.h @@ -45,16 +45,6 @@ public: virtual ~NodeParamView() override; - void SetCreateCheckBoxes(NodeParamViewCheckBoxBehavior e) - { - create_checkboxes_ = e; - } - - bool IsInputChecked(const NodeInput &input) const - { - return input_checked_.value(input); - } - void CloseContextsBelongingToProject(Project *p); Node* GetTimeTarget() const; @@ -71,11 +61,6 @@ public: keyframe_view_->DeselectAll(); } - void SetIgnoreNodeFlags(bool e) - { - ignore_flags_ = e; - } - void SelectNodes(const QVector &nodes); void DeselectNodes(const QVector &nodes); @@ -85,9 +70,7 @@ public: } public slots: - void SetInputChecked(const NodeInput &input, bool e); - - void SetContexts(const QVector &contexts); + void SetContexts(const QVector &contexts, bool group_mode); void UpdateElementY(); @@ -136,16 +119,12 @@ private: NodeParamViewItem* focused_node_; - NodeParamViewCheckBoxBehavior create_checkboxes_; - Node *time_target_; - QHash input_checked_; - - bool ignore_flags_; - QVector contexts_; + bool group_mode_; + private slots: void UpdateGlobalScrollBar(); @@ -157,6 +136,12 @@ private slots: void NodeAddedToContext(Node *n); + void InputCheckBoxChanged(const NodeInput &input, bool e); + + void GroupInputPassthroughAdded(olive::NodeGroup *group, const olive::NodeInput &input); + + void GroupInputPassthroughRemoved(olive::NodeGroup *group, const olive::NodeInput &input); + }; } diff --git a/app/widget/nodeview/nodeview.cpp b/app/widget/nodeview/nodeview.cpp index 2c1ffb3e5..044fd7a15 100644 --- a/app/widget/nodeview/nodeview.cpp +++ b/app/widget/nodeview/nodeview.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include #include @@ -32,6 +33,7 @@ #include "node/factory.h" #include "node/group/group.h" #include "node/traverser.h" +#include "ui/icons/icons.h" #include "widget/menu/menushared.h" #include "widget/timebased/timebasedview.h" @@ -47,6 +49,7 @@ NodeView::NodeView(QWidget *parent) : create_edge_(nullptr), create_edge_output_item_(nullptr), create_edge_input_item_(nullptr), + overlay_view_(nullptr), scale_(1.0) { setScene(&scene_); @@ -83,6 +86,10 @@ NodeView::~NodeView() void NodeView::SetContexts(const QVector &nodes) { + if (overlay_view_) { + CloseOverlay(); + } + // Remove contexts that are no longer in the list foreach (Node *n, contexts_) { if (!nodes.contains(n)) { @@ -350,6 +357,8 @@ void NodeView::keyPressEvent(QKeyEvent *event) break; } + emit EscPressed(); + /* fall through */ default: super::keyPressEvent(event); @@ -657,6 +666,10 @@ void NodeView::resizeEvent(QResizeEvent *event) super::resizeEvent(event); RepositionMiniMap(); + + if (overlay_view_) { + ResizeOverlay(); + } } void NodeView::UpdateSelectionCache() @@ -1284,7 +1297,37 @@ void NodeView::ShowNodeProperties() Node *first_node = selected_nodes_.first(); if (NodeGroup *group = dynamic_cast(first_node)) { - emit NodeGroupOpenRequested(group); + if (!overlay_view_) { + overlay_view_ = new NodeView(this); + overlay_view_->show(); + + QPushButton *overlay_close_btn = new QPushButton(overlay_view_); + overlay_close_btn->setIcon(icon::Error); + int offset = overlay_close_btn->sizeHint().width()/2; + overlay_close_btn->move(offset, offset); + overlay_close_btn->show(); + + connect(overlay_view_, &NodeView::NodesSelected, this, &NodeView::NodesSelected); + connect(overlay_view_, &NodeView::NodesDeselected, this, &NodeView::NodesDeselected); + connect(overlay_view_, &NodeView::NodeGroupOpened, this, &NodeView::NodeGroupOpened); + connect(overlay_view_, &NodeView::NodeGroupClosed, this, &NodeView::NodeGroupClosed); + connect(overlay_view_, &NodeView::EscPressed, this, &NodeView::CloseOverlay); + connect(overlay_close_btn, &QPushButton::clicked, this, &NodeView::CloseOverlay); + + const QColor &bgcol = overlay_view_->palette().base().color(); + overlay_view_->setStyleSheet(QStringLiteral("QGraphicsView { background: rgba(%1, %2, %3, 0.8); }").arg(QString::number(bgcol.red()), QString::number(bgcol.green()), QString::number(bgcol.blue()))); + + overlay_close_btn->setStyleSheet(QStringLiteral("background: transparent; border: none;")); + } + overlay_view_->SetContexts({group}); + ResizeOverlay(); + QMetaObject::invokeMethod(overlay_view_, &NodeView::CenterOnItemsBoundingRect, Qt::QueuedConnection); + overlay_view_->setFocus(); + + emit NodesDeselected(selected_nodes_); + overlay_view_->SelectAll(); + + emit NodeGroupOpened(group); } else { LabelSelectedNodes(); } @@ -1320,6 +1363,17 @@ void NodeView::ItemAboutToBeDeleted(NodeViewItem *item) } } +void NodeView::CloseOverlay() +{ + if (overlay_view_->overlay_view_) { + overlay_view_->CloseOverlay(); + } + + overlay_view_->deleteLater(); + overlay_view_ = nullptr; + emit NodeGroupClosed(); +} + void NodeView::AddContext(Node *n) { NodeViewContext *ctx = scene_.AddContext(n); @@ -1477,6 +1531,11 @@ void NodeView::PostPaste(const QVector &new_nodes, const Node::PositionM SetAttachedItems(new_attached); } +void NodeView::ResizeOverlay() +{ + overlay_view_->resize(this->size()); +} + void NodeView::SetAttachedItems(const QVector &items) { // Detach anything currently attached diff --git a/app/widget/nodeview/nodeview.h b/app/widget/nodeview/nodeview.h index 79964a998..887e52cb7 100644 --- a/app/widget/nodeview/nodeview.h +++ b/app/widget/nodeview/nodeview.h @@ -54,7 +54,16 @@ public: const QVector &GetContexts() const { - return contexts_; + if (overlay_view_) { + return overlay_view_->GetContexts(); + } else { + return contexts_; + } + } + + bool IsGroupOverlay() const + { + return overlay_view_; } void CloseContextsBelongingToProject(Project *project); @@ -109,7 +118,10 @@ signals: void NodesDeselected(const QVector& nodes); - void NodeGroupOpenRequested(NodeGroup *group); + void NodeGroupOpened(NodeGroup *group); + void NodeGroupClosed(); + + void EscPressed(); protected: virtual void keyPressEvent(QKeyEvent *event) override; @@ -169,6 +181,8 @@ private: void PostPaste(const QVector &new_nodes, const Node::PositionMap &map); + void ResizeOverlay(); + NodeViewMiniMap *minimap_; struct AttachedItem { @@ -202,6 +216,8 @@ private: QMap dragging_items_; + NodeView* overlay_view_; + double scale_; static const double kMinimumScale; @@ -252,6 +268,8 @@ private slots: void ItemAboutToBeDeleted(NodeViewItem *item); + void CloseOverlay(); + }; } diff --git a/app/window/mainwindow/mainwindow.cpp b/app/window/mainwindow/mainwindow.cpp index a05d9e52e..e8d5b700b 100644 --- a/app/window/mainwindow/mainwindow.cpp +++ b/app/window/mainwindow/mainwindow.cpp @@ -94,7 +94,8 @@ MainWindow::MainWindow(QWidget *parent) : // Make node-related connections connect(node_panel_, &NodePanel::NodesSelected, param_panel_, &ParamPanel::SelectNodes); connect(node_panel_, &NodePanel::NodesDeselected, param_panel_, &ParamPanel::DeselectNodes); - connect(node_panel_, &NodePanel::NodeGroupOpenRequested, this, &MainWindow::NodeGroupRequested); + connect(node_panel_, &NodePanel::NodeGroupOpened, this, &MainWindow::NodePanelGroupOpenedOrClosed); + connect(node_panel_, &NodePanel::NodeGroupClosed, this, &MainWindow::NodePanelGroupOpenedOrClosed); connect(param_panel_, &ParamPanel::RequestSelectNode, this, [this](const QVector& target){ node_panel_->Select(target, true); }); @@ -455,15 +456,10 @@ void MainWindow::StatusBarDoubleClicked() task_man_panel_->raise(); } -void MainWindow::NodeGroupRequested(NodeGroup *group) +void MainWindow::NodePanelGroupOpenedOrClosed() { - NodePanel *panel = new NodePanel(this); - panel->setFloating(true); - panel->setVisible(true); - panel->SetContexts({group}); - panel->SetSignalInsteadOfClose(true); - addDockWidget(Qt::LeftDockWidgetArea, panel); - connect(panel, &NodePanel::CloseRequested, panel, &NodePanel::deleteLater); + NodePanel *p = static_cast(sender()); + param_panel_->SetContexts(p->GetContexts(), p->IsGroupOverlay()); } void MainWindow::TimelinePanelSelectionChanged(const QVector &blocks) @@ -732,7 +728,7 @@ void MainWindow::UpdateNodePanelContextFromTimelinePanel(TimelinePanel *panel) } node_panel_->SetContexts(context); - param_panel_->SetContexts(context); + param_panel_->SetContexts(context, false); } void MainWindow::FocusedPanelChanged(PanelWidget *panel) @@ -747,10 +743,7 @@ void MainWindow::FocusedPanelChanged(PanelWidget *panel) const QVector &new_ctxs = node_panel->GetContexts(); if (new_ctxs != param_panel_->GetContexts()) { - bool is_default_node_panel = node_panel == node_panel_; - param_panel_->SetIgnoreNodeFlags(!is_default_node_panel); - param_panel_->SetCreateCheckBoxes(is_default_node_panel ? kNoCheckBoxes : kCheckBoxesOnNonConnected); - param_panel_->SetContexts(node_panel->GetContexts()); + param_panel_->SetContexts(new_ctxs, node_panel->IsGroupOverlay()); } } else if (TimelinePanel* timeline = dynamic_cast(panel)) { // Signal timeline focus diff --git a/app/window/mainwindow/mainwindow.h b/app/window/mainwindow/mainwindow.h index 1bcd5f10c..e027e08e6 100644 --- a/app/window/mainwindow/mainwindow.h +++ b/app/window/mainwindow/mainwindow.h @@ -185,7 +185,7 @@ private slots: void StatusBarDoubleClicked(); - void NodeGroupRequested(NodeGroup *group); + void NodePanelGroupOpenedOrClosed(); #ifdef Q_OS_LINUX void ShowNouveauWarning(); From e0bfbf12b23cf5d4b9f44cc3230e0a046773ddb6 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 4 Apr 2022 23:34:34 -0700 Subject: [PATCH 075/114] groups: improved functionality Various improvements and fixes to groups --- app/node/effect/opacity/opacityeffect.cpp | 47 ++++++++++++++----- app/node/effect/opacity/opacityeffect.h | 12 +++-- app/node/group/group.cpp | 6 +-- app/node/group/group.h | 2 +- app/node/node.cpp | 11 +++++ app/node/node.h | 1 + .../project/serializer/serializer220403.cpp | 4 +- app/shaders/opacity.frag | 11 +++++ app/widget/nodeparamview/nodeparamview.cpp | 2 +- app/widget/nodeview/nodeview.cpp | 47 +++++++++++++++---- app/widget/nodeview/nodeview.h | 2 + 11 files changed, 112 insertions(+), 33 deletions(-) create mode 100644 app/shaders/opacity.frag diff --git a/app/node/effect/opacity/opacityeffect.cpp b/app/node/effect/opacity/opacityeffect.cpp index f951b422b..b8ac2d017 100644 --- a/app/node/effect/opacity/opacityeffect.cpp +++ b/app/node/effect/opacity/opacityeffect.cpp @@ -5,7 +5,10 @@ namespace olive { -#define super NodeGroup +#define super Node + +const QString OpacityEffect::kTextureInput = QStringLiteral("tex_in"); +const QString OpacityEffect::kValueInput = QStringLiteral("opacity_in"); OpacityEffect::OpacityEffect() { @@ -15,24 +18,44 @@ OpacityEffect::OpacityEffect() SetNodePositionInContext(math, QPointF(0, 0)); - tex_in_pass_ = AddInputPassthrough(NodeInput(math, MathNode::kParamAIn), InputFlags(kInputFlagNotKeyframable)); - SetInputDataType(tex_in_pass_, NodeValue::kTexture); + AddInput(kTextureInput, NodeValue::kTexture, InputFlags(kInputFlagNotKeyframable)); - value_in_pass_ = AddInputPassthrough(NodeInput(math, MathNode::kParamBIn)); - SetInputProperty(value_in_pass_, QStringLiteral("view"), FloatSlider::kPercentage); - SetInputProperty(value_in_pass_, QStringLiteral("min"), 0.0); - SetInputProperty(value_in_pass_, QStringLiteral("max"), 1.0); - math->SetStandardValue(MathNode::kParamBIn, 1.0); - - SetOutputPassthrough(math); + AddInput(kValueInput, NodeValue::kFloat, 1.0); + SetInputProperty(kValueInput, QStringLiteral("view"), FloatSlider::kPercentage); + SetInputProperty(kValueInput, QStringLiteral("min"), 0.0); + SetInputProperty(kValueInput, QStringLiteral("max"), 1.0); } void OpacityEffect::Retranslate() { super::Retranslate(); - SetInputName(tex_in_pass_, tr("Texture")); - SetInputName(value_in_pass_, tr("Opacity")); + SetInputName(kTextureInput, tr("Texture")); + SetInputName(kValueInput, tr("Opacity")); +} + +ShaderCode OpacityEffect::GetShaderCode(const QString &shader_id) const +{ + Q_UNUSED(shader_id) + return ShaderCode(FileFunctions::ReadFileAsString(":/shaders/opacity.frag")); +} + +void OpacityEffect::Value(const NodeValueRow &value, const NodeGlobals &globals, NodeValueTable *table) const +{ + ShaderJob job; + + job.InsertValue(value); + + // If there's no texture, no need to run an operation + if (!job.GetValue(kTextureInput).data().isNull()) { + if (!qFuzzyCompare(job.GetValue(kValueInput).data().toDouble(), 1.0)) { + job.SetAlphaChannelRequired(GenerateJob::kAlphaForceOn); + table->Push(NodeValue::kShaderJob, QVariant::fromValue(job), this); + } else { + // 1.0 float is a no-op, so just push the texture + table->Push(job.GetValue(kTextureInput)); + } + } } } diff --git a/app/node/effect/opacity/opacityeffect.h b/app/node/effect/opacity/opacityeffect.h index 82e1f16f6..ac699a813 100644 --- a/app/node/effect/opacity/opacityeffect.h +++ b/app/node/effect/opacity/opacityeffect.h @@ -5,7 +5,7 @@ namespace olive { -class OpacityEffect : public NodeGroup +class OpacityEffect : public Node { public: OpacityEffect(); @@ -21,7 +21,7 @@ public: virtual QString id() const override { - return QStringLiteral("org.olivevideoeditor.Olive.opacityeffect"); + return QStringLiteral("org.olivevideoeditor.Olive.opacity"); } virtual QVector Category() const override @@ -36,9 +36,11 @@ public: virtual void Retranslate() override; -private: - QString tex_in_pass_; - QString value_in_pass_; + virtual ShaderCode GetShaderCode(const QString &shader_id) const override; + virtual void Value(const NodeValueRow& value, const NodeGlobals &globals, NodeValueTable *table) const override; + + static const QString kTextureInput; + static const QString kValueInput; }; diff --git a/app/node/group/group.cpp b/app/node/group/group.cpp index 20b43caaa..b6f194032 100644 --- a/app/node/group/group.cpp +++ b/app/node/group/group.cpp @@ -58,7 +58,7 @@ void NodeGroup::Retranslate() } } -QString NodeGroup::AddInputPassthrough(const NodeInput &input, const InputFlags &flags, const QString &force_id) +QString NodeGroup::AddInputPassthrough(const NodeInput &input, const QString &force_id) { Q_ASSERT(ContextContainsNode(input.node())); @@ -92,7 +92,7 @@ QString NodeGroup::AddInputPassthrough(const NodeInput &input, const InputFlags Q_ASSERT(!already_exists); } - AddInput(id, input.GetDataType(), input.GetDefaultValue(), input.GetFlags() | flags); + AddInput(id, input.GetDataType(), input.GetDefaultValue(), input.GetFlags()); input_passthroughs_.append({id, input}); @@ -168,7 +168,7 @@ bool NodeGroup::GetInner(NodeInput *input) void NodeGroupAddInputPassthrough::redo() { if (!group_->ContainsInputPassthrough(input_)) { - group_->AddInputPassthrough(input_, InputFlags(), force_id_); + group_->AddInputPassthrough(input_, force_id_); actually_added_ = true; } else { actually_added_ = false; diff --git a/app/node/group/group.h b/app/node/group/group.h index d9407dd3a..fe2151b26 100644 --- a/app/node/group/group.h +++ b/app/node/group/group.h @@ -41,7 +41,7 @@ public: virtual void Retranslate() override; - QString AddInputPassthrough(const NodeInput &input, const InputFlags &flags = InputFlags(), const QString &force_id = QString()); + QString AddInputPassthrough(const NodeInput &input, const QString &force_id = QString()); void RemoveInputPassthrough(const NodeInput &input); diff --git a/app/node/node.cpp b/app/node/node.cpp index daf12f663..506e4044e 100644 --- a/app/node/node.cpp +++ b/app/node/node.cpp @@ -916,6 +916,17 @@ InputFlags Node::GetInputFlags(const QString &input) const } } +void Node::SetInputFlags(const QString &input, const InputFlags &f) +{ + Input* i = GetInternalInputData(input); + + if (i) { + i->flags = f; + } else { + ReportInvalidInput("set flags of", input); + } +} + void Node::Value(const NodeValueRow& value, const NodeGlobals &globals, NodeValueTable *table) const { // Do nothing diff --git a/app/node/node.h b/app/node/node.h index 1b5414d2b..44d704344 100644 --- a/app/node/node.h +++ b/app/node/node.h @@ -948,6 +948,7 @@ public: }; InputFlags GetInputFlags(const QString& input) const; + void SetInputFlags(const QString &input, const InputFlags &f); static void SetValueAtTime(const NodeInput &input, const rational &time, const QVariant &value, int track, MultiUndoCommand *command, bool insert_on_all_tracks_if_no_key); diff --git a/app/node/project/serializer/serializer220403.cpp b/app/node/project/serializer/serializer220403.cpp index e8e9187f2..3515e7706 100644 --- a/app/node/project/serializer/serializer220403.cpp +++ b/app/node/project/serializer/serializer220403.cpp @@ -756,7 +756,9 @@ void ProjectSerializer220403::PostConnect(const XMLNodeData &xml_node_data) cons if (Node *input_node = xml_node_data.node_ptrs.value(l.input_node)) { NodeInput resolved(input_node, l.input_id, l.input_element); - l.group->AddInputPassthrough(resolved, l.custom_flags, l.passthrough_id); + l.group->AddInputPassthrough(resolved, l.passthrough_id); + + l.group->SetInputFlags(l.passthrough_id, resolved.GetFlags() | l.custom_flags); if (!l.custom_name.isEmpty()) { l.group->SetInputName(l.passthrough_id, l.custom_name); diff --git a/app/shaders/opacity.frag b/app/shaders/opacity.frag new file mode 100644 index 000000000..b962fd74c --- /dev/null +++ b/app/shaders/opacity.frag @@ -0,0 +1,11 @@ +// Inputs +uniform sampler2D tex_in; +uniform float opacity_in; + +// Input texture coordinate +in vec2 ove_texcoord; +out vec4 frag_color; + +void main() { + frag_color = texture(tex_in, ove_texcoord) * opacity_in; +} diff --git a/app/widget/nodeparamview/nodeparamview.cpp b/app/widget/nodeparamview/nodeparamview.cpp index 865ab2982..204a675de 100644 --- a/app/widget/nodeparamview/nodeparamview.cpp +++ b/app/widget/nodeparamview/nodeparamview.cpp @@ -173,7 +173,7 @@ void NodeParamView::CloseContextsBelongingToProject(Project *p) } } - SetContexts(new_contexts, group_mode_); + SetContexts(new_contexts, new_contexts.isEmpty() ? false : group_mode_); } /*void NodeParamView::SelectNodes(const QVector &nodes) diff --git a/app/widget/nodeview/nodeview.cpp b/app/widget/nodeview/nodeview.cpp index 044fd7a15..9105d8cb1 100644 --- a/app/widget/nodeview/nodeview.cpp +++ b/app/widget/nodeview/nodeview.cpp @@ -268,7 +268,7 @@ void NodeView::Duplicate() for (auto it=src_group->GetInputPassthroughs().cbegin(); it!=src_group->GetInputPassthroughs().cend(); it++) { NodeInput input = it->second; input.set_node(new_nodes.at(selected.indexOf(input.node()))); - dst_group->AddInputPassthrough(input, InputFlags(), it->first); + dst_group->AddInputPassthrough(input, it->first); } dst_group->SetOutputPassthrough(new_nodes.at(selected.indexOf(src_group->GetOutputPassthrough()))); @@ -1235,6 +1235,7 @@ void NodeView::GroupNodes() if (!output_passthrough) { // Default to the first node we find that doesn't output to a node inside the group + output_passthrough = nodes_to_group.first(); foreach (Node *potential_in, nodes_to_group) { if (potential_in != n && !n->OutputsTo(potential_in, false)) { output_passthrough = n; @@ -1443,8 +1444,8 @@ void NodeView::EndEdgeDrag(bool cancel) create_edge_input_item_->SetHighlighted(false); } + NodeInput &creating_input = create_edge_input_; if (create_edge_output_item_ && create_edge_input_item_ && !cancel) { - NodeInput &creating_input = create_edge_input_; if (creating_input.IsValid()) { // Make connection if (!reconnected_to_itself) { @@ -1460,23 +1461,38 @@ void NodeView::EndEdgeDrag(bool cancel) if (creating_input.IsConnected()) { Node::OutputConnection existing_edge_to_remove = {creating_input.GetConnectedOutput(), creating_input}; - command->add_child(new NodeEdgeRemoveCommand(existing_edge_to_remove.first, existing_edge_to_remove.second)); + + Node *already_connected_output = creating_input.GetConnectedOutput(); + NodeViewContext *ctx = GetContextItemFromNodeItem(create_edge_input_item_); + if (ctx && !ctx->GetItemFromMap(already_connected_output)) { + if (QMessageBox::warning(this, QString(), tr("Input \"%1\" is currently connected to node \"%2\", which is not visible in this context. " + "By connecting this, that connection will be removed. Do you wish to continue?").arg(creating_input.name(), already_connected_output->GetLabelAndName()), + QMessageBox::Yes | QMessageBox::No) == QMessageBox::No) { + cancel = true; + } + } + + if (!cancel) { + command->add_child(new NodeEdgeRemoveCommand(existing_edge_to_remove.first, existing_edge_to_remove.second)); + } } - command->add_child(new NodeEdgeAddCommand(creating_output, creating_input)); + if (!cancel) { + command->add_child(new NodeEdgeAddCommand(creating_output, creating_input)); - // If the output is not in the input's context, add it now. We check the item rather than - // the node itself, because sometimes a node may not be in the context but another node - // representing it will be (e.g. groups) - if (!scene_.context_map().value(create_edge_input_item_->GetContext())->GetItemFromMap(creating_output)) { - command->add_child(new NodeSetPositionCommand(creating_output, create_edge_input_item_->GetContext(), scene_.context_map().value(create_edge_input_item_->GetContext())->MapScenePosToNodePosInContext(create_edge_output_item_->scenePos()))); + // If the output is not in the input's context, add it now. We check the item rather than + // the node itself, because sometimes a node may not be in the context but another node + // representing it will be (e.g. groups) + if (!scene_.context_map().value(create_edge_input_item_->GetContext())->GetItemFromMap(creating_output)) { + command->add_child(new NodeSetPositionCommand(creating_output, create_edge_input_item_->GetContext(), scene_.context_map().value(create_edge_input_item_->GetContext())->MapScenePosToNodePosInContext(create_edge_output_item_->scenePos()))); + } } } - creating_input.Reset(); } } + creating_input.Reset(); create_edge_output_item_ = nullptr; create_edge_input_item_ = nullptr; @@ -1536,6 +1552,17 @@ void NodeView::ResizeOverlay() overlay_view_->resize(this->size()); } +NodeViewContext *NodeView::GetContextItemFromNodeItem(NodeViewItem *item) +{ + QGraphicsItem *i = item; + while ((i = i->parentItem())) { + if (NodeViewContext *nvc = dynamic_cast(i)) { + return nvc; + } + } + return nullptr; +} + void NodeView::SetAttachedItems(const QVector &items) { // Detach anything currently attached diff --git a/app/widget/nodeview/nodeview.h b/app/widget/nodeview/nodeview.h index 887e52cb7..3c62818db 100644 --- a/app/widget/nodeview/nodeview.h +++ b/app/widget/nodeview/nodeview.h @@ -185,6 +185,8 @@ private: NodeViewMiniMap *minimap_; + NodeViewContext *GetContextItemFromNodeItem(NodeViewItem *item); + struct AttachedItem { NodeViewItem* item; Node *node; From fb9034023cafb6d2258b339115cb77d8b47e3929 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu, 7 Apr 2022 16:49:05 -0700 Subject: [PATCH 076/114] cmake: require ocio 2.1.1 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cd0c6d89a..acc43c97a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -74,7 +74,7 @@ find_package(OpenGL REQUIRED) list(APPEND OLIVE_LIBRARIES OpenGL::GL) # Link OpenColorIO -find_package(OpenColorIO 2.0.0 REQUIRED) +find_package(OpenColorIO 2.1.1 REQUIRED) list(APPEND OLIVE_LIBRARIES ${OCIO_LIBRARIES}) list(APPEND OLIVE_INCLUDE_DIRS ${OCIO_INCLUDE_DIRS}) From 20f74919a3cf4e934db5039de61111bf427a742c Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu, 7 Apr 2022 16:49:18 -0700 Subject: [PATCH 077/114] export: check if exists and if can mkpath --- app/dialog/export/export.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/dialog/export/export.cpp b/app/dialog/export/export.cpp index c0d9b9ba0..7dfcd137f 100644 --- a/app/dialog/export/export.cpp +++ b/app/dialog/export/export.cpp @@ -312,7 +312,8 @@ void ExportDialog::StartExport() QFileInfo dir_info(file_info.path()); // If the directory does not exist, try to create it - if (!QDir(file_info.path()).mkpath(QStringLiteral("."))) { + QDir dest_dir(file_info.path()); + if (!dest_dir.exists() && !dest_dir.mkpath(QStringLiteral("."))) { QtUtils::MessageBox(this, QMessageBox::Critical, tr("Failed to create output directory"), tr("The intended output directory doesn't exist and Olive couldn't create it. " "Please choose a different filename.")); From 48adb159b8d2446e12fffd7c867da96bf880d7e2 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu, 7 Apr 2022 17:11:50 -0700 Subject: [PATCH 078/114] various: consolidated dir exists+mkpath into one function --- app/common/filefunctions.cpp | 23 +++---------------- app/common/filefunctions.h | 3 ++- app/core.cpp | 2 +- app/dialog/export/export.cpp | 2 +- .../preferences/tabs/preferencesdisktab.cpp | 2 +- .../projectproperties/projectproperties.cpp | 2 +- app/render/diskmanager.cpp | 6 ++--- app/render/framehashcache.cpp | 4 ++-- 8 files changed, 14 insertions(+), 30 deletions(-) diff --git a/app/common/filefunctions.cpp b/app/common/filefunctions.cpp index 24de67db0..82878e67b 100644 --- a/app/common/filefunctions.cpp +++ b/app/common/filefunctions.cpp @@ -150,27 +150,10 @@ void FileFunctions::CopyDirectory(const QString &source, const QString &dest, bo } } -bool FileFunctions::DirectoryIsValid(const QString &dir, bool try_to_create) +bool FileFunctions::DirectoryIsValid(const QDir &d, bool try_to_create_if_not_exists) { - // Empty string is invalid - if (dir.isEmpty()) { - return false; - } - - QDir d(dir); - - // If directory already exists, this is valid - if (d.exists()) { - return true; - } - - // If we can create and creation is successful, this is valid - if (try_to_create && d.mkpath(".")) { - return true; - } - - // Otherwise, invalid - return false; + // Return whether the directory exists, or whether it could be created if it doesn't + return d.exists() || d.mkpath(QStringLiteral(".")); } QString FileFunctions::EnsureFilenameExtension(QString fn, const QString &extension) diff --git a/app/common/filefunctions.h b/app/common/filefunctions.h index 122bf076c..abe20be03 100644 --- a/app/common/filefunctions.h +++ b/app/common/filefunctions.h @@ -21,6 +21,7 @@ #ifndef FILEFUNCTIONS_H #define FILEFUNCTIONS_H +#include #include #include "common/define.h" @@ -52,7 +53,7 @@ public: static void CopyDirectory(const QString& source, const QString& dest, bool overwrite = false); - static bool DirectoryIsValid(const QString& dir, bool try_to_create); + static bool DirectoryIsValid(const QDir& dir, bool try_to_create_if_not_exists = true); /** * @brief Ensures a given filename has a certain extension diff --git a/app/core.cpp b/app/core.cpp index 8696d12b3..d4e091959 100644 --- a/app/core.cpp +++ b/app/core.cpp @@ -921,7 +921,7 @@ void Core::SaveAutorecovery() foreach (Project* p, open_projects_) { if (!p->has_autorecovery_been_saved()) { QDir project_autorecovery_dir(QDir(FileFunctions::GetAutoRecoveryRoot()).filePath(p->GetUuid().toString())); - if (project_autorecovery_dir.mkpath(QStringLiteral("."))) { + if (FileFunctions::DirectoryIsValid(project_autorecovery_dir)) { QString this_autorecovery_path = project_autorecovery_dir.filePath(QStringLiteral("%1.ove").arg(QString::number(QDateTime::currentSecsSinceEpoch()))); SaveProjectInternal(p, this_autorecovery_path); diff --git a/app/dialog/export/export.cpp b/app/dialog/export/export.cpp index 7dfcd137f..83f8a0d8d 100644 --- a/app/dialog/export/export.cpp +++ b/app/dialog/export/export.cpp @@ -313,7 +313,7 @@ void ExportDialog::StartExport() // If the directory does not exist, try to create it QDir dest_dir(file_info.path()); - if (!dest_dir.exists() && !dest_dir.mkpath(QStringLiteral("."))) { + if (!FileFunctions::DirectoryIsValid(dest_dir)) { QtUtils::MessageBox(this, QMessageBox::Critical, tr("Failed to create output directory"), tr("The intended output directory doesn't exist and Olive couldn't create it. " "Please choose a different filename.")); diff --git a/app/dialog/preferences/tabs/preferencesdisktab.cpp b/app/dialog/preferences/tabs/preferencesdisktab.cpp index fc6b43d9c..f5258f34e 100644 --- a/app/dialog/preferences/tabs/preferencesdisktab.cpp +++ b/app/dialog/preferences/tabs/preferencesdisktab.cpp @@ -96,7 +96,7 @@ bool PreferencesDiskTab::Validate() } // Check validity of the new path - if (!FileFunctions::DirectoryIsValid(disk_cache_location_->text(), true)) { + if (!FileFunctions::DirectoryIsValid(disk_cache_location_->text())) { QMessageBox::critical(this, tr("Disk Cache"), tr("Failed to set disk cache location. Access was denied.")); diff --git a/app/dialog/projectproperties/projectproperties.cpp b/app/dialog/projectproperties/projectproperties.cpp index 2c75edc9e..c6d92d0fd 100644 --- a/app/dialog/projectproperties/projectproperties.cpp +++ b/app/dialog/projectproperties/projectproperties.cpp @@ -186,7 +186,7 @@ void ProjectPropertiesDialog::accept() bool ProjectPropertiesDialog::VerifyPathAndWarnIfBad(const QString &path) { - if (!FileFunctions::DirectoryIsValid(path, true)) { + if (!FileFunctions::DirectoryIsValid(path)) { QMessageBox mb(this); mb.setWindowModality(Qt::WindowModal); mb.setIcon(QMessageBox::Critical); diff --git a/app/render/diskmanager.cpp b/app/render/diskmanager.cpp index 29c60c925..af67d6bfa 100644 --- a/app/render/diskmanager.cpp +++ b/app/render/diskmanager.cpp @@ -44,7 +44,7 @@ DiskManager::DiskManager() QString default_dir = default_disk_cache_file.readAll(); if (!default_dir.isEmpty()) { - if (FileFunctions::DirectoryIsValid(default_dir, true)) { + if (FileFunctions::DirectoryIsValid(default_dir)) { GetOpenFolder(default_dir); } else { QMessageBox::warning(nullptr, @@ -180,7 +180,7 @@ void DiskManager::ShowDiskCacheSettingsDialog(DiskCacheFolder *folder, QWidget * void DiskManager::ShowDiskCacheSettingsDialog(const QString &path, QWidget *parent) { - if (!FileFunctions::DirectoryIsValid(path, true)) { + if (!FileFunctions::DirectoryIsValid(path)) { QMessageBox::critical(parent, tr("Disk Cache Error"), tr("Failed to open disk cache at \"%1\". Try a different folder.").arg(path)); return; @@ -274,7 +274,7 @@ void DiskCacheFolder::SetPath(const QString &path) // Attempt to load existing index file from path QDir path_dir(path_); - path_dir.mkpath(QStringLiteral(".")); + FileFunctions::DirectoryIsValid(path_dir); index_path_ = path_dir.filePath(QStringLiteral("index")); diff --git a/app/render/framehashcache.cpp b/app/render/framehashcache.cpp index 8cb4b307d..269b5bf19 100644 --- a/app/render/framehashcache.cpp +++ b/app/render/framehashcache.cpp @@ -394,8 +394,8 @@ bool FrameHashCache::SaveCacheFrame(const QString &filename, char *data, const V // Ensure directory is created QDir cache_dir = QFileInfo(filename).dir(); - if (!cache_dir.exists()) { - cache_dir.mkpath("."); + if (!FileFunctions::DirectoryIsValid(cache_dir)) { + return false; } // Floating point types are stored in EXR From 1448f641e5c3da32cd822721d14ff3091c0cd0ae Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sat, 9 Apr 2022 15:36:49 -0700 Subject: [PATCH 079/114] nodeparamview: remove item when nodes is removed from context --- app/widget/nodeparamview/nodeparamview.cpp | 17 ++++++++++++++--- app/widget/nodeparamview/nodeparamview.h | 4 +++- .../nodeparamview/nodeparamviewcontext.cpp | 10 +++++++++- app/widget/nodeparamview/nodeparamviewcontext.h | 2 +- app/widget/nodeparamview/nodeparamviewitem.cpp | 3 ++- app/widget/nodeparamview/nodeparamviewitem.h | 12 ++++++++++++ 6 files changed, 41 insertions(+), 7 deletions(-) diff --git a/app/widget/nodeparamview/nodeparamview.cpp b/app/widget/nodeparamview/nodeparamview.cpp index 204a675de..21fea333d 100644 --- a/app/widget/nodeparamview/nodeparamview.cpp +++ b/app/widget/nodeparamview/nodeparamview.cpp @@ -246,6 +246,7 @@ void NodeParamView::SetContexts(const QVector &contexts, bool group_mode foreach (Node *ctx, contexts_) { disconnect(ctx, &Node::NodeAddedToContext, this, &NodeParamView::NodeAddedToContext); + disconnect(ctx, &Node::NodeRemovedFromContext, this, &NodeParamView::NodeRemovedFromContext); } contexts_ = contexts; @@ -257,6 +258,7 @@ void NodeParamView::SetContexts(const QVector &contexts, bool group_mode // Queued so that if any further work is done in connecting this node to the context, it'll be // done before our sorting function is called connect(ctx, &Node::NodeAddedToContext, this, &NodeParamView::NodeAddedToContext, Qt::QueuedConnection); + connect(ctx, &Node::NodeRemovedFromContext, this, &NodeParamView::NodeRemovedFromContext, Qt::QueuedConnection); } if (keyframe_view_) { @@ -275,7 +277,7 @@ void NodeParamView::SetContexts(const QVector &contexts, bool group_mode item->setVisible(true); for (auto it=ctx->GetContextPositions().cbegin(); it!=ctx->GetContextPositions().cend(); it++) { - AddNode(it.key(), item); + AddNode(it.key(), ctx, item); } } @@ -389,7 +391,7 @@ void NodeParamView::QueueKeyframePositionUpdate() QMetaObject::invokeMethod(this, &NodeParamView::UpdateElementY, Qt::QueuedConnection); } -void NodeParamView::AddNode(Node *n, NodeParamViewContext *context) +void NodeParamView::AddNode(Node *n, Node *ctx, NodeParamViewContext *context) { if ((n->GetFlags() & Node::kDontShowInParamView) && !group_mode_) { return; @@ -402,6 +404,7 @@ void NodeParamView::AddNode(Node *n, NodeParamViewContext *context) connect(item, &NodeParamViewItem::PinToggled, this, &NodeParamView::PinNode); connect(item, &NodeParamViewItem::InputCheckedChanged, this, &NodeParamView::InputCheckBoxChanged); + item->SetContext(ctx); item->SetTimeTarget(GetTimeTarget()); item->SetTimebase(timebase()); item->SetTime(GetTime()); @@ -608,11 +611,19 @@ void NodeParamView::NodeAddedToContext(Node *n) Node *ctx = static_cast(sender()); NodeParamViewContext *item = GetContextItemFromContext(ctx); - AddNode(n, item); + AddNode(n, ctx, item); SortItemsInContext(item); } +void NodeParamView::NodeRemovedFromContext(Node *n) +{ + Node *ctx = static_cast(sender()); + NodeParamViewContext *item = GetContextItemFromContext(ctx); + + item->RemoveNode(n, ctx); +} + void NodeParamView::InputCheckBoxChanged(const NodeInput &input, bool e) { NodeGroup *group = static_cast(contexts_.first()); diff --git a/app/widget/nodeparamview/nodeparamview.h b/app/widget/nodeparamview/nodeparamview.h index ceceb58a5..56eb06677 100644 --- a/app/widget/nodeparamview/nodeparamview.h +++ b/app/widget/nodeparamview/nodeparamview.h @@ -93,7 +93,7 @@ private: void QueueKeyframePositionUpdate(); - void AddNode(Node* n, NodeParamViewContext *context); + void AddNode(Node* n, Node *ctx, NodeParamViewContext *context); void SortItemsInContext(NodeParamViewContext *context); @@ -136,6 +136,8 @@ private slots: void NodeAddedToContext(Node *n); + void NodeRemovedFromContext(Node *n); + void InputCheckBoxChanged(const NodeInput &input, bool e); void GroupInputPassthroughAdded(olive::NodeGroup *group, const olive::NodeInput &input); diff --git a/app/widget/nodeparamview/nodeparamviewcontext.cpp b/app/widget/nodeparamview/nodeparamviewcontext.cpp index 2c2ba5d33..1d969a3b1 100644 --- a/app/widget/nodeparamview/nodeparamviewcontext.cpp +++ b/app/widget/nodeparamview/nodeparamviewcontext.cpp @@ -51,8 +51,16 @@ void NodeParamViewContext::AddNode(NodeParamViewItem *item) dock_area_->AddItem(item); } -void NodeParamViewContext::RemoveNode(Node *node) +void NodeParamViewContext::RemoveNode(Node *node, Node *ctx) { + for (auto it=items_.begin(); it!=items_.end(); ) { + if (it.value()->GetContext() == ctx) { + delete it.value(); + it = items_.erase(it); + } else { + it++; + } + } } void NodeParamViewContext::Clear() diff --git a/app/widget/nodeparamview/nodeparamviewcontext.h b/app/widget/nodeparamview/nodeparamviewcontext.h index a8590271e..7f5a910e5 100644 --- a/app/widget/nodeparamview/nodeparamviewcontext.h +++ b/app/widget/nodeparamview/nodeparamviewcontext.h @@ -50,7 +50,7 @@ public: void AddNode(NodeParamViewItem *item); - void RemoveNode(Node *node); + void RemoveNode(Node *node, Node *ctx); void Clear(); diff --git a/app/widget/nodeparamview/nodeparamviewitem.cpp b/app/widget/nodeparamview/nodeparamviewitem.cpp index 997772ddf..7fedb2fea 100644 --- a/app/widget/nodeparamview/nodeparamviewitem.cpp +++ b/app/widget/nodeparamview/nodeparamviewitem.cpp @@ -46,7 +46,8 @@ const int NodeParamViewItemBody::kMaxWidgetColumn = kKeyControlColumn; NodeParamViewItem::NodeParamViewItem(Node *node, NodeParamViewCheckBoxBehavior create_checkboxes, QWidget *parent) : super(parent), - node_(node) + node_(node), + ctx_(nullptr) { node_->Retranslate(); diff --git a/app/widget/nodeparamview/nodeparamviewitem.h b/app/widget/nodeparamview/nodeparamviewitem.h index e06d98d72..95ee238d8 100644 --- a/app/widget/nodeparamview/nodeparamviewitem.h +++ b/app/widget/nodeparamview/nodeparamviewitem.h @@ -182,6 +182,16 @@ public: body_->SetTimebase(timebase); } + Node *GetContext() const + { + return ctx_; + } + + void SetContext(Node *ctx) + { + ctx_ = ctx; + } + Node* GetNode() const { return node_; @@ -218,6 +228,8 @@ private: Node* node_; + Node *ctx_; + rational time_; KeyframeView::NodeConnections keyframe_connections_; From 1895497beda061855edb5b0c0b8e139304edc2ea Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sat, 9 Apr 2022 16:37:24 -0700 Subject: [PATCH 080/114] viewer: unset gizmos on disconnect Fixes potential crash --- app/widget/viewer/viewer.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/widget/viewer/viewer.cpp b/app/widget/viewer/viewer.cpp index 206fe9719..d589b409f 100644 --- a/app/widget/viewer/viewer.cpp +++ b/app/widget/viewer/viewer.cpp @@ -256,6 +256,8 @@ void ViewerWidget::DisconnectNodeEvent(ViewerOutput *n) // Queue an UpdateStack so that when it runs, the viewer node will be fully disconnected QMetaObject::invokeMethod(this, &ViewerWidget::UpdateStack, Qt::QueuedConnection); + + SetGizmos(nullptr); } void ViewerWidget::ConnectedNodeChangeEvent(ViewerOutput *n) From d6b90f4e94997e04e64b5c3bce89bd028f2ce80e Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sat, 9 Apr 2022 16:37:38 -0700 Subject: [PATCH 081/114] timeline: set waveform after initial input copy --- app/widget/timelinewidget/undo/timelineundosplit.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/widget/timelinewidget/undo/timelineundosplit.cpp b/app/widget/timelinewidget/undo/timelineundosplit.cpp index 0d9c4e0c9..20cc8a803 100644 --- a/app/widget/timelinewidget/undo/timelineundosplit.cpp +++ b/app/widget/timelinewidget/undo/timelineundosplit.cpp @@ -38,14 +38,15 @@ void BlockSplitCommand::redo() if (!reconnect_tree_command_) { reconnect_tree_command_ = new MultiUndoCommand(); new_block_ = static_cast(Node::CopyNodeInGraph(block_, reconnect_tree_command_)); - if (ClipBlock *new_clip = dynamic_cast(new_block_)) { - ClipBlock *old_clip = static_cast(block_); - new_clip->waveform() = old_clip->waveform(); - } } reconnect_tree_command_->redo_now(); + if (ClipBlock *new_clip = dynamic_cast(new_block_)) { + ClipBlock *old_clip = static_cast(block_); + new_clip->waveform() = old_clip->waveform(); + } + // Determine our new lengths rational new_length = point_ - block_->in(); rational new_part_length = block_->out() - point_; From 5afd3226441de242065f6199826f4acfd7337704 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun, 10 Apr 2022 12:09:04 -0700 Subject: [PATCH 082/114] nodeparamview: significant optimization - Skips multiple calls to SetContexts in quick succession - Only add/remove contexts as necessary rather than resetting every time --- app/panel/param/param.cpp | 4 +- app/panel/param/param.h | 2 +- app/widget/nodeparamview/nodeparamview.cpp | 211 +++++++++++------- app/widget/nodeparamview/nodeparamview.h | 18 +- .../nodeparamview/nodeparamviewcontext.cpp | 41 +++- .../nodeparamview/nodeparamviewcontext.h | 8 +- app/window/mainwindow/mainwindow.cpp | 6 +- 7 files changed, 195 insertions(+), 95 deletions(-) diff --git a/app/panel/param/param.cpp b/app/panel/param/param.cpp index 5f51b21e7..8504a86b4 100644 --- a/app/panel/param/param.cpp +++ b/app/panel/param/param.cpp @@ -61,9 +61,9 @@ void ParamPanel::DeselectAll() static_cast(GetTimeBasedWidget())->DeselectAll(); } -void ParamPanel::SetContexts(const QVector &contexts, bool group_mode) +void ParamPanel::SetContexts(const QVector &contexts) { - static_cast(GetTimeBasedWidget())->SetContexts(contexts, group_mode); + static_cast(GetTimeBasedWidget())->SetContexts(contexts); } void ParamPanel::Retranslate() diff --git a/app/panel/param/param.h b/app/panel/param/param.h index c45a981cf..25b50a2db 100644 --- a/app/panel/param/param.h +++ b/app/panel/param/param.h @@ -58,7 +58,7 @@ public slots: virtual void DeselectAll() override; - void SetContexts(const QVector &contexts, bool group_mode); + void SetContexts(const QVector &contexts); signals: void RequestSelectNode(const QVector& target); diff --git a/app/widget/nodeparamview/nodeparamview.cpp b/app/widget/nodeparamview/nodeparamview.cpp index 21fea333d..f186daed2 100644 --- a/app/widget/nodeparamview/nodeparamview.cpp +++ b/app/widget/nodeparamview/nodeparamview.cpp @@ -37,8 +37,7 @@ NodeParamView::NodeParamView(bool create_keyframe_view, QWidget *parent) : super(true, false, parent), last_scroll_val_(0), focused_node_(nullptr), - time_target_(nullptr), - group_mode_(false) + time_target_(nullptr) { // Create horizontal layout to place scroll area in (and keyframe editing eventually) QHBoxLayout* layout = new QHBoxLayout(this); @@ -155,6 +154,11 @@ NodeParamView::NodeParamView(bool create_keyframe_view, QWidget *parent) : &QApplication::focusChanged, this, &NodeParamView::FocusChanged); + + ctx_update_timer_ = new QTimer(this); + ctx_update_timer_->setInterval(1); + ctx_update_timer_->setSingleShot(true); + connect(ctx_update_timer_, &QTimer::timeout, this, &NodeParamView::UpdateContexts); } NodeParamView::~NodeParamView() @@ -173,7 +177,7 @@ void NodeParamView::CloseContextsBelongingToProject(Project *p) } } - SetContexts(new_contexts, new_contexts.isEmpty() ? false : group_mode_); + SetContexts(new_contexts); } /*void NodeParamView::SelectNodes(const QVector &nodes) @@ -235,70 +239,58 @@ void NodeParamView::DeselectNodes(const QVector &nodes) } }*/ -void NodeParamView::SetContexts(const QVector &contexts, bool group_mode) +void NodeParamView::UpdateContexts() { //TIME_THIS_FUNCTION; - foreach (NodeParamViewContext *ctx, context_items_) { - ctx->Clear(); - ctx->setVisible(false); + bool changes_made = false; + + foreach (Node *ctx, current_contexts_) { + if (!contexts_.contains(ctx)) { + // Context is being removed + RemoveContext(ctx); + changes_made = true; + } } foreach (Node *ctx, contexts_) { - disconnect(ctx, &Node::NodeAddedToContext, this, &NodeParamView::NodeAddedToContext); - disconnect(ctx, &Node::NodeRemovedFromContext, this, &NodeParamView::NodeRemovedFromContext); + if (!current_contexts_.contains(ctx)) { + // Context is being added + AddContext(ctx); + changes_made = true; + } } + if (changes_made) { + current_contexts_ = contexts_; + + if (IsGroupMode()) { + // Check inputs that have been passed through + NodeGroup *group = static_cast(contexts_.first()); + for (auto it=group->GetInputPassthroughs().cbegin(); it!=group->GetInputPassthroughs().cend(); it++) { + GroupInputPassthroughAdded(group, it->second); + } + + connect(group, &NodeGroup::InputPassthroughAdded, this, &NodeParamView::GroupInputPassthroughAdded); + connect(group, &NodeGroup::InputPassthroughRemoved, this, &NodeParamView::GroupInputPassthroughRemoved); + } + + foreach (NodeParamViewContext *ctx, context_items_) { + SortItemsInContext(ctx); + } + + if (keyframe_view_) { + QueueKeyframePositionUpdate(); + } + } +} + +void NodeParamView::SetContexts(const QVector &contexts) +{ + // Setting contexts is expensive, so we queue it here to prevent multiple calls in a short timespan contexts_ = contexts; - group_mode_ = group_mode; - - Q_ASSERT((contexts_.size() == 1 && dynamic_cast(contexts_.first())) || !group_mode_ || contexts_.isEmpty()); - - foreach (Node *ctx, contexts_) { - // Queued so that if any further work is done in connecting this node to the context, it'll be - // done before our sorting function is called - connect(ctx, &Node::NodeAddedToContext, this, &NodeParamView::NodeAddedToContext, Qt::QueuedConnection); - connect(ctx, &Node::NodeRemovedFromContext, this, &NodeParamView::NodeRemovedFromContext, Qt::QueuedConnection); - } - - if (keyframe_view_) { - keyframe_view_->Clear(); - } - - if (focused_node_) { - focused_node_ = nullptr; - emit FocusedNodeChanged(nullptr); - } - - foreach (Node *ctx, contexts) { - NodeParamViewContext *item = GetContextItemFromContext(ctx); - - item->AddContext(ctx); - item->setVisible(true); - - for (auto it=ctx->GetContextPositions().cbegin(); it!=ctx->GetContextPositions().cend(); it++) { - AddNode(it.key(), ctx, item); - } - } - - if (group_mode_) { - // Check inputs that have been passed through - NodeGroup *group = static_cast(contexts_.first()); - for (auto it=group->GetInputPassthroughs().cbegin(); it!=group->GetInputPassthroughs().cend(); it++) { - GroupInputPassthroughAdded(group, it->second); - } - - connect(group, &NodeGroup::InputPassthroughAdded, this, &NodeParamView::GroupInputPassthroughAdded); - connect(group, &NodeGroup::InputPassthroughRemoved, this, &NodeParamView::GroupInputPassthroughRemoved); - } - - foreach (NodeParamViewContext *ctx, context_items_) { - SortItemsInContext(ctx); - } - - if (keyframe_view_) { - QueueKeyframePositionUpdate(); - } + ctx_update_timer_->stop(); + ctx_update_timer_->start(); } void NodeParamView::resizeEvent(QResizeEvent *event) @@ -391,13 +383,45 @@ void NodeParamView::QueueKeyframePositionUpdate() QMetaObject::invokeMethod(this, &NodeParamView::UpdateElementY, Qt::QueuedConnection); } +void NodeParamView::AddContext(Node *ctx) +{ + // Queued so that if any further work is done in connecting this node to the context, it'll be + // done before our sorting function is called + connect(ctx, &Node::NodeAddedToContext, this, &NodeParamView::NodeAddedToContext, Qt::QueuedConnection); + connect(ctx, &Node::NodeRemovedFromContext, this, &NodeParamView::NodeRemovedFromContext, Qt::QueuedConnection); + + NodeParamViewContext *item = GetContextItemFromContext(ctx); + + item->AddContext(ctx); + item->setVisible(true); + + for (auto it=ctx->GetContextPositions().cbegin(); it!=ctx->GetContextPositions().cend(); it++) { + AddNode(it.key(), ctx, item); + } +} + +void NodeParamView::RemoveContext(Node *ctx) +{ + disconnect(ctx, &Node::NodeAddedToContext, this, &NodeParamView::NodeAddedToContext); + disconnect(ctx, &Node::NodeRemovedFromContext, this, &NodeParamView::NodeRemovedFromContext); + + NodeParamViewContext *item = GetContextItemFromContext(ctx); + + item->RemoveContext(ctx); + item->RemoveNodesWithContext(ctx); + + if (item->GetContexts().isEmpty()) { + item->setVisible(false); + } +} + void NodeParamView::AddNode(Node *n, Node *ctx, NodeParamViewContext *context) { - if ((n->GetFlags() & Node::kDontShowInParamView) && !group_mode_) { + if ((n->GetFlags() & Node::kDontShowInParamView) && !IsGroupMode()) { return; } - NodeParamViewItem* item = new NodeParamViewItem(n, group_mode_ ? kCheckBoxesOnNonConnected : kNoCheckBoxes, context); + NodeParamViewItem* item = new NodeParamViewItem(n, IsGroupMode() ? kCheckBoxesOnNonConnected : kNoCheckBoxes, context); connect(item, &NodeParamViewItem::RequestSetTime, this, &NodeParamView::SetTimeAndSignal); connect(item, &NodeParamViewItem::RequestSelectNode, this, &NodeParamView::RequestSelectNode); @@ -428,6 +452,29 @@ void NodeParamView::AddNode(Node *n, Node *ctx, NodeParamViewContext *context) } } +void NodeParamView::RemoveNode(Node *n, Node *ctx) +{ + NodeParamViewContext *ctx_item = GetContextItemFromContext(ctx); + NodeParamViewItem *item = ctx_item->GetItem(n, ctx); + + if (focused_node_ == item) { + focused_node_ = nullptr; + emit FocusedNodeChanged(nullptr); + } + + if (keyframe_view_) { + for (auto it=item->GetKeyframeConnections().begin(); it!=item->GetKeyframeConnections().end(); it++) { + for (auto jt=it->begin(); jt!=it->end(); jt++) { + for (auto kt=jt->begin(); kt!=jt->end(); kt++) { + keyframe_view_->RemoveKeyframesOfTrack(*kt); + } + } + } + } + + ctx_item->RemoveNode(n, ctx); +} + int GetDistanceBetweenNodes(Node *start, Node *end) { if (start == end) { @@ -449,9 +496,11 @@ void NodeParamView::SortItemsInContext(NodeParamViewContext *context_item) QVector > distances; for (auto it=context_item->GetItems().cbegin(); it!=context_item->GetItems().cend(); it++) { + NodeParamViewItem *item = *it; + int distance = -1; foreach (Node *ctx, context_item->GetContexts()) { - distance = qMax(distance, GetDistanceBetweenNodes(ctx, it.key())); + distance = qMax(distance, GetDistanceBetweenNodes(ctx, item->GetNode())); } if (distance == -1) { @@ -459,7 +508,7 @@ void NodeParamView::SortItemsInContext(NodeParamViewContext *context_item) } bool inserted = false; - QPair dist(it.value(), distance); + QPair dist(item, distance); for (int i=0; iGetItems().cbegin(); it!=ctx->GetItems().cend(); it++) { - const KeyframeView::NodeConnections &connections = it.value()->GetKeyframeConnections(); + NodeParamViewItem *item = *it; + Node *node = item->GetNode(); + const KeyframeView::NodeConnections &connections = item->GetKeyframeConnections(); if (!connections.isEmpty()) { - foreach (const QString& input, it.key()->inputs()) { - if (!(it.key()->GetInputFlags(input) & kInputFlagHidden)) { - int arr_sz = NodeGroup::ResolveInput(NodeInput(it.key(), input)).GetArraySize(); + foreach (const QString& input, node->inputs()) { + if (!(node->GetInputFlags(input) & kInputFlagHidden)) { + int arr_sz = NodeGroup::ResolveInput(NodeInput(node, input)).GetArraySize(); for (int i=-1; iGetElementY(ic); + int y = item->GetElementY(ic); // For some reason Qt's mapToGlobal doesn't seem to handle this, so we offset here y += vertical_scrollbar_->value(); @@ -614,14 +664,21 @@ void NodeParamView::NodeAddedToContext(Node *n) AddNode(n, ctx, item); SortItemsInContext(item); + + if (keyframe_view_) { + QueueKeyframePositionUpdate(); + } } void NodeParamView::NodeRemovedFromContext(Node *n) { Node *ctx = static_cast(sender()); - NodeParamViewContext *item = GetContextItemFromContext(ctx); - item->RemoveNode(n, ctx); + RemoveNode(n, ctx); + + if (keyframe_view_) { + QueueKeyframePositionUpdate(); + } } void NodeParamView::InputCheckBoxChanged(const NodeInput &input, bool e) @@ -638,20 +695,14 @@ void NodeParamView::InputCheckBoxChanged(const NodeInput &input, bool e) void NodeParamView::GroupInputPassthroughAdded(NodeGroup *group, const NodeInput &input) { foreach (NodeParamViewContext *pvctx, context_items_) { - NodeParamViewItem *item = pvctx->GetItems().value(input.node()); - if (item) { - item->SetInputChecked(input, true); - } + pvctx->SetInputChecked(input, true); } } void NodeParamView::GroupInputPassthroughRemoved(NodeGroup *group, const NodeInput &input) { foreach (NodeParamViewContext *pvctx, context_items_) { - NodeParamViewItem *item = pvctx->GetItems().value(input.node()); - if (item) { - item->SetInputChecked(input, false); - } + pvctx->SetInputChecked(input, false); } } diff --git a/app/widget/nodeparamview/nodeparamview.h b/app/widget/nodeparamview/nodeparamview.h index 56eb06677..eeca7e668 100644 --- a/app/widget/nodeparamview/nodeparamview.h +++ b/app/widget/nodeparamview/nodeparamview.h @@ -70,7 +70,7 @@ public: } public slots: - void SetContexts(const QVector &contexts, bool group_mode); + void SetContexts(const QVector &contexts); void UpdateElementY(); @@ -93,12 +93,23 @@ private: void QueueKeyframePositionUpdate(); + void AddContext(Node *context); + + void RemoveContext(Node *context); + void AddNode(Node* n, Node *ctx, NodeParamViewContext *context); + void RemoveNode(Node *n, Node *ctx); + void SortItemsInContext(NodeParamViewContext *context); NodeParamViewContext *GetContextItemFromContext(Node *context); + bool IsGroupMode() const + { + return contexts_.size() == 1 && dynamic_cast(contexts_.first()); + } + KeyframeView* keyframe_view_; QVector context_items_; @@ -122,8 +133,9 @@ private: Node *time_target_; QVector contexts_; + QVector current_contexts_; - bool group_mode_; + QTimer *ctx_update_timer_; private slots: void UpdateGlobalScrollBar(); @@ -144,6 +156,8 @@ private slots: void GroupInputPassthroughRemoved(olive::NodeGroup *group, const olive::NodeInput &input); + void UpdateContexts(); + }; } diff --git a/app/widget/nodeparamview/nodeparamviewcontext.cpp b/app/widget/nodeparamview/nodeparamviewcontext.cpp index 1d969a3b1..ad761b870 100644 --- a/app/widget/nodeparamview/nodeparamviewcontext.cpp +++ b/app/widget/nodeparamview/nodeparamviewcontext.cpp @@ -45,17 +45,46 @@ NodeParamViewContext::NodeParamViewContext(QWidget *parent) : connect(title_bar(), &NodeParamViewItemTitleBar::AddEffectButtonClicked, this, &NodeParamViewContext::AddEffectButtonClicked); } +NodeParamViewItem *NodeParamViewContext::GetItem(Node *node, Node *ctx) +{ + for (auto it=items_.begin(); it!=items_.end(); ) { + NodeParamViewItem *item = *it; + + if (item->GetNode() == node && item->GetContext() == ctx) { + return item; + } + } + + return nullptr; +} + void NodeParamViewContext::AddNode(NodeParamViewItem *item) { - items_.insert(item->GetNode(), item); + items_.append(item); dock_area_->AddItem(item); } void NodeParamViewContext::RemoveNode(Node *node, Node *ctx) { for (auto it=items_.begin(); it!=items_.end(); ) { - if (it.value()->GetContext() == ctx) { - delete it.value(); + NodeParamViewItem *item = *it; + + if (item->GetNode() == node && item->GetContext() == ctx) { + delete item; + it = items_.erase(it); + } else { + it++; + } + } +} + +void NodeParamViewContext::RemoveNodesWithContext(Node *ctx) +{ + for (auto it=items_.begin(); it!=items_.end(); ) { + NodeParamViewItem *item = *it; + + if (item->GetContext() == ctx) { + delete item; it = items_.erase(it); } else { it++; @@ -73,8 +102,10 @@ void NodeParamViewContext::Clear() void NodeParamViewContext::SetInputChecked(const NodeInput &input, bool e) { - if (NodeParamViewItem *item = items_.value(input.node())) { - item->SetInputChecked(input, e); + foreach (NodeParamViewItem *item, items_) { + if (item->GetNode() == input.node()) { + item->SetInputChecked(input, e); + } } } diff --git a/app/widget/nodeparamview/nodeparamviewcontext.h b/app/widget/nodeparamview/nodeparamviewcontext.h index 7f5a910e5..3760ea911 100644 --- a/app/widget/nodeparamview/nodeparamviewcontext.h +++ b/app/widget/nodeparamview/nodeparamviewcontext.h @@ -43,15 +43,19 @@ public: return contexts_; } - const QMap &GetItems() const + const QVector &GetItems() const { return items_; } + NodeParamViewItem *GetItem(Node *node, Node *ctx); + void AddNode(NodeParamViewItem *item); void RemoveNode(Node *node, Node *ctx); + void RemoveNodesWithContext(Node *ctx); + void Clear(); void SetInputChecked(const NodeInput &input, bool e); @@ -81,7 +85,7 @@ private: QVector contexts_; - QMap items_; + QVector items_; private slots: void AddEffectButtonClicked(); diff --git a/app/window/mainwindow/mainwindow.cpp b/app/window/mainwindow/mainwindow.cpp index e8d5b700b..f956e9051 100644 --- a/app/window/mainwindow/mainwindow.cpp +++ b/app/window/mainwindow/mainwindow.cpp @@ -459,7 +459,7 @@ void MainWindow::StatusBarDoubleClicked() void MainWindow::NodePanelGroupOpenedOrClosed() { NodePanel *p = static_cast(sender()); - param_panel_->SetContexts(p->GetContexts(), p->IsGroupOverlay()); + param_panel_->SetContexts(p->GetContexts()); } void MainWindow::TimelinePanelSelectionChanged(const QVector &blocks) @@ -728,7 +728,7 @@ void MainWindow::UpdateNodePanelContextFromTimelinePanel(TimelinePanel *panel) } node_panel_->SetContexts(context); - param_panel_->SetContexts(context, false); + param_panel_->SetContexts(context); } void MainWindow::FocusedPanelChanged(PanelWidget *panel) @@ -743,7 +743,7 @@ void MainWindow::FocusedPanelChanged(PanelWidget *panel) const QVector &new_ctxs = node_panel->GetContexts(); if (new_ctxs != param_panel_->GetContexts()) { - param_panel_->SetContexts(new_ctxs, node_panel->IsGroupOverlay()); + param_panel_->SetContexts(new_ctxs); } } else if (TimelinePanel* timeline = dynamic_cast(panel)) { // Signal timeline focus From e85a5b21b05a4a75dd939802c0c788d1876c9d18 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 11 Apr 2022 11:06:51 -0700 Subject: [PATCH 083/114] nodeparamview: fixed problematic behavior Fixes #1894 --- app/widget/nodeparamview/nodeparamview.cpp | 41 ++++++++++--------- .../nodeparamview/nodeparamviewcontext.cpp | 2 +- 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/app/widget/nodeparamview/nodeparamview.cpp b/app/widget/nodeparamview/nodeparamview.cpp index f186daed2..6f2147247 100644 --- a/app/widget/nodeparamview/nodeparamview.cpp +++ b/app/widget/nodeparamview/nodeparamview.cpp @@ -405,13 +405,13 @@ void NodeParamView::RemoveContext(Node *ctx) disconnect(ctx, &Node::NodeAddedToContext, this, &NodeParamView::NodeAddedToContext); disconnect(ctx, &Node::NodeRemovedFromContext, this, &NodeParamView::NodeRemovedFromContext); - NodeParamViewContext *item = GetContextItemFromContext(ctx); + foreach (NodeParamViewContext *item, context_items_) { + item->RemoveContext(ctx); + item->RemoveNodesWithContext(ctx); - item->RemoveContext(ctx); - item->RemoveNodesWithContext(ctx); - - if (item->GetContexts().isEmpty()) { - item->setVisible(false); + if (item->GetContexts().isEmpty()) { + item->setVisible(false); + } } } @@ -454,25 +454,28 @@ void NodeParamView::AddNode(Node *n, Node *ctx, NodeParamViewContext *context) void NodeParamView::RemoveNode(Node *n, Node *ctx) { - NodeParamViewContext *ctx_item = GetContextItemFromContext(ctx); - NodeParamViewItem *item = ctx_item->GetItem(n, ctx); + foreach (NodeParamViewContext *ctx_item, context_items_) { + NodeParamViewItem *item = ctx_item->GetItem(n, ctx); - if (focused_node_ == item) { - focused_node_ = nullptr; - emit FocusedNodeChanged(nullptr); - } + if (item) { + if (focused_node_ == item) { + focused_node_ = nullptr; + emit FocusedNodeChanged(nullptr); + } - if (keyframe_view_) { - for (auto it=item->GetKeyframeConnections().begin(); it!=item->GetKeyframeConnections().end(); it++) { - for (auto jt=it->begin(); jt!=it->end(); jt++) { - for (auto kt=jt->begin(); kt!=jt->end(); kt++) { - keyframe_view_->RemoveKeyframesOfTrack(*kt); + if (keyframe_view_) { + for (auto it=item->GetKeyframeConnections().begin(); it!=item->GetKeyframeConnections().end(); it++) { + for (auto jt=it->begin(); jt!=it->end(); jt++) { + for (auto kt=jt->begin(); kt!=jt->end(); kt++) { + keyframe_view_->RemoveKeyframesOfTrack(*kt); + } + } } } } - } - ctx_item->RemoveNode(n, ctx); + ctx_item->RemoveNode(n, ctx); + } } int GetDistanceBetweenNodes(Node *start, Node *end) diff --git a/app/widget/nodeparamview/nodeparamviewcontext.cpp b/app/widget/nodeparamview/nodeparamviewcontext.cpp index ad761b870..a73d41ce2 100644 --- a/app/widget/nodeparamview/nodeparamviewcontext.cpp +++ b/app/widget/nodeparamview/nodeparamviewcontext.cpp @@ -47,7 +47,7 @@ NodeParamViewContext::NodeParamViewContext(QWidget *parent) : NodeParamViewItem *NodeParamViewContext::GetItem(Node *node, Node *ctx) { - for (auto it=items_.begin(); it!=items_.end(); ) { + for (auto it=items_.begin(); it!=items_.end(); it++) { NodeParamViewItem *item = *it; if (item->GetNode() == node && item->GetContext() == ctx) { From 80d53c6d0c0d3ea1658692081ede7f30af81d015 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 11 Apr 2022 16:25:32 -0700 Subject: [PATCH 084/114] clip: improve waveforms when reversed --- app/node/block/clip/clip.cpp | 25 ++++++++++--------------- app/node/block/clip/clip.h | 2 -- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/app/node/block/clip/clip.cpp b/app/node/block/clip/clip.cpp index efd46e316..b14fc2bb2 100644 --- a/app/node/block/clip/clip.cpp +++ b/app/node/block/clip/clip.cpp @@ -95,7 +95,8 @@ void ClipBlock::set_length_and_media_out(const rational &length) if (reverse()) { // Calculate media_in adjustment - set_media_in(SequenceToMediaTime(length - this->length(), true)); + rational proposed_media_in = SequenceToMediaTime(this->length() - length, true); + set_media_in(proposed_media_in); } super::set_length_and_media_out(length); @@ -109,7 +110,14 @@ void ClipBlock::set_length_and_media_in(const rational &length) if (!reverse()) { // Calculate media_in adjustment - set_media_in(SequenceToMediaTime(this->length() - length)); + rational proposed_media_in = SequenceToMediaTime(this->length() - length); + + waveform_.TrimIn(proposed_media_in - media_in()); + + set_media_in(proposed_media_in); + } else { + // Trim waveform out point + waveform_.TrimIn(this->length() - length); } super::set_length_and_media_in(length); @@ -222,19 +230,6 @@ void ClipBlock::LinkChangeEvent() } } -void ClipBlock::InputValueChangedEvent(const QString &input, int element) -{ - super::InputValueChangedEvent(input, element); - - if (input == kMediaInInput) { - // Shift waveform in the inverse that the media in moved - rational diff = media_in() - last_media_in_; - waveform_.TrimIn(diff); - - last_media_in_ = media_in(); - } -} - TimeRange ClipBlock::InputTimeAdjustment(const QString& input, int element, const TimeRange& input_time) const { Q_UNUSED(element) diff --git a/app/node/block/clip/clip.h b/app/node/block/clip/clip.h index 82350d89f..831a3b779 100644 --- a/app/node/block/clip/clip.h +++ b/app/node/block/clip/clip.h @@ -130,8 +130,6 @@ public: protected: virtual void LinkChangeEvent() override; - virtual void InputValueChangedEvent(const QString &input, int element) override; - virtual void Hash(QCryptographicHash &hash, const NodeGlobals &globals, const VideoParams& video_params) const override; private: From 60e5241f0536a04c5edd6487862d9364cf67f1c3 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 11 Apr 2022 16:41:14 -0700 Subject: [PATCH 085/114] clip: fixed waveform issues with speed and in trimming --- app/node/block/clip/clip.cpp | 20 +++++++++++--------- app/node/block/clip/clip.h | 2 +- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/app/node/block/clip/clip.cpp b/app/node/block/clip/clip.cpp index b14fc2bb2..c61003ab9 100644 --- a/app/node/block/clip/clip.cpp +++ b/app/node/block/clip/clip.cpp @@ -110,7 +110,7 @@ void ClipBlock::set_length_and_media_in(const rational &length) if (!reverse()) { // Calculate media_in adjustment - rational proposed_media_in = SequenceToMediaTime(this->length() - length); + rational proposed_media_in = SequenceToMediaTime(this->length() - length, false, true); waveform_.TrimIn(proposed_media_in - media_in()); @@ -133,7 +133,7 @@ void ClipBlock::set_media_in(const rational &media_in) SetStandardValue(kMediaInInput, QVariant::fromValue(media_in)); } -rational ClipBlock::SequenceToMediaTime(const rational &sequence_time, bool ignore_reverse) const +rational ClipBlock::SequenceToMediaTime(const rational &sequence_time, bool ignore_reverse, bool ignore_speed) const { // These constants are not considered "values" per se, so we don't modify them if (sequence_time == RATIONAL_MIN || sequence_time == RATIONAL_MAX) { @@ -142,13 +142,15 @@ rational ClipBlock::SequenceToMediaTime(const rational &sequence_time, bool igno rational media_time = sequence_time; - double speed_value = speed(); - if (qIsNull(speed_value)) { - // Effectively holds the frame at the in point - media_time = 0; - } else if (!qFuzzyCompare(speed_value, 1.0)) { - // Multiply time - media_time = rational::fromDouble(media_time.toDouble() * speed_value); + if (!ignore_speed) { + double speed_value = speed(); + if (qIsNull(speed_value)) { + // Effectively holds the frame at the in point + media_time = 0; + } else if (!qFuzzyCompare(speed_value, 1.0)) { + // Multiply time + media_time = rational::fromDouble(media_time.toDouble() * speed_value); + } } if (reverse() && !ignore_reverse) { diff --git a/app/node/block/clip/clip.h b/app/node/block/clip/clip.h index 831a3b779..300f3408f 100644 --- a/app/node/block/clip/clip.h +++ b/app/node/block/clip/clip.h @@ -133,7 +133,7 @@ protected: virtual void Hash(QCryptographicHash &hash, const NodeGlobals &globals, const VideoParams& video_params) const override; private: - rational SequenceToMediaTime(const rational& sequence_time, bool ignore_reverse = false) const; + rational SequenceToMediaTime(const rational& sequence_time, bool ignore_reverse = false, bool ignore_speed = false) const; rational MediaToSequenceTime(const rational& media_time) const; From 245a0a112a8c722a88ced52c8dd053cd59c93602 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 11 Apr 2022 18:30:17 -0700 Subject: [PATCH 086/114] clip: fixed speed/reverse order --- app/node/block/clip/clip.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/node/block/clip/clip.cpp b/app/node/block/clip/clip.cpp index c61003ab9..4e5cfdb81 100644 --- a/app/node/block/clip/clip.cpp +++ b/app/node/block/clip/clip.cpp @@ -142,6 +142,10 @@ rational ClipBlock::SequenceToMediaTime(const rational &sequence_time, bool igno rational media_time = sequence_time; + if (reverse() && !ignore_reverse) { + media_time = length() - media_time; + } + if (!ignore_speed) { double speed_value = speed(); if (qIsNull(speed_value)) { @@ -153,10 +157,6 @@ rational ClipBlock::SequenceToMediaTime(const rational &sequence_time, bool igno } } - if (reverse() && !ignore_reverse) { - media_time = length() - media_time; - } - media_time += media_in(); return media_time; @@ -171,10 +171,6 @@ rational ClipBlock::MediaToSequenceTime(const rational &media_time) const rational sequence_time = media_time - media_in(); - if (reverse()) { - sequence_time = length() - sequence_time; - } - double speed_value = speed(); if (qIsNull(speed_value)) { // I don't know what to return here yet... @@ -184,6 +180,10 @@ rational ClipBlock::MediaToSequenceTime(const rational &media_time) const sequence_time = rational::fromDouble(sequence_time.toDouble() / speed_value); } + if (reverse()) { + sequence_time = length() - sequence_time; + } + return sequence_time; } From c073fb418f24eff394dd558f0f5e4738c3d31486 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 11 Apr 2022 18:32:11 -0700 Subject: [PATCH 087/114] speeddurationdialog: reordered duration/reverse settings --- .../speedduration/speeddurationdialog.cpp | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/app/dialog/speedduration/speeddurationdialog.cpp b/app/dialog/speedduration/speeddurationdialog.cpp index cf6af022a..e742487a2 100644 --- a/app/dialog/speedduration/speeddurationdialog.cpp +++ b/app/dialog/speedduration/speeddurationdialog.cpp @@ -155,6 +155,34 @@ void SpeedDurationDialog::accept() MultiUndoCommand *command = new MultiUndoCommand(); + // Set duration values + foreach (ClipBlock *c, clips_) { + rational proposed_length = c->length(); + + if (dur_slider_->IsTristate()) { + if (link_box_->isChecked() && !speed_slider_->IsTristate()) { + proposed_length = GetLengthAdjustment(c->length(), c->speed(), speed_slider_->GetValue(), timebase_); + } + } else { + proposed_length = dur_slider_->GetValue(); + } + + if (proposed_length != c->length()) { + // Clip length should ideally change, but check if there's "room" to do so + if (proposed_length > c->length() && c->next()) { + if (GapBlock *gap = dynamic_cast(c->next())) { + proposed_length = qMin(proposed_length, gap->out() - c->in()); + } else { + proposed_length = c->length(); + } + } + + if (proposed_length != c->length()) { + command->add_child(new BlockTrimCommand(c->track(), c, proposed_length, Timeline::kTrimOut)); + } + } + } + // Set speed values if (speed_slider_->IsTristate()) { if (link_box_->isChecked() && !dur_slider_->IsTristate()) { @@ -184,34 +212,6 @@ void SpeedDurationDialog::accept() } } - // Set duration values - foreach (ClipBlock *c, clips_) { - rational proposed_length = c->length(); - - if (dur_slider_->IsTristate()) { - if (link_box_->isChecked() && !speed_slider_->IsTristate()) { - proposed_length = GetLengthAdjustment(c->length(), c->speed(), speed_slider_->GetValue(), timebase_); - } - } else { - proposed_length = dur_slider_->GetValue(); - } - - if (proposed_length != c->length()) { - // Clip length should ideally change, but check if there's "room" to do so - if (proposed_length > c->length() && c->next()) { - if (GapBlock *gap = dynamic_cast(c->next())) { - proposed_length = qMin(proposed_length, gap->out() - c->in()); - } else { - proposed_length = c->length(); - } - } - - if (proposed_length != c->length()) { - command->add_child(new BlockTrimCommand(c->track(), c, proposed_length, Timeline::kTrimOut)); - } - } - } - Core::instance()->undo_stack()->push(command); super::accept(); From b426e8f8a0fb39c49b4d995548cbb4729be60fc3 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 11 Apr 2022 18:38:10 -0700 Subject: [PATCH 088/114] renderer: handle null samples on tempoprocessor Fixes #1862 --- app/render/renderprocessor.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/render/renderprocessor.cpp b/app/render/renderprocessor.cpp index 480ed417f..2c0080889 100644 --- a/app/render/renderprocessor.cpp +++ b/app/render/renderprocessor.cpp @@ -312,9 +312,11 @@ NodeValueTable RenderProcessor::GenerateBlockTable(const Track *track, const Tim packed = tp.Pull(); tp.Close(); - PlanarProcessor planar; - planar.Open(samples_from_this_block->audio_params()); - samples_from_this_block = planar.Convert(packed); + if (!packed.isEmpty()) { + PlanarProcessor planar; + planar.Open(samples_from_this_block->audio_params()); + samples_from_this_block = planar.Convert(packed); + } } } else { // Multiply time From 5bb1aa41f7f00b9013405a7c70d4c881026ccf3a Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 11 Apr 2022 19:40:44 -0700 Subject: [PATCH 089/114] nodeparamview: fixed crash --- app/widget/nodeparamview/nodeparamview.cpp | 14 +++++++++----- app/widget/nodeparamview/nodeparamview.h | 2 ++ app/widget/nodeparamview/nodeparamviewcontext.cpp | 10 ++-------- app/widget/nodeparamview/nodeparamviewcontext.h | 5 +++-- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/app/widget/nodeparamview/nodeparamview.cpp b/app/widget/nodeparamview/nodeparamview.cpp index 6f2147247..251e37074 100644 --- a/app/widget/nodeparamview/nodeparamview.cpp +++ b/app/widget/nodeparamview/nodeparamview.cpp @@ -74,6 +74,7 @@ NodeParamView::NodeParamView(bool create_keyframe_view, QWidget *parent) : for (int i=0; isetVisible(false); + connect(c, &NodeParamViewContext::AboutToDeleteItem, this, &NodeParamView::ItemAboutToBeRemoved, Qt::DirectConnection); NodeParamViewItemTitleBar *title_bar = static_cast(c->titleBarWidget()); @@ -285,6 +286,14 @@ void NodeParamView::UpdateContexts() } } +void NodeParamView::ItemAboutToBeRemoved(NodeParamViewItem *item) +{ + if (focused_node_ == item) { + focused_node_ = nullptr; + emit FocusedNodeChanged(nullptr); + } +} + void NodeParamView::SetContexts(const QVector &contexts) { // Setting contexts is expensive, so we queue it here to prevent multiple calls in a short timespan @@ -458,11 +467,6 @@ void NodeParamView::RemoveNode(Node *n, Node *ctx) NodeParamViewItem *item = ctx_item->GetItem(n, ctx); if (item) { - if (focused_node_ == item) { - focused_node_ = nullptr; - emit FocusedNodeChanged(nullptr); - } - if (keyframe_view_) { for (auto it=item->GetKeyframeConnections().begin(); it!=item->GetKeyframeConnections().end(); it++) { for (auto jt=it->begin(); jt!=it->end(); jt++) { diff --git a/app/widget/nodeparamview/nodeparamview.h b/app/widget/nodeparamview/nodeparamview.h index eeca7e668..bbb5603c4 100644 --- a/app/widget/nodeparamview/nodeparamview.h +++ b/app/widget/nodeparamview/nodeparamview.h @@ -158,6 +158,8 @@ private slots: void UpdateContexts(); + void ItemAboutToBeRemoved(NodeParamViewItem *item); + }; } diff --git a/app/widget/nodeparamview/nodeparamviewcontext.cpp b/app/widget/nodeparamview/nodeparamviewcontext.cpp index a73d41ce2..a07c3975b 100644 --- a/app/widget/nodeparamview/nodeparamviewcontext.cpp +++ b/app/widget/nodeparamview/nodeparamviewcontext.cpp @@ -70,6 +70,7 @@ void NodeParamViewContext::RemoveNode(Node *node, Node *ctx) NodeParamViewItem *item = *it; if (item->GetNode() == node && item->GetContext() == ctx) { + emit AboutToDeleteItem(item); delete item; it = items_.erase(it); } else { @@ -84,6 +85,7 @@ void NodeParamViewContext::RemoveNodesWithContext(Node *ctx) NodeParamViewItem *item = *it; if (item->GetContext() == ctx) { + emit AboutToDeleteItem(item); delete item; it = items_.erase(it); } else { @@ -92,14 +94,6 @@ void NodeParamViewContext::RemoveNodesWithContext(Node *ctx) } } -void NodeParamViewContext::Clear() -{ - qDeleteAll(items_); - items_.clear(); - - contexts_.clear(); -} - void NodeParamViewContext::SetInputChecked(const NodeInput &input, bool e) { foreach (NodeParamViewItem *item, items_) { diff --git a/app/widget/nodeparamview/nodeparamviewcontext.h b/app/widget/nodeparamview/nodeparamviewcontext.h index 3760ea911..5652277e9 100644 --- a/app/widget/nodeparamview/nodeparamviewcontext.h +++ b/app/widget/nodeparamview/nodeparamviewcontext.h @@ -56,8 +56,6 @@ public: void RemoveNodesWithContext(Node *ctx); - void Clear(); - void SetInputChecked(const NodeInput &input, bool e); void SetTimebase(const rational &timebase); @@ -66,6 +64,9 @@ public: void SetTime(const rational &time); +signals: + void AboutToDeleteItem(NodeParamViewItem *item); + public slots: void AddContext(Node *node) { From 7ceb5c091473c7510b9920f28ff50fd247dc8893 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 11 Apr 2022 19:49:50 -0700 Subject: [PATCH 090/114] timeline: implement track select tool Fixes #866 --- app/tool/tool.h | 3 + app/widget/timelinewidget/timelinewidget.cpp | 2 + app/widget/timelinewidget/tool/CMakeLists.txt | 2 + app/widget/timelinewidget/tool/pointer.cpp | 4 +- app/widget/timelinewidget/tool/pointer.h | 14 +-- .../timelinewidget/tool/trackselect.cpp | 96 +++++++++++++++++++ app/widget/timelinewidget/tool/trackselect.h | 42 ++++++++ .../timelinewidget/view/timelineview.cpp | 3 + app/widget/toolbar/toolbar.cpp | 3 + app/widget/toolbar/toolbar.h | 1 + app/window/mainwindow/mainmenu.cpp | 6 ++ app/window/mainwindow/mainmenu.h | 1 + 12 files changed, 169 insertions(+), 8 deletions(-) create mode 100644 app/widget/timelinewidget/tool/trackselect.cpp create mode 100644 app/widget/timelinewidget/tool/trackselect.h diff --git a/app/tool/tool.h b/app/tool/tool.h index 90482062d..f6422e806 100644 --- a/app/tool/tool.h +++ b/app/tool/tool.h @@ -74,6 +74,9 @@ public: /// Add tool kAdd, + /// Track select tool + kTrackSelect, + kCount }; diff --git a/app/widget/timelinewidget/timelinewidget.cpp b/app/widget/timelinewidget/timelinewidget.cpp index af0844486..39850defc 100644 --- a/app/widget/timelinewidget/timelinewidget.cpp +++ b/app/widget/timelinewidget/timelinewidget.cpp @@ -41,6 +41,7 @@ #include "tool/rolling.h" #include "tool/slide.h" #include "tool/slip.h" +#include "tool/trackselect.h" #include "tool/transition.h" #include "tool/zoom.h" #include "tool/tool.h" @@ -100,6 +101,7 @@ TimelineWidget::TimelineWidget(QWidget *parent) : tools_.fill(nullptr); tools_.replace(olive::Tool::kPointer, new PointerTool(this)); + tools_.replace(olive::Tool::kTrackSelect, new TrackSelectTool(this)); tools_.replace(olive::Tool::kEdit, new EditTool(this)); tools_.replace(olive::Tool::kRipple, new RippleTool(this)); tools_.replace(olive::Tool::kRolling, new RollingTool(this)); diff --git a/app/widget/timelinewidget/tool/CMakeLists.txt b/app/widget/timelinewidget/tool/CMakeLists.txt index ca5a88918..8175a66cf 100644 --- a/app/widget/timelinewidget/tool/CMakeLists.txt +++ b/app/widget/timelinewidget/tool/CMakeLists.txt @@ -38,6 +38,8 @@ set(OLIVE_SOURCES widget/timelinewidget/tool/slide.h widget/timelinewidget/tool/slip.cpp widget/timelinewidget/tool/slip.h + widget/timelinewidget/tool/trackselect.cpp + widget/timelinewidget/tool/trackselect.h widget/timelinewidget/tool/transition.cpp widget/timelinewidget/tool/transition.h widget/timelinewidget/tool/tool.cpp diff --git a/app/widget/timelinewidget/tool/pointer.cpp b/app/widget/timelinewidget/tool/pointer.cpp index b82a8b83d..5b6be9e14 100644 --- a/app/widget/timelinewidget/tool/pointer.cpp +++ b/app/widget/timelinewidget/tool/pointer.cpp @@ -44,6 +44,7 @@ PointerTool::PointerTool(TimelineWidget *parent) : trimming_allowed_(true), track_movement_allowed_(true), gap_trimming_allowed_(false), + can_rubberband_select_(false), rubberband_selecting_(false) { } @@ -715,8 +716,7 @@ Timeline::MovementMode PointerTool::IsCursorInTrimHandle(Block *block, qreal cur } } -void PointerTool::InitiateDrag(Block *clicked_item, - Timeline::MovementMode trim_mode) +void PointerTool::InitiateDrag(Block *clicked_item, Timeline::MovementMode trim_mode) { InitiateDragInternal(clicked_item, trim_mode, false, false, false); } diff --git a/app/widget/timelinewidget/tool/pointer.h b/app/widget/timelinewidget/tool/pointer.h index ca23b7fd9..f64bd9b34 100644 --- a/app/widget/timelinewidget/tool/pointer.h +++ b/app/widget/timelinewidget/tool/pointer.h @@ -39,8 +39,7 @@ public: protected: virtual void FinishDrag(TimelineViewMouseEvent *event); - virtual void InitiateDrag(Block* clicked_item, - Timeline::MovementMode trim_mode); + virtual void InitiateDrag(Block* clicked_item, Timeline::MovementMode trim_mode); TimelineViewGhostItem* AddGhostFromBlock(Block *block, Timeline::MovementMode mode, bool check_if_exists = false); @@ -69,10 +68,8 @@ protected: bool dont_roll_trims, bool allow_nongap_rolling, bool slide_instead_of_moving); - const Timeline::MovementMode& drag_movement_mode() const - { - return drag_movement_mode_; - } + const Timeline::MovementMode& drag_movement_mode() const { return drag_movement_mode_; } + void set_drag_movement_mode(const Timeline::MovementMode &d) { drag_movement_mode_ = d; } void SetMovementAllowed(bool e) { @@ -94,6 +91,11 @@ protected: gap_trimming_allowed_ = e; } + void SetClickedItem(Block *b) + { + clicked_item_ = b; + } + private: Timeline::MovementMode IsCursorInTrimHandle(Block* block, qreal cursor_x); diff --git a/app/widget/timelinewidget/tool/trackselect.cpp b/app/widget/timelinewidget/tool/trackselect.cpp new file mode 100644 index 000000000..57a948ef3 --- /dev/null +++ b/app/widget/timelinewidget/tool/trackselect.cpp @@ -0,0 +1,96 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#include "trackselect.h" + +#include "node/block/gap/gap.h" +#include "node/output/track/track.h" +#include "widget/timelinewidget/timelinewidget.h" + +namespace olive { + +TrackSelectTool::TrackSelectTool(TimelineWidget *parent) : + PointerTool(parent) +{ +} + +void TrackSelectTool::MousePress(TimelineViewMouseEvent *event) +{ + QVector blocks; + bool forward = !(event->GetModifiers() & Qt::ControlModifier); + + parent()->DeselectAll(); + + if (event->GetModifiers() & Qt::ShiftModifier) { + // Track only + Track *track = parent()->GetTrackFromReference(event->GetTrack()); + if (track) { + SelectBlocksOnTrack(track, event, &blocks, forward); + } + } else { + // All tracks + foreach (Track *track, parent()->sequence()->GetTracks()) { + SelectBlocksOnTrack(track, event, &blocks, forward); + } + } + + if (!blocks.isEmpty()) { + parent()->SignalSelectedBlocks(blocks); + set_drag_movement_mode(Timeline::kMove); + SetClickedItem(blocks.first()); + drag_start_ = event->GetCoordinates(); + } else { + set_drag_movement_mode(Timeline::kNone); + } +} + +void TrackSelectTool::SelectBlocksOnTrack(Track *track, TimelineViewMouseEvent *event, QVector *blocks, bool forward) +{ + Block *b = track->NearestBlockBeforeOrAt(event->GetFrame()); + + if (!b && !track->Blocks().isEmpty() && !forward) { + // Fallback to first or last block in track + b = track->Blocks().last(); + } + + while (b) { + if (!dynamic_cast(b)) { + if (!blocks->contains(b)) { + parent()->AddSelection(b); + blocks->append(b); + } + + if (!(event->GetModifiers() & Qt::AltModifier)) { + if (ClipBlock *clip = dynamic_cast(b)) { + foreach (Block *link, clip->block_links()) { + if (!blocks->contains(link)) { + parent()->AddSelection(link); + blocks->append(link); + } + } + } + } + } + + b = forward ? b->next() : b->previous(); + } +} + +} diff --git a/app/widget/timelinewidget/tool/trackselect.h b/app/widget/timelinewidget/tool/trackselect.h new file mode 100644 index 000000000..1ff4e4a9f --- /dev/null +++ b/app/widget/timelinewidget/tool/trackselect.h @@ -0,0 +1,42 @@ +/*** + + Olive - Non-Linear Video Editor + Copyright (C) 2021 Olive Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +***/ + +#ifndef TRACKSELECTTOOL_H +#define TRACKSELECTTOOL_H + +#include "pointer.h" + +namespace olive { + +class TrackSelectTool : public PointerTool +{ +public: + TrackSelectTool(TimelineWidget *parent); + + virtual void MousePress(TimelineViewMouseEvent *event) override; + +private: + void SelectBlocksOnTrack(Track *track, TimelineViewMouseEvent *event, QVector *blocks, bool forward); + +}; + +} + +#endif // TRACKSELECTTOOL_H diff --git a/app/widget/timelinewidget/view/timelineview.cpp b/app/widget/timelinewidget/view/timelineview.cpp index 97424c59a..3488a8e80 100644 --- a/app/widget/timelinewidget/view/timelineview.cpp +++ b/app/widget/timelinewidget/view/timelineview.cpp @@ -347,6 +347,9 @@ void TimelineView::ToolChangedEvent(Tool::Item tool) case Tool::kZoom: setCursor(Qt::CrossCursor); break; + case Tool::kTrackSelect: + setCursor(Qt::SizeHorCursor); // FIXME: Not the ideal cursor + break; default: unsetCursor(); } diff --git a/app/widget/toolbar/toolbar.cpp b/app/widget/toolbar/toolbar.cpp index 5b08edce7..ca3a04056 100644 --- a/app/widget/toolbar/toolbar.cpp +++ b/app/widget/toolbar/toolbar.cpp @@ -42,6 +42,7 @@ Toolbar::Toolbar(QWidget *parent) : // Create standard tool buttons btn_pointer_tool_ = CreateToolButton(Tool::kPointer); + btn_trackselect_tool_ = CreateToolButton(Tool::kTrackSelect); btn_edit_tool_ = CreateToolButton(Tool::kEdit); btn_ripple_tool_ = CreateToolButton(Tool::kRipple); btn_rolling_tool_ = CreateToolButton(Tool::kRolling); @@ -107,6 +108,7 @@ void Toolbar::resizeEvent(QResizeEvent *e) void Toolbar::Retranslate() { btn_pointer_tool_->setToolTip(tr("Pointer Tool")); + btn_trackselect_tool_->setToolTip(tr("Track Select Tool")); btn_edit_tool_->setToolTip(tr("Edit Tool")); btn_ripple_tool_->setToolTip(tr("Ripple Tool")); btn_rolling_tool_->setToolTip(tr("Rolling Tool")); @@ -124,6 +126,7 @@ void Toolbar::Retranslate() void Toolbar::UpdateIcons() { btn_pointer_tool_->setIcon(icon::ToolPointer); + btn_trackselect _tool_->setIcon(icon::TriRight); // FIXME: Procure real icon btn_edit_tool_->setIcon(icon::ToolEdit); btn_ripple_tool_->setIcon(icon::ToolRipple); btn_rolling_tool_->setIcon(icon::ToolRolling); diff --git a/app/widget/toolbar/toolbar.h b/app/widget/toolbar/toolbar.h index 271af43d6..16c1989f1 100644 --- a/app/widget/toolbar/toolbar.h +++ b/app/widget/toolbar/toolbar.h @@ -173,6 +173,7 @@ private: QList toolbar_btns_; ToolbarButton* btn_pointer_tool_; + ToolbarButton* btn_trackselect_tool_; ToolbarButton* btn_edit_tool_; ToolbarButton* btn_ripple_tool_; ToolbarButton* btn_rolling_tool_; diff --git a/app/window/mainwindow/mainmenu.cpp b/app/window/mainwindow/mainmenu.cpp index 276c698a2..c4ba08d5e 100644 --- a/app/window/mainwindow/mainmenu.cpp +++ b/app/window/mainwindow/mainmenu.cpp @@ -207,6 +207,11 @@ MainMenu::MainMenu(MainWindow *parent) : tools_pointer_item_->setData(Tool::kPointer); tools_group_->addAction(tools_pointer_item_); + tools_trackselect_item_ = tools_menu_->AddItem("trackselecttool", this, &MainMenu::ToolItemTriggered, tr("D")); + tools_trackselect_item_->setCheckable(true); + tools_trackselect_item_->setData(Tool::kTrackSelect); + tools_group_->addAction(tools_trackselect_item_); + tools_edit_item_ = tools_menu_->AddItem("edittool", this, &MainMenu::ToolItemTriggered, tr("X")); tools_edit_item_->setCheckable(true); tools_edit_item_->setData(Tool::kEdit); @@ -763,6 +768,7 @@ void MainMenu::Retranslate() // Tools menu tools_menu_->setTitle(tr("&Tools")); tools_pointer_item_->setText(tr("Pointer Tool")); + tools_trackselect_item_->setText(tr("Track Select Tool")); tools_edit_item_->setText(tr("Edit Tool")); tools_ripple_item_->setText(tr("Ripple Tool")); tools_rolling_item_->setText(tr("Rolling Tool")); diff --git a/app/window/mainwindow/mainmenu.h b/app/window/mainwindow/mainmenu.h index 748e7159f..ba5740f0b 100644 --- a/app/window/mainwindow/mainmenu.h +++ b/app/window/mainwindow/mainmenu.h @@ -272,6 +272,7 @@ private: Menu* tools_menu_; QActionGroup* tools_group_; QAction* tools_pointer_item_; + QAction* tools_trackselect_item_; QAction* tools_edit_item_; QAction* tools_ripple_item_; QAction* tools_rolling_item_; From 0eaf42204cee293b7cb32e35c18030f3ff24078b Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 11 Apr 2022 21:17:33 -0700 Subject: [PATCH 091/114] fixed rogue space --- app/widget/toolbar/toolbar.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/widget/toolbar/toolbar.cpp b/app/widget/toolbar/toolbar.cpp index ca3a04056..dd30d4372 100644 --- a/app/widget/toolbar/toolbar.cpp +++ b/app/widget/toolbar/toolbar.cpp @@ -126,7 +126,7 @@ void Toolbar::Retranslate() void Toolbar::UpdateIcons() { btn_pointer_tool_->setIcon(icon::ToolPointer); - btn_trackselect _tool_->setIcon(icon::TriRight); // FIXME: Procure real icon + btn_trackselect_tool_->setIcon(icon::TriRight); // FIXME: Procure real icon btn_edit_tool_->setIcon(icon::ToolEdit); btn_ripple_tool_->setIcon(icon::ToolRipple); btn_rolling_tool_->setIcon(icon::ToolRolling); From 25d0196094f73d2ad3f24a1cc8eda3353a51450e Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Tue, 12 Apr 2022 00:32:15 -0700 Subject: [PATCH 092/114] timeline: add links when trimming adjacent gaps Fixes #1808 --- app/widget/timelinewidget/tool/pointer.cpp | 44 ++++++++++++++-------- app/widget/timelinewidget/tool/pointer.h | 3 +- app/widget/timelinewidget/tool/ripple.cpp | 5 +-- app/widget/timelinewidget/tool/ripple.h | 3 +- app/widget/timelinewidget/tool/rolling.cpp | 5 +-- app/widget/timelinewidget/tool/rolling.h | 3 +- app/widget/timelinewidget/tool/slide.cpp | 4 +- app/widget/timelinewidget/tool/slide.h | 3 +- 8 files changed, 39 insertions(+), 31 deletions(-) diff --git a/app/widget/timelinewidget/tool/pointer.cpp b/app/widget/timelinewidget/tool/pointer.cpp index 5b6be9e14..8ab2eaef8 100644 --- a/app/widget/timelinewidget/tool/pointer.cpp +++ b/app/widget/timelinewidget/tool/pointer.cpp @@ -171,7 +171,7 @@ void PointerTool::MouseMove(TimelineViewMouseEvent *event) // If we're performing an action, we can initiate ghosts if (drag_movement_mode_ != Timeline::kNone) { - InitiateDrag(clicked_item_, drag_movement_mode_); + InitiateDrag(clicked_item_, drag_movement_mode_, event->GetModifiers()); } // Set dragging to true here so no matter what, the drag isn't re-initiated until it's completed @@ -244,6 +244,7 @@ void SetGhostToSlideMode(TimelineViewGhostItem* g) void PointerTool::InitiateDragInternal(Block *clicked_item, Timeline::MovementMode trim_mode, + Qt::KeyboardModifiers modifiers, bool dont_roll_trims, bool allow_nongap_rolling, bool slide_instead_of_moving) @@ -407,30 +408,41 @@ void PointerTool::InitiateDragInternal(Block *clicked_item, } Timeline::MovementMode flipped_mode = FlipTrimMode(trim_mode); - TimelineViewGhostItem* adjacent_ghost; + QVector adjacent_ghosts; if (adjacent) { - adjacent_ghost = AddGhostFromBlock(adjacent, flipped_mode); + adjacent_ghosts.append(AddGhostFromBlock(adjacent, flipped_mode)); + + // Select adjacent's links if applicable + // FIXME: The check for `clips.size() == 1` may not be necessary, but I don't know yet. + // I'm only including it to prevent any potentially unintended behavior. + if (clips.size() == 1 && !(modifiers & Qt::AltModifier)) { + if (ClipBlock *adjacent_clip = dynamic_cast(adjacent)) { + foreach (Block *adjacent_link, adjacent_clip->block_links()) { + adjacent_ghosts.append(AddGhostFromBlock(adjacent_link, flipped_mode)); + } + } + } } else if (trim_mode == Timeline::kTrimIn || block->next()) { rational null_ghost_pos = (trim_mode == Timeline::kTrimIn) ? block->in() : block->out(); - adjacent_ghost = AddGhostFromNull(null_ghost_pos, null_ghost_pos, clip_item->track()->ToReference(), flipped_mode); - } else { - adjacent_ghost = nullptr; + adjacent_ghosts.append(AddGhostFromNull(null_ghost_pos, null_ghost_pos, clip_item->track()->ToReference(), flipped_mode)); } // If we have an adjacent block (for any reason), this is a roll edit and the adjacent is // expected to fill the remaining space (no gap needs to be created) ghost->SetData(TimelineViewGhostItem::kTrimIsARollEdit, static_cast(adjacent)); - if (adjacent_ghost) { - if (treat_trim_as_slide) { - // We're sliding a transition rather than a pure trim/roll - SetGhostToSlideMode(adjacent_ghost); - } else if (dynamic_cast(block)) { - ghost->SetData(TimelineViewGhostItem::kTrimShouldBeIgnored, true); - } else { - adjacent_ghost->SetData(TimelineViewGhostItem::kTrimShouldBeIgnored, true); + foreach (TimelineViewGhostItem *adjacent_ghost, adjacent_ghosts) { + if (adjacent_ghost) { + if (treat_trim_as_slide) { + // We're sliding a transition rather than a pure trim/roll + SetGhostToSlideMode(adjacent_ghost); + } else if (dynamic_cast(block)) { + ghost->SetData(TimelineViewGhostItem::kTrimShouldBeIgnored, true); + } else { + adjacent_ghost->SetData(TimelineViewGhostItem::kTrimShouldBeIgnored, true); + } } } } @@ -716,9 +728,9 @@ Timeline::MovementMode PointerTool::IsCursorInTrimHandle(Block *block, qreal cur } } -void PointerTool::InitiateDrag(Block *clicked_item, Timeline::MovementMode trim_mode) +void PointerTool::InitiateDrag(Block *clicked_item, Timeline::MovementMode trim_mode, Qt::KeyboardModifiers modifiers) { - InitiateDragInternal(clicked_item, trim_mode, false, false, false); + InitiateDragInternal(clicked_item, trim_mode, modifiers, false, false, false); } //#define HIDE_GAP_GHOSTS diff --git a/app/widget/timelinewidget/tool/pointer.h b/app/widget/timelinewidget/tool/pointer.h index f64bd9b34..d44d60c8e 100644 --- a/app/widget/timelinewidget/tool/pointer.h +++ b/app/widget/timelinewidget/tool/pointer.h @@ -39,7 +39,7 @@ public: protected: virtual void FinishDrag(TimelineViewMouseEvent *event); - virtual void InitiateDrag(Block* clicked_item, Timeline::MovementMode trim_mode); + virtual void InitiateDrag(Block* clicked_item, Timeline::MovementMode trim_mode, Qt::KeyboardModifiers modifiers); TimelineViewGhostItem* AddGhostFromBlock(Block *block, Timeline::MovementMode mode, bool check_if_exists = false); @@ -65,6 +65,7 @@ protected: void InitiateDragInternal(Block* clicked_item, Timeline::MovementMode trim_mode, + Qt::KeyboardModifiers modifiers, bool dont_roll_trims, bool allow_nongap_rolling, bool slide_instead_of_moving); diff --git a/app/widget/timelinewidget/tool/ripple.cpp b/app/widget/timelinewidget/tool/ripple.cpp index 919c67edb..2eeae67fa 100644 --- a/app/widget/timelinewidget/tool/ripple.cpp +++ b/app/widget/timelinewidget/tool/ripple.cpp @@ -34,10 +34,9 @@ RippleTool::RippleTool(TimelineWidget* parent) : SetGapTrimmingAllowed(true); } -void RippleTool::InitiateDrag(Block *clicked_item, - Timeline::MovementMode trim_mode) +void RippleTool::InitiateDrag(Block *clicked_item, Timeline::MovementMode trim_mode, Qt::KeyboardModifiers modifiers) { - InitiateDragInternal(clicked_item, trim_mode, true, true, false); + InitiateDragInternal(clicked_item, trim_mode, modifiers, true, true, false); if (!parent()->HasGhosts()) { return; diff --git a/app/widget/timelinewidget/tool/ripple.h b/app/widget/timelinewidget/tool/ripple.h index 6bd197418..b58ced311 100644 --- a/app/widget/timelinewidget/tool/ripple.h +++ b/app/widget/timelinewidget/tool/ripple.h @@ -32,8 +32,7 @@ public: protected: virtual void FinishDrag(TimelineViewMouseEvent *event) override; - virtual void InitiateDrag(Block* clicked_item, - Timeline::MovementMode trim_mode) override; + virtual void InitiateDrag(Block* clicked_item, Timeline::MovementMode trim_mode, Qt::KeyboardModifiers modifiers) override; }; } diff --git a/app/widget/timelinewidget/tool/rolling.cpp b/app/widget/timelinewidget/tool/rolling.cpp index f7622bbfc..3f5ff410e 100644 --- a/app/widget/timelinewidget/tool/rolling.cpp +++ b/app/widget/timelinewidget/tool/rolling.cpp @@ -33,10 +33,9 @@ RollingTool::RollingTool(TimelineWidget* parent) : SetGapTrimmingAllowed(true); } -void RollingTool::InitiateDrag(Block *clicked_item, - Timeline::MovementMode trim_mode) +void RollingTool::InitiateDrag(Block *clicked_item, Timeline::MovementMode trim_mode, Qt::KeyboardModifiers modifiers) { - InitiateDragInternal(clicked_item, trim_mode, false, true, false); + InitiateDragInternal(clicked_item, trim_mode, modifiers, false, true, false); } } diff --git a/app/widget/timelinewidget/tool/rolling.h b/app/widget/timelinewidget/tool/rolling.h index 286bcee77..724f79c80 100644 --- a/app/widget/timelinewidget/tool/rolling.h +++ b/app/widget/timelinewidget/tool/rolling.h @@ -31,8 +31,7 @@ public: RollingTool(TimelineWidget* parent); protected: - virtual void InitiateDrag(Block* clicked_item, - Timeline::MovementMode trim_mode) override; + virtual void InitiateDrag(Block* clicked_item, Timeline::MovementMode trim_mode, Qt::KeyboardModifiers modifiers) override; }; } diff --git a/app/widget/timelinewidget/tool/slide.cpp b/app/widget/timelinewidget/tool/slide.cpp index 5085caf4a..30ee0376b 100644 --- a/app/widget/timelinewidget/tool/slide.cpp +++ b/app/widget/timelinewidget/tool/slide.cpp @@ -34,9 +34,9 @@ SlideTool::SlideTool(TimelineWidget* parent) : SetGapTrimmingAllowed(true); } -void SlideTool::InitiateDrag(Block *clicked_item, Timeline::MovementMode trim_mode) +void SlideTool::InitiateDrag(Block *clicked_item, Timeline::MovementMode trim_mode, Qt::KeyboardModifiers modifiers) { - InitiateDragInternal(clicked_item, trim_mode, false, true, true); + InitiateDragInternal(clicked_item, trim_mode, modifiers, false, true, true); } } diff --git a/app/widget/timelinewidget/tool/slide.h b/app/widget/timelinewidget/tool/slide.h index e8ab3a031..ce7c57821 100644 --- a/app/widget/timelinewidget/tool/slide.h +++ b/app/widget/timelinewidget/tool/slide.h @@ -31,8 +31,7 @@ public: SlideTool(TimelineWidget* parent); protected: - virtual void InitiateDrag(Block* clicked_item, - Timeline::MovementMode trim_mode) override; + virtual void InitiateDrag(Block* clicked_item, Timeline::MovementMode trim_mode, Qt::KeyboardModifiers modifiers) override; }; From 60f80d4a14daa8ee0381e706b6adc53df51b6f2d Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Tue, 12 Apr 2022 09:28:51 -0700 Subject: [PATCH 093/114] ui: moved timeline selection signal queue to timeline Probably a safer way to do this --- app/widget/nodeparamview/nodeparamview.cpp | 8 +------- app/widget/nodeparamview/nodeparamview.h | 2 -- app/widget/timelinewidget/timelinewidget.cpp | 15 ++++++++++++--- app/widget/timelinewidget/timelinewidget.h | 2 ++ 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/app/widget/nodeparamview/nodeparamview.cpp b/app/widget/nodeparamview/nodeparamview.cpp index 251e37074..2aba90ed7 100644 --- a/app/widget/nodeparamview/nodeparamview.cpp +++ b/app/widget/nodeparamview/nodeparamview.cpp @@ -155,11 +155,6 @@ NodeParamView::NodeParamView(bool create_keyframe_view, QWidget *parent) : &QApplication::focusChanged, this, &NodeParamView::FocusChanged); - - ctx_update_timer_ = new QTimer(this); - ctx_update_timer_->setInterval(1); - ctx_update_timer_->setSingleShot(true); - connect(ctx_update_timer_, &QTimer::timeout, this, &NodeParamView::UpdateContexts); } NodeParamView::~NodeParamView() @@ -298,8 +293,7 @@ void NodeParamView::SetContexts(const QVector &contexts) { // Setting contexts is expensive, so we queue it here to prevent multiple calls in a short timespan contexts_ = contexts; - ctx_update_timer_->stop(); - ctx_update_timer_->start(); + UpdateContexts(); } void NodeParamView::resizeEvent(QResizeEvent *event) diff --git a/app/widget/nodeparamview/nodeparamview.h b/app/widget/nodeparamview/nodeparamview.h index bbb5603c4..9a9207cb7 100644 --- a/app/widget/nodeparamview/nodeparamview.h +++ b/app/widget/nodeparamview/nodeparamview.h @@ -135,8 +135,6 @@ private: QVector contexts_; QVector current_contexts_; - QTimer *ctx_update_timer_; - private slots: void UpdateGlobalScrollBar(); diff --git a/app/widget/timelinewidget/timelinewidget.cpp b/app/widget/timelinewidget/timelinewidget.cpp index 39850defc..07c3fe52c 100644 --- a/app/widget/timelinewidget/timelinewidget.cpp +++ b/app/widget/timelinewidget/timelinewidget.cpp @@ -185,6 +185,14 @@ TimelineWidget::TimelineWidget(QWidget *parent) : connect(Core::instance(), &Core::ToolChanged, this, &TimelineWidget::ToolChanged); connect(Core::instance(), &Core::AddableObjectChanged, this, &TimelineWidget::AddableObjectChanged); + + signal_block_change_timer_ = new QTimer(this); + signal_block_change_timer_->setInterval(1); + signal_block_change_timer_->setSingleShot(true); + connect(signal_block_change_timer_, &QTimer::timeout, this, [this]{ + signal_block_change_timer_->stop(); + emit BlockSelectionChanged(selected_blocks_); + }); } TimelineWidget::~TimelineWidget() @@ -1163,7 +1171,8 @@ void TimelineWidget::SetScrollZoomsByDefaultOnAllViews(bool e) void TimelineWidget::SignalBlockSelectionChange() { - emit BlockSelectionChanged(selected_blocks_); + signal_block_change_timer_->stop(); + signal_block_change_timer_->start(); } void TimelineWidget::AddGhost(TimelineViewGhostItem *ghost) @@ -1336,7 +1345,7 @@ void TimelineWidget::SignalSelectedBlocks(QVector input, bool filter) selected_blocks_.append(input); - emit SignalBlockSelectionChange(); + SignalBlockSelectionChange(); } void TimelineWidget::SignalDeselectedBlocks(const QVector &deselected_blocks) @@ -1349,7 +1358,7 @@ void TimelineWidget::SignalDeselectedBlocks(const QVector &deselected_b selected_blocks_.removeOne(b); } - emit SignalBlockSelectionChange(); + SignalBlockSelectionChange(); } void TimelineWidget::SignalDeselectedAllBlocks() diff --git a/app/widget/timelinewidget/timelinewidget.h b/app/widget/timelinewidget/timelinewidget.h index f746b545b..a79195252 100644 --- a/app/widget/timelinewidget/timelinewidget.h +++ b/app/widget/timelinewidget/timelinewidget.h @@ -322,6 +322,8 @@ private: MultiUndoCommand *subtitle_show_command_; + QTimer *signal_block_change_timer_; + class SetSplitterSizesCommand : public UndoCommand { public: From 3aafb2466d6edf79bb8f42f1e5be025a52b72f0f Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Tue, 12 Apr 2022 13:05:45 -0700 Subject: [PATCH 094/114] Squashed commit of the following: commit f05b5b3ff8286f6252c2a3f3c8c367f8a5b821b5 Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Tue Apr 12 13:05:25 2022 -0700 final consistency modifications commit 4f27718d46de9660822eb197b0e900be947ec515 Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Tue Apr 12 11:40:58 2022 -0700 opengl: don't set texture options for null texture commit bb54cfcf4e219e1cbf1ecc6b5552cca75e6e1573 Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Tue Apr 12 11:40:29 2022 -0700 rename inputs commit e5ac8fffa2ac15f5549b6da5f42b05659c6d020f Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Tue Apr 12 10:37:23 2022 -0700 change alpha association formula commit dee09a88f17552e3f98be8940966822e45d6df4f Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Tue Apr 12 10:36:58 2022 -0700 glsl: use constants to improve readability commit aedc75ebee11b61198f29c464501a2ddb0506129 Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Tue Apr 12 10:36:26 2022 -0700 changed id capitalization commit 470b2bb85b51c4a57c109d3fb230088a81024277 Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Tue Apr 12 10:35:53 2022 -0700 node: update categories commit c78dacad82051dfbb3e40c92cfaf456dbff2de0d Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Tue Apr 12 09:22:57 2022 -0700 updated shaders to es 3 commit 1e7544be93e55916c94cd91629ec5eef728bfad8 Merge: 1bbb8d7f9 25d019609 Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Tue Apr 12 09:02:32 2022 -0700 Merge branch 'master' into pr/1818 commit 1bbb8d7f9acd75cb4498733f105fbe0487c0db9c Author: brimson <40442071+brimson@users.noreply.github.com> Date: Tue Jan 18 18:36:24 2022 -0700 Simplify colordifferencekey.frag Avoiding extra MOV instruction commit c7cf1021ce5a3d090833e94e4bc212cc51a61a2a Author: brimson <40442071+brimson@users.noreply.github.com> Date: Tue Jan 18 11:43:02 2022 -0700 Revert switch-case changes Thanks Simran, MattKC, and Wilshaw for the clarifications commit 882ffeede01b81f0cb4dfd885ba05bf66119ac7e Author: brimson <40442071+brimson@users.noreply.github.com> Date: Tue Jan 18 00:06:31 2022 -0700 Optimize despill shader Turn previous averaging from (1 MAD + 1 MUL) to (1 DP2), reuse the result to prevent recalculation. commit 0c93f519977fa34840ab03d51addcf2456f931d8 Author: Thomas Wilshaw Date: Sat Jan 8 17:23:49 2022 +0000 Cleanup commit 222560ce1a4666899b1111854d4d549dd7ba1357 Merge: 96e21c2b4 d3ffeaa35 Author: ThomasWilshaw Date: Tue Jan 4 23:50:39 2022 +0000 Merge branch 'master' into color_key commit 96e21c2b43db3bf1051aca696970509292159548 Author: Thomas Wilshaw Date: Tue Jan 4 23:45:26 2022 +0000 Rename and reoganise keying nodes commit 6d42ed23a69ebdb1f5b399957f0b37434d0519dd Author: Thomas Wilshaw Date: Tue Jan 4 23:04:50 2022 +0000 Move despill code to it's own node commit e97ab2e16fd1d4e2f2ff145b8c023ff0e1ee451e Author: Thomas Wilshaw Date: Mon Jan 3 21:39:48 2022 +0000 Add option for blue screens commit 2346f44e5af48bb9547c77c4c08ee7abfcb09393 Author: Thomas Wilshaw Date: Mon Jan 3 21:14:55 2022 +0000 Optimise node slightly commit 446522edcf63525fafe7a97cf6d59b7ea0385460 Author: Thomas Wilshaw Date: Mon Jan 3 21:10:03 2022 +0000 Fix GL ES compile error commit a765ce6c6f3e0c0e996f08e2a3ef1101818098e8 Author: Thomas Wilshaw Date: Sun Jan 2 18:27:24 2022 +0000 Cleanup commit d268e0645df34aa306dc391d1dc10bf335524f94 Author: Thomas Wilshaw Date: Sun Jan 2 18:03:26 2022 +0000 Fix core matte and change Darks start value commit 30b024dc5f59dd60ffc5012eee7a79201ed4f9c3 Author: Thomas Wilshaw Date: Sun Jan 2 17:26:39 2022 +0000 Change matte controls and cleanup commit b742a9ba7ed651785a0781289a4c03fd4fb72e03 Author: Thomas Wilshaw Date: Sun Jan 2 16:31:41 2022 +0000 Add a core and garbage matte commit f814d036b61b8de090df4c1f080c124b98b432d6 Author: Thomas Wilshaw Date: Sun Jan 2 03:31:20 2022 +0000 Improve basic keyer commit 4995ec3b9b92c9b4cb0dc31a247d585b2a47e408 Author: Thomas Wilshaw Date: Sun Jan 2 00:23:18 2022 +0000 Start simple color key node --- app/node/CMakeLists.txt | 1 + app/node/audio/pan/pan.cpp | 2 +- app/node/effect/opacity/opacityeffect.h | 2 +- app/node/factory.cpp | 6 ++ app/node/factory.h | 2 + app/node/group/group.cpp | 2 +- app/node/input/time/timeinput.cpp | 2 +- app/node/input/value/valuenode.h | 2 +- app/node/keying/CMakeLists.txt | 23 ++++ .../keying/colordifferencekey/CMakeLists.txt | 22 ++++ .../colordifferencekey/colordifferencekey.cpp | 101 ++++++++++++++++++ .../colordifferencekey/colordifferencekey.h | 51 +++++++++ app/node/keying/despill/CMakeLists.txt | 22 ++++ app/node/keying/despill/despill.cpp | 99 +++++++++++++++++ app/node/keying/despill/despill.h | 50 +++++++++ app/node/node.cpp | 14 +-- app/node/node.h | 7 +- app/node/time/timeoffset/timeoffsetnode.h | 2 +- app/node/time/timeremap/timeremap.cpp | 2 +- app/render/opengl/openglrenderer.cpp | 14 +-- app/shaders/colordifferencekey.frag | 68 ++++++++++++ app/shaders/despill.frag | 65 +++++++++++ 22 files changed, 531 insertions(+), 28 deletions(-) create mode 100644 app/node/keying/CMakeLists.txt create mode 100644 app/node/keying/colordifferencekey/CMakeLists.txt create mode 100644 app/node/keying/colordifferencekey/colordifferencekey.cpp create mode 100644 app/node/keying/colordifferencekey/colordifferencekey.h create mode 100644 app/node/keying/despill/CMakeLists.txt create mode 100644 app/node/keying/despill/despill.cpp create mode 100644 app/node/keying/despill/despill.h create mode 100644 app/shaders/colordifferencekey.frag create mode 100644 app/shaders/despill.frag diff --git a/app/node/CMakeLists.txt b/app/node/CMakeLists.txt index aa1a090d4..cd510b021 100644 --- a/app/node/CMakeLists.txt +++ b/app/node/CMakeLists.txt @@ -24,6 +24,7 @@ add_subdirectory(generator) add_subdirectory(gizmo) add_subdirectory(group) add_subdirectory(input) +add_subdirectory(keying) add_subdirectory(math) add_subdirectory(output) add_subdirectory(project) diff --git a/app/node/audio/pan/pan.cpp b/app/node/audio/pan/pan.cpp index 457c4cdd1..9eb8e0766 100644 --- a/app/node/audio/pan/pan.cpp +++ b/app/node/audio/pan/pan.cpp @@ -54,7 +54,7 @@ QString PanNode::id() const QVector PanNode::Category() const { - return {kCategoryChannels}; + return {kCategoryFilter}; } QString PanNode::Description() const diff --git a/app/node/effect/opacity/opacityeffect.h b/app/node/effect/opacity/opacityeffect.h index ac699a813..d18af81cc 100644 --- a/app/node/effect/opacity/opacityeffect.h +++ b/app/node/effect/opacity/opacityeffect.h @@ -26,7 +26,7 @@ public: virtual QVector Category() const override { - return {kCategoryFilter, kCategoryVideoEffect}; + return {kCategoryFilter}; } virtual QString Description() const override diff --git a/app/node/factory.cpp b/app/node/factory.cpp index 990438eac..3f32fe17a 100644 --- a/app/node/factory.cpp +++ b/app/node/factory.cpp @@ -50,6 +50,8 @@ #include "math/math/math.h" #include "math/merge/merge.h" #include "math/trigonometry/trigonometry.h" +#include "keying/colordifferencekey/colordifferencekey.h" +#include "keying/despill/despill.h" #include "output/track/track.h" #include "output/viewer/viewer.h" #include "project/folder/folder.h" @@ -259,6 +261,10 @@ Node *NodeFactory::CreateFromFactoryIndex(const NodeFactory::InternalID &id) return new SubtitleBlock(); case kShapeGenerator: return new ShapeNode(); + case kColorDifferenceKeyKeying: + return new ColorDifferenceKeyNode(); + case kDespillKeying: + return new DespillNode(); case kGroupNode: return new NodeGroup(); case kOpacityEffect: diff --git a/app/node/factory.h b/app/node/factory.h index 5d76b6b47..0a461892f 100644 --- a/app/node/factory.h +++ b/app/node/factory.h @@ -62,6 +62,8 @@ public: kTimeRemapNode, kSubtitleBlock, kShapeGenerator, + kColorDifferenceKeyKeying, + kDespillKeying, kGroupNode, kOpacityEffect, kFlipDistort, diff --git a/app/node/group/group.cpp b/app/node/group/group.cpp index b6f194032..793140c8a 100644 --- a/app/node/group/group.cpp +++ b/app/node/group/group.cpp @@ -43,7 +43,7 @@ QString NodeGroup::id() const QVector NodeGroup::Category() const { - return {kCategoryGeneral}; + return {kCategoryUnknown}; } QString NodeGroup::Description() const diff --git a/app/node/input/time/timeinput.cpp b/app/node/input/time/timeinput.cpp index b26f101d7..96f80f385 100644 --- a/app/node/input/time/timeinput.cpp +++ b/app/node/input/time/timeinput.cpp @@ -45,7 +45,7 @@ QString TimeInput::id() const QVector TimeInput::Category() const { - return {kCategoryInput}; + return {kCategoryTime}; } QString TimeInput::Description() const diff --git a/app/node/input/value/valuenode.h b/app/node/input/value/valuenode.h index f6205fbd8..2d6d2ada8 100644 --- a/app/node/input/value/valuenode.h +++ b/app/node/input/value/valuenode.h @@ -50,7 +50,7 @@ public: virtual QVector Category() const override { - return {kCategoryInput}; + return {kCategoryGenerator}; } virtual QString Description() const override diff --git a/app/node/keying/CMakeLists.txt b/app/node/keying/CMakeLists.txt new file mode 100644 index 000000000..2177a550a --- /dev/null +++ b/app/node/keying/CMakeLists.txt @@ -0,0 +1,23 @@ +# Olive - Non-Linear Video Editor +# Copyright (C) 2021 Olive Team +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +add_subdirectory(colordifferencekey) +add_subdirectory(despill) + +set(OLIVE_SOURCES + ${OLIVE_SOURCES} + PARENT_SCOPE +) diff --git a/app/node/keying/colordifferencekey/CMakeLists.txt b/app/node/keying/colordifferencekey/CMakeLists.txt new file mode 100644 index 000000000..66422f411 --- /dev/null +++ b/app/node/keying/colordifferencekey/CMakeLists.txt @@ -0,0 +1,22 @@ +# Olive - Non-Linear Video Editor +# Copyright (C) 2021 Olive Team +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +set(OLIVE_SOURCES + ${OLIVE_SOURCES} + node/keying/colordifferencekey/colordifferencekey.h + node/keying/colordifferencekey/colordifferencekey.cpp + PARENT_SCOPE +) diff --git a/app/node/keying/colordifferencekey/colordifferencekey.cpp b/app/node/keying/colordifferencekey/colordifferencekey.cpp new file mode 100644 index 000000000..1f2ca4d1c --- /dev/null +++ b/app/node/keying/colordifferencekey/colordifferencekey.cpp @@ -0,0 +1,101 @@ +/*** + Olive - Non-Linear Video Editor + Copyright (C) 2019 Olive Team + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + You should have received a copy of the GNU General Public License + along with this program. If not, see . +***/ + +#include "colordifferencekey.h" + +namespace olive { + +const QString ColorDifferenceKeyNode::kTextureInput = QStringLiteral("tex_in"); +const QString ColorDifferenceKeyNode::kGarbageMatteInput = QStringLiteral("garbage_in"); +const QString ColorDifferenceKeyNode::kCoreMatteInput = QStringLiteral("core_in"); +const QString ColorDifferenceKeyNode::kColorInput = QStringLiteral("color_in"); +const QString ColorDifferenceKeyNode::kShadowsInput = QStringLiteral("shadows_in"); +const QString ColorDifferenceKeyNode::kHighlightsInput = QStringLiteral("highlights_in"); +const QString ColorDifferenceKeyNode::kMaskOnlyInput = QStringLiteral("mask_only_in"); + +ColorDifferenceKeyNode::ColorDifferenceKeyNode() { + AddInput(kTextureInput, NodeValue::kTexture, InputFlags(kInputFlagNotKeyframable)); + + AddInput(kGarbageMatteInput, NodeValue::kTexture, InputFlags(kInputFlagNotKeyframable)); + + AddInput(kCoreMatteInput, NodeValue::kTexture, InputFlags(kInputFlagNotKeyframable)); + + AddInput(kColorInput, NodeValue::kCombo, 0); + + AddInput(kHighlightsInput, NodeValue::kFloat, 100.0f); + SetInputProperty(kHighlightsInput, QStringLiteral("min"), 0.0); + + AddInput(kShadowsInput, NodeValue::kFloat, 100.0f); + SetInputProperty(kShadowsInput, QStringLiteral("min"), 0.0); + + AddInput(kMaskOnlyInput, NodeValue::kBoolean, false); +} + +Node *ColorDifferenceKeyNode::copy() const +{ + return new ColorDifferenceKeyNode(); +} + +QString ColorDifferenceKeyNode::Name() const +{ + return tr("Color Difference Key"); +} + +QString ColorDifferenceKeyNode::id() const +{ + return QStringLiteral("org.olivevideoeditor.Olive.colordifferencekey"); +} + +QVector ColorDifferenceKeyNode::Category() const +{ + return {kCategoryKeying}; +} + +QString ColorDifferenceKeyNode::Description() const +{ + return tr("A simple color key based on the distance of one color from other colors."); +} + +void ColorDifferenceKeyNode::Retranslate() +{ + SetInputName(kTextureInput, tr("Input")); + SetInputName(kGarbageMatteInput, tr("Garbage Matte")); + SetInputName(kCoreMatteInput, tr("Core Matte")); + SetInputName(kColorInput, tr("Key Color")); + SetComboBoxStrings(kColorInput, {tr("Green"), tr("Blue")}); + SetInputName(kShadowsInput, tr("Shadows")); + SetInputName(kHighlightsInput, tr("Highlights")); + SetInputName(kMaskOnlyInput, tr("Show Mask Only")); +} + +ShaderCode ColorDifferenceKeyNode::GetShaderCode(const QString &shader_id) const +{ + Q_UNUSED(shader_id) + return ShaderCode(FileFunctions::ReadFileAsString(":/shaders/colordifferencekey.frag")); +} + +void ColorDifferenceKeyNode::Value(const NodeValueRow &value, const NodeGlobals &globals, NodeValueTable *table) const +{ + ShaderJob job; + job.InsertValue(value); + job.SetAlphaChannelRequired(GenerateJob::kAlphaForceOn); + + // If there's no texture, no need to run an operation + if (!job.GetValue(kTextureInput).data().isNull()) { + table->Push(NodeValue::kShaderJob, QVariant::fromValue(job), this); + } +} + +} // namespace olive diff --git a/app/node/keying/colordifferencekey/colordifferencekey.h b/app/node/keying/colordifferencekey/colordifferencekey.h new file mode 100644 index 000000000..01ddaf718 --- /dev/null +++ b/app/node/keying/colordifferencekey/colordifferencekey.h @@ -0,0 +1,51 @@ +/*** + Olive - Non-Linear Video Editor + Copyright (C) 2019 Olive Team + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + You should have received a copy of the GNU General Public License + along with this program. If not, see . +***/ + +#ifndef COLORDIFFERENCEKEYNODE_H +#define COLORDIFFERENCEKEYNODE_H + +#include "node/node.h" + +namespace olive { + +class ColorDifferenceKeyNode : public Node { + public: + ColorDifferenceKeyNode(); + + virtual Node* copy() const override; + + virtual QString Name() const override; + virtual QString id() const override; + virtual QVector Category() const override; + virtual QString Description() const override; + + virtual void Retranslate() override; + + virtual ShaderCode GetShaderCode(const QString& shader_id) const override; + virtual void Value(const NodeValueRow& value, const NodeGlobals& globals, NodeValueTable* table) const override; + + static const QString kTextureInput; + static const QString kGarbageMatteInput; + static const QString kCoreMatteInput; + static const QString kColorInput; + static const QString kShadowsInput; + static const QString kHighlightsInput; + static const QString kMaskOnlyInput; + +}; + +} // namespace olive + +#endif // COLORDIFFERENCEKEYNODE_H diff --git a/app/node/keying/despill/CMakeLists.txt b/app/node/keying/despill/CMakeLists.txt new file mode 100644 index 000000000..69ee377d6 --- /dev/null +++ b/app/node/keying/despill/CMakeLists.txt @@ -0,0 +1,22 @@ +# Olive - Non-Linear Video Editor +# Copyright (C) 2021 Olive Team +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +set(OLIVE_SOURCES + ${OLIVE_SOURCES} + node/keying/despill/despill.h + node/keying/despill/despill.cpp + PARENT_SCOPE +) diff --git a/app/node/keying/despill/despill.cpp b/app/node/keying/despill/despill.cpp new file mode 100644 index 000000000..147ee60df --- /dev/null +++ b/app/node/keying/despill/despill.cpp @@ -0,0 +1,99 @@ +/*** + Olive - Non-Linear Video Editor + Copyright (C) 2019 Olive Team + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + You should have received a copy of the GNU General Public License + along with this program. If not, see . +***/ + +#include "despill.h" + +#include "node/project/project.h" + +namespace olive { + +const QString DespillNode::kTextureInput = QStringLiteral("tex_in"); +const QString DespillNode::kColorInput = QStringLiteral("color_in"); +const QString DespillNode::kMethodInput = QStringLiteral("method_in"); +const QString DespillNode::kPreserveLuminanceInput = QStringLiteral("preserve_luminance_input"); + +DespillNode::DespillNode() +{ + AddInput(kTextureInput, NodeValue::kTexture, InputFlags(kInputFlagNotKeyframable)); + + AddInput(kColorInput, NodeValue::kCombo, 0); + + AddInput(kMethodInput, NodeValue::kCombo, 0); + + AddInput(kPreserveLuminanceInput, NodeValue::kBoolean, false); +} + +Node* DespillNode::copy() const +{ + return new DespillNode(); +} + +QString DespillNode::Name() const +{ + return tr("Despill"); +} + +QString DespillNode::id() const +{ + return QStringLiteral("org.olivevideoeditor.Olive.despill"); +} + +QVector DespillNode::Category() const +{ + return {kCategoryKeying}; +} + +QString DespillNode::Description() const +{ + return tr("Selection of simple depsill operations"); +} + +void DespillNode::Retranslate() +{ + SetInputName(kTextureInput, tr("Input")); + + SetInputName(kColorInput, tr("Key Color")); + SetComboBoxStrings(kColorInput, {tr("Green"), tr("Blue")}); + + + SetInputName(kMethodInput, tr("Method")); + SetComboBoxStrings(kMethodInput, {tr("Average"), tr("Double Red Average"), tr("Double Average"), tr("Limit")}); + + SetInputName(kPreserveLuminanceInput, tr("Preserve Luminance")); +} + +ShaderCode DespillNode::GetShaderCode(const QString& shader_id) const { + Q_UNUSED(shader_id) + return ShaderCode(FileFunctions::ReadFileAsString(":/shaders/despill.frag")); +} + +void DespillNode::Value(const NodeValueRow &value, const NodeGlobals &globals, NodeValueTable *table) const { + ShaderJob job; + job.InsertValue(value); + + // Set luma coefficients + double luma_coeffs[3] = {0.0f, 0.0f, 0.0f}; + project()->color_manager()->GetDefaultLumaCoefs(luma_coeffs); + job.InsertValue(QStringLiteral("luma_coeffs"), + NodeValue(NodeValue::kVec3, QVector3D(luma_coeffs[0], luma_coeffs[1], luma_coeffs[2]))); + + // If there's no texture, no need to run an operation + if (!job.GetValue(kTextureInput).data().isNull()) { + table->Push(NodeValue::kShaderJob, QVariant::fromValue(job), this); + } +} + + +} // namespace olive diff --git a/app/node/keying/despill/despill.h b/app/node/keying/despill/despill.h new file mode 100644 index 000000000..c5aaed49d --- /dev/null +++ b/app/node/keying/despill/despill.h @@ -0,0 +1,50 @@ +/*** + Olive - Non-Linear Video Editor + Copyright (C) 2019 Olive Team + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + You should have received a copy of the GNU General Public License + along with this program. If not, see . +***/ + +#ifndef DESPILLNODE_H +#define DESPILLNODE_H + +#include "node/node.h" +#include "node/color/colormanager/colormanager.h" + +namespace olive { + +class DespillNode : public Node { + public: + DespillNode(); + + virtual Node* copy() const override; + + virtual QString Name() const override; + virtual QString id() const override; + virtual QVector Category() const override; + virtual QString Description() const override; + + virtual void Retranslate() override; + + virtual ShaderCode GetShaderCode(const QString& shader_id) const override; + virtual void Value(const NodeValueRow& value, const NodeGlobals& globals, NodeValueTable* table) const override; + + static const QString kTextureInput; + static const QString kColorInput; + static const QString kMethodInput; + static const QString kPreserveLuminanceInput; + + +}; + +} // namespace olive + +#endif // DESPILLNODE_H diff --git a/app/node/node.cpp b/app/node/node.cpp index 506e4044e..c8afb1f12 100644 --- a/app/node/node.cpp +++ b/app/node/node.cpp @@ -1668,16 +1668,14 @@ void Node::DisconnectAll() QString Node::GetCategoryName(const CategoryID &c) { switch (c) { - case kCategoryInput: - return tr("Input"); case kCategoryOutput: return tr("Output"); - case kCategoryGeneral: - return tr("General"); case kCategoryDistort: return tr("Distort"); case kCategoryMath: return tr("Math"); + case kCategoryKeying: + return tr("Keying"); case kCategoryColor: return tr("Color"); case kCategoryFilter: @@ -1686,16 +1684,12 @@ QString Node::GetCategoryName(const CategoryID &c) return tr("Timeline"); case kCategoryGenerator: return tr("Generator"); - case kCategoryChannels: - return tr("Channel"); case kCategoryTransition: return tr("Transition"); case kCategoryProject: return tr("Project"); - case kCategoryVideoEffect: - return tr("Video Effect"); - case kCategoryAudioEffect: - return tr("Audio Effect"); + case kCategoryTime: + return tr("Time"); case kCategoryUnknown: case kCategoryCount: break; diff --git a/app/node/node.h b/app/node/node.h index 44d704344..6d2c27144 100644 --- a/app/node/node.h +++ b/app/node/node.h @@ -78,20 +78,17 @@ public: enum CategoryID { kCategoryUnknown = -1, - kCategoryInput, kCategoryOutput, kCategoryGenerator, kCategoryMath, + kCategoryKeying, kCategoryFilter, kCategoryColor, - kCategoryGeneral, + kCategoryTime, kCategoryTimeline, - kCategoryChannels, kCategoryTransition, kCategoryDistort, kCategoryProject, - kCategoryVideoEffect, - kCategoryAudioEffect, kCategoryCount }; diff --git a/app/node/time/timeoffset/timeoffsetnode.h b/app/node/time/timeoffset/timeoffsetnode.h index aa712891f..b44a1f1e0 100644 --- a/app/node/time/timeoffset/timeoffsetnode.h +++ b/app/node/time/timeoffset/timeoffsetnode.h @@ -45,7 +45,7 @@ public: virtual QVector Category() const override { - return {kCategoryGeneral}; + return {kCategoryTime}; } virtual QString Description() const override diff --git a/app/node/time/timeremap/timeremap.cpp b/app/node/time/timeremap/timeremap.cpp index 8967faad9..1f52a27c4 100644 --- a/app/node/time/timeremap/timeremap.cpp +++ b/app/node/time/timeremap/timeremap.cpp @@ -56,7 +56,7 @@ QString TimeRemapNode::id() const QVector TimeRemapNode::Category() const { - return {kCategoryGeneral}; + return {kCategoryTime}; } QString TimeRemapNode::Description() const diff --git a/app/render/opengl/openglrenderer.cpp b/app/render/opengl/openglrenderer.cpp index 810b022e6..8d9786973 100644 --- a/app/render/opengl/openglrenderer.cpp +++ b/app/render/opengl/openglrenderer.cpp @@ -540,13 +540,15 @@ void OpenGLRenderer::Blit(QVariant s, ShaderJob job, Texture *destination, Video GLenum target = (texture && texture->type() == Texture::k3D) ? GL_TEXTURE_3D : GL_TEXTURE_2D; functions_->glBindTexture(target, tex_id); - PrepareInputTexture(target, t.interpolation); + if (tex_id) { + PrepareInputTexture(target, t.interpolation); - if (texture && texture->channel_count() == 1 && destination_params.channel_count() != 1) { - // Interpret this texture as a grayscale texture - functions_->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_RED); - functions_->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_G, GL_RED); - functions_->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_RED); + if (texture->channel_count() == 1 && destination_params.channel_count() != 1) { + // Interpret this texture as a grayscale texture + functions_->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_RED); + functions_->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_G, GL_RED); + functions_->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_RED); + } } } diff --git a/app/shaders/colordifferencekey.frag b/app/shaders/colordifferencekey.frag new file mode 100644 index 000000000..5ed5fb9ec --- /dev/null +++ b/app/shaders/colordifferencekey.frag @@ -0,0 +1,68 @@ +uniform sampler2D tex_in; +uniform sampler2D garbage_in; +uniform sampler2D core_in; +uniform int color_in; +uniform bool garbage_in_enabled; +uniform bool core_in_enabled; +uniform float highlights_in; +uniform float shadows_in; +uniform bool mask_only_in; + +in vec2 ove_texcoord; +out vec4 frag_color; + +#define SCREEN_COLOR_GREEN 0 +#define SCREEN_COLOR_BLUE 1 + +void main(void) { + vec4 tex_col = texture(tex_in, ove_texcoord); + + // Unassociate RGB before calculating values + vec4 unassoc = tex_col; + if (unassoc.a > 0) { + unassoc.rgb /= unassoc.a; + } + + // Simple keyer, generates a inverted mask (background is white, foreground black) + float mask; + if (color_in == SCREEN_COLOR_GREEN) { + mask = (unassoc.g - max(unassoc.r, unassoc.b)); + } else{ // Assume SCREEN_COLOR_BLUE + mask = (unassoc.b - max(unassoc.r, unassoc.g)); + } + + mask = clamp(mask, 0.0, 1.0); + + if (garbage_in_enabled) { + // Force anything we want to remove to be 1.0 + vec4 garbage = texture(garbage_in, ove_texcoord); + // Assumes garbage is achromatic + mask += garbage.r; + mask = clamp(mask, 0.0, 1.0); + } + + if (core_in_enabled) { + // Force anything we want to keep to be 0.1 + vec3 core = texture(core_in, ove_texcoord).rgb; + vec3 core_invert = 1.0 - core.rgb; + // Assumes core is achromatic + mask *= core_invert.r; + mask = clamp(mask, 0.0, 1.0); + } + + // Crush blacks and push whites + mask = highlights_in * 0.01 * (shadows_in * 0.01 * mask - 1.0) + 1.0; + mask = clamp(mask, 0.0, 1.0); + + // Invert mask + mask = 1.0 - mask; + + // Multiply color by mask + tex_col *= mask; + + if (!mask_only_in) { + frag_color = tex_col; + } else { + frag_color = vec4(vec3(mask), 1.0); + } +} diff --git a/app/shaders/despill.frag b/app/shaders/despill.frag new file mode 100644 index 000000000..6753c0d27 --- /dev/null +++ b/app/shaders/despill.frag @@ -0,0 +1,65 @@ +uniform sampler2D tex_in; +uniform int color_in; +uniform int method_in; +uniform bool preserve_luminance_input; +uniform vec3 luma_coeffs; + +in vec2 ove_texcoord; +out vec4 frag_color; + +#define AVERAGE 0 +#define DOUBLE_RED_AVERAGE 1 +#define DOUBLE_AVERAGE 2 +#define BLUE_LIMIT 3 + +void main(void) { + vec4 original_col = texture(tex_in, ove_texcoord); + vec4 tex_col = original_col; + float color_average = 0.0; + + if(color_in == 0) { // Green screen + switch (method_in) { + case AVERAGE: + color_average = dot(tex_col.rb, vec2(0.5)); // (tex_col.r + tex_col.b) / 2.0 + tex_col.g = tex_col.g > color_average ? color_average: tex_col.g; + break; + case DOUBLE_RED_AVERAGE: + color_average = dot(tex_col.rb, vec2(2.0, 1.0) / 3.0); // (2.0 * tex_col.r + tex_col.b) / 3.0 + tex_col.g = tex_col.g > color_average ? color_average : tex_col.g; + break; + case DOUBLE_AVERAGE: + color_average = dot(tex_col.br, vec2(2.0, 1.0) / 3.0); // (2.0 * tex_col.b + tex_col.r) / 3.0 + tex_col.g = tex_col.g > color_average ? color_average : tex_col.g; + break; + case BLUE_LIMIT: + tex_col.g = tex_col.g > tex_col.b ? tex_col.b : tex_col.g; + break; + } + } else { // Blue screen + switch (method_in) { + case AVERAGE: + color_average = dot(tex_col.rg, vec2(0.5)); // (tex_col.r + tex_col.g) / 2.0 + tex_col.b = tex_col.b > color_average ? color_average : tex_col.b; + break; + case DOUBLE_RED_AVERAGE: + color_average = dot(tex_col.rg, vec2(2.0, 1.0) / 3.0); // (2.0 * tex_col.r + tex_col.g) / 3.0 + tex_col.b = tex_col.b > color_average ? color_average : tex_col.b; + break; + case DOUBLE_AVERAGE: + color_average = dot(tex_col.gr, vec2(2.0, 1.0) / 3.0); // (2.0 * tex_col.g+ tex_col.r) / 3.0 + tex_col.b = tex_col.b > color_average ? color_average : tex_col.b; + break; + case BLUE_LIMIT: + tex_col.b = tex_col.b > tex_col.g ? tex_col.g : tex_col.b; + break; + } + } + + if (preserve_luminance_input) { + vec4 diff = original_col - tex_col; + float luma = dot(abs(diff.rgb), luma_coeffs); + tex_col.rgb += vec3(luma); + } + + frag_color = tex_col; +} From 95aa3249d0ad70340300f65a5df211f26f020918 Mon Sep 17 00:00:00 2001 From: ThomasWilshaw Date: Tue, 12 Apr 2022 21:25:14 +0100 Subject: [PATCH 095/114] Add Blackmagic Film Wide Gamut Gen 5 (#1871) - Adds a Blackmagic Film Wide Gamut Gen 5 input transform to the config - Adds a CIE-XYZ D65 space to the config app/render/ocioconf/luts/Blackmagic_FilmWideGamut_Gen5_to_linear.spi1d --- app/render/ocioconf/config.ocio | 35 +- ...ckmagic_FilmWideGamut_Gen5_to_linear.spi1d | 65543 ++++++++++++++++ 2 files changed, 65577 insertions(+), 1 deletion(-) create mode 100644 app/render/ocioconf/luts/Blackmagic_FilmWideGamut_Gen5_to_linear.spi1d diff --git a/app/render/ocioconf/config.ocio b/app/render/ocioconf/config.ocio index 0253fb63b..dcf75c465 100755 --- a/app/render/ocioconf/config.ocio +++ b/app/render/ocioconf/config.ocio @@ -7,7 +7,7 @@ # Price, Nick Shaw, and Timothy # Lottes. -ocio_profile_version: 1 +ocio_profile_version: 2 search_path: "luts:looks" strictparsing: true @@ -28,6 +28,7 @@ roles: color_picking: sRGB OETF texture_paint: sRGB OETF matte_paint: Filmic Log Encoding + cie_xyz_d65_interchange: CIE-XYZ D65 displays: sRGB: @@ -49,6 +50,8 @@ displays: active_displays: [sRGB, BT.1886, Apple Display P3, None] #active_views: [Filmic Log Encoding Base, sRGB OETF, Non-Colour Data, Linear Raw, No View] +inactive_colorspaces: [CIE-XYZ D65] + colorspaces: - ! name: Linear @@ -61,6 +64,20 @@ colorspaces: allocation: lg2 allocationvars: [-12.4739311883, 12.5260688117, 0.00392156862] + - ! + name: CIE-XYZ D65 + family: display + equalitygroup: "" + bitdepth: 32f + description: | + Linear CIE XYZ space with D65 white point + isdata: false + allocation: lg2 + allocationvars: [-12.4739311883, 12.5260688117, 0.00392156862] + to_reference: ! + children: + - ! {matrix: [0.4124, 0.3576, 0.1805, 0, 0.2126, 0.7152, 0.0722, 0, 0.0193, 0.1192, 0.9505, 0, 0, 0, 0, 1], direction: inverse} + - ! name: Filmic Log Encoding family: @@ -248,6 +265,22 @@ colorspaces: - ! {src: V3_LogC_400_to_linear.spi1d, interpolation: linear} - ! {matrix: [1.617523, -0.537287, -0.080237, 0, -0.070573, 1.334613, -0.26404, 0, -0.021102, -0.226954, 1.248056, 0, 0, 0, 0, 1]} + - ! + name: Blackmagic Film Wide Gamut (Gen 5) + family: Camera Footage + equalitygroup: "" + bitdepth: 32f + description: | + Blackmagic Film Wide Gamut (Gen 5) + isdata: false + allocation: uniform + allocationvars: [0, 1] + to_reference: ! + children: + - ! {src: Blackmagic_FilmWideGamut_Gen5_to_linear.spi1d, interpolation: linear} + - ! {matrix: [0.606530, 0.220408, 0.123479, 0, 0.267989, 0.832731, -0.100720, 0, -0.029442, -0.086611, 1.204861, 0, 0, 0, 0, 1]} + - ! {src: CIE-XYZ D65, dst: reference} + - ! name: Non-Colour Data family: diff --git a/app/render/ocioconf/luts/Blackmagic_FilmWideGamut_Gen5_to_linear.spi1d b/app/render/ocioconf/luts/Blackmagic_FilmWideGamut_Gen5_to_linear.spi1d new file mode 100644 index 000000000..07cf46302 --- /dev/null +++ b/app/render/ocioconf/luts/Blackmagic_FilmWideGamut_Gen5_to_linear.spi1d @@ -0,0 +1,65543 @@ +Version 1 +From 0.000000 1.000000 +Length 65537 +Components 1 +{ + -0.0111625002661 + -0.0111606582194 + -0.0111588161727 + -0.011156974126 + -0.0111551320792 + -0.0111532900325 + -0.0111514479858 + -0.0111496059391 + -0.0111477638924 + -0.0111459218457 + -0.011144079799 + -0.0111422377523 + -0.0111403957056 + -0.0111385536589 + -0.0111367116121 + -0.0111348695654 + -0.0111330275187 + -0.011131185472 + -0.0111293434253 + -0.0111275013786 + -0.0111256593319 + -0.0111238172852 + -0.0111219752385 + -0.0111201331917 + -0.011118291145 + -0.0111164490983 + -0.0111146070516 + -0.0111127650049 + -0.0111109229582 + -0.0111090809115 + -0.0111072388648 + -0.0111053968181 + -0.0111035547713 + -0.0111017127246 + -0.0110998706779 + -0.0110980286312 + -0.0110961865845 + -0.0110943445378 + -0.0110925024911 + -0.0110906604444 + -0.0110888183977 + -0.0110869763509 + -0.0110851343042 + -0.0110832922575 + -0.0110814502108 + -0.0110796081641 + -0.0110777661174 + -0.0110759240707 + -0.011074082024 + -0.0110722399773 + -0.0110703979305 + -0.0110685558838 + -0.0110667138371 + -0.0110648717904 + -0.0110630297437 + -0.011061187697 + -0.0110593456503 + -0.0110575036036 + -0.0110556615569 + -0.0110538195101 + -0.0110519774634 + -0.0110501354167 + -0.01104829337 + -0.0110464513233 + -0.0110446092766 + -0.0110427672299 + -0.0110409251832 + -0.0110390831365 + -0.0110372410897 + -0.011035399043 + -0.0110335569963 + -0.0110317149496 + -0.0110298729029 + -0.0110280308562 + -0.0110261888095 + -0.0110243467628 + -0.0110225047161 + -0.0110206626694 + -0.0110188206226 + -0.0110169785759 + -0.0110151365292 + -0.0110132944825 + -0.0110114524358 + -0.0110096103891 + -0.0110077683424 + -0.0110059262957 + -0.011004084249 + -0.0110022422022 + -0.0110004001555 + -0.0109985581088 + -0.0109967160621 + -0.0109948740154 + -0.0109930319687 + -0.010991189922 + -0.0109893478753 + -0.0109875058286 + -0.0109856637818 + -0.0109838217351 + -0.0109819796884 + -0.0109801376417 + -0.010978295595 + -0.0109764535483 + -0.0109746115016 + -0.0109727694549 + -0.0109709274082 + -0.0109690853614 + -0.0109672433147 + -0.010965401268 + -0.0109635592213 + -0.0109617171746 + -0.0109598751279 + -0.0109580330812 + -0.0109561910345 + -0.0109543489878 + -0.010952506941 + -0.0109506648943 + -0.0109488228476 + -0.0109469808009 + -0.0109451387542 + -0.0109432967075 + -0.0109414546608 + -0.0109396126141 + -0.0109377705674 + -0.0109359285206 + -0.0109340864739 + -0.0109322444272 + -0.0109304023805 + -0.0109285603338 + -0.0109267182871 + -0.0109248762404 + -0.0109230341937 + -0.010921192147 + -0.0109193501002 + -0.0109175080535 + -0.0109156660068 + -0.0109138239601 + -0.0109119819134 + -0.0109101398667 + -0.01090829782 + -0.0109064557733 + -0.0109046137266 + -0.0109027716799 + -0.0109009296331 + -0.0108990875864 + -0.0108972455397 + -0.010895403493 + -0.0108935614463 + -0.0108917193996 + -0.0108898773529 + -0.0108880353062 + -0.0108861932595 + -0.0108843512127 + -0.010882509166 + -0.0108806671193 + -0.0108788250726 + -0.0108769830259 + -0.0108751409792 + -0.0108732989325 + -0.0108714568858 + -0.0108696148391 + -0.0108677727923 + -0.0108659307456 + -0.0108640886989 + -0.0108622466522 + -0.0108604046055 + -0.0108585625588 + -0.0108567205121 + -0.0108548784654 + -0.0108530364187 + -0.0108511943719 + -0.0108493523252 + -0.0108475102785 + -0.0108456682318 + -0.0108438261851 + -0.0108419841384 + -0.0108401420917 + -0.010838300045 + -0.0108364579983 + -0.0108346159515 + -0.0108327739048 + -0.0108309318581 + -0.0108290898114 + -0.0108272477647 + -0.010825405718 + -0.0108235636713 + -0.0108217216246 + -0.0108198795779 + -0.0108180375311 + -0.0108161954844 + -0.0108143534377 + -0.010812511391 + -0.0108106693443 + -0.0108088272976 + -0.0108069852509 + -0.0108051432042 + -0.0108033011575 + -0.0108014591107 + -0.010799617064 + -0.0107977750173 + -0.0107959329706 + -0.0107940909239 + -0.0107922488772 + -0.0107904068305 + -0.0107885647838 + -0.0107867227371 + -0.0107848806904 + -0.0107830386436 + -0.0107811965969 + -0.0107793545502 + -0.0107775125035 + -0.0107756704568 + -0.0107738284101 + -0.0107719863634 + -0.0107701443167 + -0.01076830227 + -0.0107664602232 + -0.0107646181765 + -0.0107627761298 + -0.0107609340831 + -0.0107590920364 + -0.0107572499897 + -0.010755407943 + -0.0107535658963 + -0.0107517238496 + -0.0107498818028 + -0.0107480397561 + -0.0107461977094 + -0.0107443556627 + -0.010742513616 + -0.0107406715693 + -0.0107388295226 + -0.0107369874759 + -0.0107351454292 + -0.0107333033824 + -0.0107314613357 + -0.010729619289 + -0.0107277772423 + -0.0107259351956 + -0.0107240931489 + -0.0107222511022 + -0.0107204090555 + -0.0107185670088 + -0.010716724962 + -0.0107148829153 + -0.0107130408686 + -0.0107111988219 + -0.0107093567752 + -0.0107075147285 + -0.0107056726818 + -0.0107038306351 + -0.0107019885884 + -0.0107001465416 + -0.0106983044949 + -0.0106964624482 + -0.0106946204015 + -0.0106927783548 + -0.0106909363081 + -0.0106890942614 + -0.0106872522147 + -0.010685410168 + -0.0106835681212 + -0.0106817260745 + -0.0106798840278 + -0.0106780419811 + -0.0106761999344 + -0.0106743578877 + -0.010672515841 + -0.0106706737943 + -0.0106688317476 + -0.0106669897009 + -0.0106651476541 + -0.0106633056074 + -0.0106614635607 + -0.010659621514 + -0.0106577794673 + -0.0106559374206 + -0.0106540953739 + -0.0106522533272 + -0.0106504112805 + -0.0106485692337 + -0.010646727187 + -0.0106448851403 + -0.0106430430936 + -0.0106412010469 + -0.0106393590002 + -0.0106375169535 + -0.0106356749068 + -0.0106338328601 + -0.0106319908133 + -0.0106301487666 + -0.0106283067199 + -0.0106264646732 + -0.0106246226265 + -0.0106227805798 + -0.0106209385331 + -0.0106190964864 + -0.0106172544397 + -0.0106154123929 + -0.0106135703462 + -0.0106117282995 + -0.0106098862528 + -0.0106080442061 + -0.0106062021594 + -0.0106043601127 + -0.010602518066 + -0.0106006760193 + -0.0105988339725 + -0.0105969919258 + -0.0105951498791 + -0.0105933078324 + -0.0105914657857 + -0.010589623739 + -0.0105877816923 + -0.0105859396456 + -0.0105840975989 + -0.0105822555521 + -0.0105804135054 + -0.0105785714587 + -0.010576729412 + -0.0105748873653 + -0.0105730453186 + -0.0105712032719 + -0.0105693612252 + -0.0105675191785 + -0.0105656771317 + -0.010563835085 + -0.0105619930383 + -0.0105601509916 + -0.0105583089449 + -0.0105564668982 + -0.0105546248515 + -0.0105527828048 + -0.0105509407581 + -0.0105490987114 + -0.0105472566646 + -0.0105454146179 + -0.0105435725712 + -0.0105417305245 + -0.0105398884778 + -0.0105380464311 + -0.0105362043844 + -0.0105343623377 + -0.010532520291 + -0.0105306782442 + -0.0105288361975 + -0.0105269941508 + -0.0105251521041 + -0.0105233100574 + -0.0105214680107 + -0.010519625964 + -0.0105177839173 + -0.0105159418706 + -0.0105140998238 + -0.0105122577771 + -0.0105104157304 + -0.0105085736837 + -0.010506731637 + -0.0105048895903 + -0.0105030475436 + -0.0105012054969 + -0.0104993634502 + -0.0104975214034 + -0.0104956793567 + -0.01049383731 + -0.0104919952633 + -0.0104901532166 + -0.0104883111699 + -0.0104864691232 + -0.0104846270765 + -0.0104827850298 + -0.010480942983 + -0.0104791009363 + -0.0104772588896 + -0.0104754168429 + -0.0104735747962 + -0.0104717327495 + -0.0104698907028 + -0.0104680486561 + -0.0104662066094 + -0.0104643645626 + -0.0104625225159 + -0.0104606804692 + -0.0104588384225 + -0.0104569963758 + -0.0104551543291 + -0.0104533122824 + -0.0104514702357 + -0.010449628189 + -0.0104477861422 + -0.0104459440955 + -0.0104441020488 + -0.0104422600021 + -0.0104404179554 + -0.0104385759087 + -0.010436733862 + -0.0104348918153 + -0.0104330497686 + -0.0104312077219 + -0.0104293656751 + -0.0104275236284 + -0.0104256815817 + -0.010423839535 + -0.0104219974883 + -0.0104201554416 + -0.0104183133949 + -0.0104164713482 + -0.0104146293015 + -0.0104127872547 + -0.010410945208 + -0.0104091031613 + -0.0104072611146 + -0.0104054190679 + -0.0104035770212 + -0.0104017349745 + -0.0103998929278 + -0.0103980508811 + -0.0103962088343 + -0.0103943667876 + -0.0103925247409 + -0.0103906826942 + -0.0103888406475 + -0.0103869986008 + -0.0103851565541 + -0.0103833145074 + -0.0103814724607 + -0.0103796304139 + -0.0103777883672 + -0.0103759463205 + -0.0103741042738 + -0.0103722622271 + -0.0103704201804 + -0.0103685781337 + -0.010366736087 + -0.0103648940403 + -0.0103630519935 + -0.0103612099468 + -0.0103593679001 + -0.0103575258534 + -0.0103556838067 + -0.01035384176 + -0.0103519997133 + -0.0103501576666 + -0.0103483156199 + -0.0103464735731 + -0.0103446315264 + -0.0103427894797 + -0.010340947433 + -0.0103391053863 + -0.0103372633396 + -0.0103354212929 + -0.0103335792462 + -0.0103317371995 + -0.0103298951527 + -0.010328053106 + -0.0103262110593 + -0.0103243690126 + -0.0103225269659 + -0.0103206849192 + -0.0103188428725 + -0.0103170008258 + -0.0103151587791 + -0.0103133167324 + -0.0103114746856 + -0.0103096326389 + -0.0103077905922 + -0.0103059485455 + -0.0103041064988 + -0.0103022644521 + -0.0103004224054 + -0.0102985803587 + -0.010296738312 + -0.0102948962652 + -0.0102930542185 + -0.0102912121718 + -0.0102893701251 + -0.0102875280784 + -0.0102856860317 + -0.010283843985 + -0.0102820019383 + -0.0102801598916 + -0.0102783178448 + -0.0102764757981 + -0.0102746337514 + -0.0102727917047 + -0.010270949658 + -0.0102691076113 + -0.0102672655646 + -0.0102654235179 + -0.0102635814712 + -0.0102617394244 + -0.0102598973777 + -0.010258055331 + -0.0102562132843 + -0.0102543712376 + -0.0102525291909 + -0.0102506871442 + -0.0102488450975 + -0.0102470030508 + -0.010245161004 + -0.0102433189573 + -0.0102414769106 + -0.0102396348639 + -0.0102377928172 + -0.0102359507705 + -0.0102341087238 + -0.0102322666771 + -0.0102304246304 + -0.0102285825836 + -0.0102267405369 + -0.0102248984902 + -0.0102230564435 + -0.0102212143968 + -0.0102193723501 + -0.0102175303034 + -0.0102156882567 + -0.01021384621 + -0.0102120041632 + -0.0102101621165 + -0.0102083200698 + -0.0102064780231 + -0.0102046359764 + -0.0102027939297 + -0.010200951883 + -0.0101991098363 + -0.0101972677896 + -0.0101954257429 + -0.0101935836961 + -0.0101917416494 + -0.0101898996027 + -0.010188057556 + -0.0101862155093 + -0.0101843734626 + -0.0101825314159 + -0.0101806893692 + -0.0101788473225 + -0.0101770052757 + -0.010175163229 + -0.0101733211823 + -0.0101714791356 + -0.0101696370889 + -0.0101677950422 + -0.0101659529955 + -0.0101641109488 + -0.0101622689021 + -0.0101604268553 + -0.0101585848086 + -0.0101567427619 + -0.0101549007152 + -0.0101530586685 + -0.0101512166218 + -0.0101493745751 + -0.0101475325284 + -0.0101456904817 + -0.0101438484349 + -0.0101420063882 + -0.0101401643415 + -0.0101383222948 + -0.0101364802481 + -0.0101346382014 + -0.0101327961547 + -0.010130954108 + -0.0101291120613 + -0.0101272700145 + -0.0101254279678 + -0.0101235859211 + -0.0101217438744 + -0.0101199018277 + -0.010118059781 + -0.0101162177343 + -0.0101143756876 + -0.0101125336409 + -0.0101106915941 + -0.0101088495474 + -0.0101070075007 + -0.010105165454 + -0.0101033234073 + -0.0101014813606 + -0.0100996393139 + -0.0100977972672 + -0.0100959552205 + -0.0100941131737 + -0.010092271127 + -0.0100904290803 + -0.0100885870336 + -0.0100867449869 + -0.0100849029402 + -0.0100830608935 + -0.0100812188468 + -0.0100793768001 + -0.0100775347534 + -0.0100756927066 + -0.0100738506599 + -0.0100720086132 + -0.0100701665665 + -0.0100683245198 + -0.0100664824731 + -0.0100646404264 + -0.0100627983797 + -0.010060956333 + -0.0100591142862 + -0.0100572722395 + -0.0100554301928 + -0.0100535881461 + -0.0100517460994 + -0.0100499040527 + -0.010048062006 + -0.0100462199593 + -0.0100443779126 + -0.0100425358658 + -0.0100406938191 + -0.0100388517724 + -0.0100370097257 + -0.010035167679 + -0.0100333256323 + -0.0100314835856 + -0.0100296415389 + -0.0100277994922 + -0.0100259574454 + -0.0100241153987 + -0.010022273352 + -0.0100204313053 + -0.0100185892586 + -0.0100167472119 + -0.0100149051652 + -0.0100130631185 + -0.0100112210718 + -0.010009379025 + -0.0100075369783 + -0.0100056949316 + -0.0100038528849 + -0.0100020108382 + -0.0100001687915 + -0.00999832674478 + -0.00999648469807 + -0.00999464265136 + -0.00999280060465 + -0.00999095855794 + -0.00998911651123 + -0.00998727446451 + -0.0099854324178 + -0.00998359037109 + -0.00998174832438 + -0.00997990627767 + -0.00997806423096 + -0.00997622218425 + -0.00997438013754 + -0.00997253809083 + -0.00997069604412 + -0.0099688539974 + -0.00996701195069 + -0.00996516990398 + -0.00996332785727 + -0.00996148581056 + -0.00995964376385 + -0.00995780171714 + -0.00995595967043 + -0.00995411762372 + -0.00995227557701 + -0.0099504335303 + -0.00994859148358 + -0.00994674943687 + -0.00994490739016 + -0.00994306534345 + -0.00994122329674 + -0.00993938125003 + -0.00993753920332 + -0.00993569715661 + -0.0099338551099 + -0.00993201306319 + -0.00993017101648 + -0.00992832896976 + -0.00992648692305 + -0.00992464487634 + -0.00992280282963 + -0.00992096078292 + -0.00991911873621 + -0.0099172766895 + -0.00991543464279 + -0.00991359259608 + -0.00991175054937 + -0.00990990850265 + -0.00990806645594 + -0.00990622440923 + -0.00990438236252 + -0.00990254031581 + -0.0099006982691 + -0.00989885622239 + -0.00989701417568 + -0.00989517212897 + -0.00989333008226 + -0.00989148803555 + -0.00988964598883 + -0.00988780394212 + -0.00988596189541 + -0.0098841198487 + -0.00988227780199 + -0.00988043575528 + -0.00987859370857 + -0.00987675166186 + -0.00987490961515 + -0.00987306756844 + -0.00987122552173 + -0.00986938347501 + -0.0098675414283 + -0.00986569938159 + -0.00986385733488 + -0.00986201528817 + -0.00986017324146 + -0.00985833119475 + -0.00985648914804 + -0.00985464710133 + -0.00985280505462 + -0.0098509630079 + -0.00984912096119 + -0.00984727891448 + -0.00984543686777 + -0.00984359482106 + -0.00984175277435 + -0.00983991072764 + -0.00983806868093 + -0.00983622663422 + -0.00983438458751 + -0.0098325425408 + -0.00983070049408 + -0.00982885844737 + -0.00982701640066 + -0.00982517435395 + -0.00982333230724 + -0.00982149026053 + -0.00981964821382 + -0.00981780616711 + -0.0098159641204 + -0.00981412207369 + -0.00981228002698 + -0.00981043798026 + -0.00980859593355 + -0.00980675388684 + -0.00980491184013 + -0.00980306979342 + -0.00980122774671 + -0.0097993857 + -0.00979754365329 + -0.00979570160658 + -0.00979385955987 + -0.00979201751315 + -0.00979017546644 + -0.00978833341973 + -0.00978649137302 + -0.00978464932631 + -0.0097828072796 + -0.00978096523289 + -0.00977912318618 + -0.00977728113947 + -0.00977543909276 + -0.00977359704605 + -0.00977175499933 + -0.00976991295262 + -0.00976807090591 + -0.0097662288592 + -0.00976438681249 + -0.00976254476578 + -0.00976070271907 + -0.00975886067236 + -0.00975701862565 + -0.00975517657894 + -0.00975333453222 + -0.00975149248551 + -0.0097496504388 + -0.00974780839209 + -0.00974596634538 + -0.00974412429867 + -0.00974228225196 + -0.00974044020525 + -0.00973859815854 + -0.00973675611183 + -0.00973491406512 + -0.0097330720184 + -0.00973122997169 + -0.00972938792498 + -0.00972754587827 + -0.00972570383156 + -0.00972386178485 + -0.00972201973814 + -0.00972017769143 + -0.00971833564472 + -0.00971649359801 + -0.0097146515513 + -0.00971280950458 + -0.00971096745787 + -0.00970912541116 + -0.00970728336445 + -0.00970544131774 + -0.00970359927103 + -0.00970175722432 + -0.00969991517761 + -0.0096980731309 + -0.00969623108419 + -0.00969438903747 + -0.00969254699076 + -0.00969070494405 + -0.00968886289734 + -0.00968702085063 + -0.00968517880392 + -0.00968333675721 + -0.0096814947105 + -0.00967965266379 + -0.00967781061708 + -0.00967596857037 + -0.00967412652365 + -0.00967228447694 + -0.00967044243023 + -0.00966860038352 + -0.00966675833681 + -0.0096649162901 + -0.00966307424339 + -0.00966123219668 + -0.00965939014997 + -0.00965754810326 + -0.00965570605655 + -0.00965386400983 + -0.00965202196312 + -0.00965017991641 + -0.0096483378697 + -0.00964649582299 + -0.00964465377628 + -0.00964281172957 + -0.00964096968286 + -0.00963912763615 + -0.00963728558944 + -0.00963544354272 + -0.00963360149601 + -0.0096317594493 + -0.00962991740259 + -0.00962807535588 + -0.00962623330917 + -0.00962439126246 + -0.00962254921575 + -0.00962070716904 + -0.00961886512233 + -0.00961702307562 + -0.0096151810289 + -0.00961333898219 + -0.00961149693548 + -0.00960965488877 + -0.00960781284206 + -0.00960597079535 + -0.00960412874864 + -0.00960228670193 + -0.00960044465522 + -0.00959860260851 + -0.0095967605618 + -0.00959491851508 + -0.00959307646837 + -0.00959123442166 + -0.00958939237495 + -0.00958755032824 + -0.00958570828153 + -0.00958386623482 + -0.00958202418811 + -0.0095801821414 + -0.00957834009469 + -0.00957649804797 + -0.00957465600126 + -0.00957281395455 + -0.00957097190784 + -0.00956912986113 + -0.00956728781442 + -0.00956544576771 + -0.009563603721 + -0.00956176167429 + -0.00955991962758 + -0.00955807758087 + -0.00955623553415 + -0.00955439348744 + -0.00955255144073 + -0.00955070939402 + -0.00954886734731 + -0.0095470253006 + -0.00954518325389 + -0.00954334120718 + -0.00954149916047 + -0.00953965711376 + -0.00953781506705 + -0.00953597302033 + -0.00953413097362 + -0.00953228892691 + -0.0095304468802 + -0.00952860483349 + -0.00952676278678 + -0.00952492074007 + -0.00952307869336 + -0.00952123664665 + -0.00951939459994 + -0.00951755255322 + -0.00951571050651 + -0.0095138684598 + -0.00951202641309 + -0.00951018436638 + -0.00950834231967 + -0.00950650027296 + -0.00950465822625 + -0.00950281617954 + -0.00950097413283 + -0.00949913208612 + -0.0094972900394 + -0.00949544799269 + -0.00949360594598 + -0.00949176389927 + -0.00948992185256 + -0.00948807980585 + -0.00948623775914 + -0.00948439571243 + -0.00948255366572 + -0.00948071161901 + -0.0094788695723 + -0.00947702752558 + -0.00947518547887 + -0.00947334343216 + -0.00947150138545 + -0.00946965933874 + -0.00946781729203 + -0.00946597524532 + -0.00946413319861 + -0.0094622911519 + -0.00946044910519 + -0.00945860705847 + -0.00945676501176 + -0.00945492296505 + -0.00945308091834 + -0.00945123887163 + -0.00944939682492 + -0.00944755477821 + -0.0094457127315 + -0.00944387068479 + -0.00944202863808 + -0.00944018659137 + -0.00943834454465 + -0.00943650249794 + -0.00943466045123 + -0.00943281840452 + -0.00943097635781 + -0.0094291343111 + -0.00942729226439 + -0.00942545021768 + -0.00942360817097 + -0.00942176612426 + -0.00941992407754 + -0.00941808203083 + -0.00941623998412 + -0.00941439793741 + -0.0094125558907 + -0.00941071384399 + -0.00940887179728 + -0.00940702975057 + -0.00940518770386 + -0.00940334565715 + -0.00940150361044 + -0.00939966156372 + -0.00939781951701 + -0.0093959774703 + -0.00939413542359 + -0.00939229337688 + -0.00939045133017 + -0.00938860928346 + -0.00938676723675 + -0.00938492519004 + -0.00938308314333 + -0.00938124109662 + -0.0093793990499 + -0.00937755700319 + -0.00937571495648 + -0.00937387290977 + -0.00937203086306 + -0.00937018881635 + -0.00936834676964 + -0.00936650472293 + -0.00936466267622 + -0.00936282062951 + -0.00936097858279 + -0.00935913653608 + -0.00935729448937 + -0.00935545244266 + -0.00935361039595 + -0.00935176834924 + -0.00934992630253 + -0.00934808425582 + -0.00934624220911 + -0.0093444001624 + -0.00934255811569 + -0.00934071606897 + -0.00933887402226 + -0.00933703197555 + -0.00933518992884 + -0.00933334788213 + -0.00933150583542 + -0.00932966378871 + -0.009327821742 + -0.00932597969529 + -0.00932413764858 + -0.00932229560187 + -0.00932045355515 + -0.00931861150844 + -0.00931676946173 + -0.00931492741502 + -0.00931308536831 + -0.0093112433216 + -0.00930940127489 + -0.00930755922818 + -0.00930571718147 + -0.00930387513476 + -0.00930203308804 + -0.00930019104133 + -0.00929834899462 + -0.00929650694791 + -0.0092946649012 + -0.00929282285449 + -0.00929098080778 + -0.00928913876107 + -0.00928729671436 + -0.00928545466765 + -0.00928361262094 + -0.00928177057422 + -0.00927992852751 + -0.0092780864808 + -0.00927624443409 + -0.00927440238738 + -0.00927256034067 + -0.00927071829396 + -0.00926887624725 + -0.00926703420054 + -0.00926519215383 + -0.00926335010712 + -0.0092615080604 + -0.00925966601369 + -0.00925782396698 + -0.00925598192027 + -0.00925413987356 + -0.00925229782685 + -0.00925045578014 + -0.00924861373343 + -0.00924677168672 + -0.00924492964001 + -0.00924308759329 + -0.00924124554658 + -0.00923940349987 + -0.00923756145316 + -0.00923571940645 + -0.00923387735974 + -0.00923203531303 + -0.00923019326632 + -0.00922835121961 + -0.0092265091729 + -0.00922466712619 + -0.00922282507947 + -0.00922098303276 + -0.00921914098605 + -0.00921729893934 + -0.00921545689263 + -0.00921361484592 + -0.00921177279921 + -0.0092099307525 + -0.00920808870579 + -0.00920624665908 + -0.00920440461237 + -0.00920256256565 + -0.00920072051894 + -0.00919887847223 + -0.00919703642552 + -0.00919519437881 + -0.0091933523321 + -0.00919151028539 + -0.00918966823868 + -0.00918782619197 + -0.00918598414526 + -0.00918414209854 + -0.00918230005183 + -0.00918045800512 + -0.00917861595841 + -0.0091767739117 + -0.00917493186499 + -0.00917308981828 + -0.00917124777157 + -0.00916940572486 + -0.00916756367815 + -0.00916572163144 + -0.00916387958472 + -0.00916203753801 + -0.0091601954913 + -0.00915835344459 + -0.00915651139788 + -0.00915466935117 + -0.00915282730446 + -0.00915098525775 + -0.00914914321104 + -0.00914730116433 + -0.00914545911761 + -0.0091436170709 + -0.00914177502419 + -0.00913993297748 + -0.00913809093077 + -0.00913624888406 + -0.00913440683735 + -0.00913256479064 + -0.00913072274393 + -0.00912888069722 + -0.00912703865051 + -0.00912519660379 + -0.00912335455708 + -0.00912151251037 + -0.00911967046366 + -0.00911782841695 + -0.00911598637024 + -0.00911414432353 + -0.00911230227682 + -0.00911046023011 + -0.0091086181834 + -0.00910677613669 + -0.00910493408997 + -0.00910309204326 + -0.00910124999655 + -0.00909940794984 + -0.00909756590313 + -0.00909572385642 + -0.00909388180971 + -0.009092039763 + -0.00909019771629 + -0.00908835566958 + -0.00908651362286 + -0.00908467157615 + -0.00908282952944 + -0.00908098748273 + -0.00907914543602 + -0.00907730338931 + -0.0090754613426 + -0.00907361929589 + -0.00907177724918 + -0.00906993520247 + -0.00906809315576 + -0.00906625110904 + -0.00906440906233 + -0.00906256701562 + -0.00906072496891 + -0.0090588829222 + -0.00905704087549 + -0.00905519882878 + -0.00905335678207 + -0.00905151473536 + -0.00904967268865 + -0.00904783064194 + -0.00904598859522 + -0.00904414654851 + -0.0090423045018 + -0.00904046245509 + -0.00903862040838 + -0.00903677836167 + -0.00903493631496 + -0.00903309426825 + -0.00903125222154 + -0.00902941017483 + -0.00902756812811 + -0.0090257260814 + -0.00902388403469 + -0.00902204198798 + -0.00902019994127 + -0.00901835789456 + -0.00901651584785 + -0.00901467380114 + -0.00901283175443 + -0.00901098970772 + -0.00900914766101 + -0.00900730561429 + -0.00900546356758 + -0.00900362152087 + -0.00900177947416 + -0.00899993742745 + -0.00899809538074 + -0.00899625333403 + -0.00899441128732 + -0.00899256924061 + -0.0089907271939 + -0.00898888514719 + -0.00898704310047 + -0.00898520105376 + -0.00898335900705 + -0.00898151696034 + -0.00897967491363 + -0.00897783286692 + -0.00897599082021 + -0.0089741487735 + -0.00897230672679 + -0.00897046468008 + -0.00896862263336 + -0.00896678058665 + -0.00896493853994 + -0.00896309649323 + -0.00896125444652 + -0.00895941239981 + -0.0089575703531 + -0.00895572830639 + -0.00895388625968 + -0.00895204421297 + -0.00895020216626 + -0.00894836011954 + -0.00894651807283 + -0.00894467602612 + -0.00894283397941 + -0.0089409919327 + -0.00893914988599 + -0.00893730783928 + -0.00893546579257 + -0.00893362374586 + -0.00893178169915 + -0.00892993965244 + -0.00892809760572 + -0.00892625555901 + -0.0089244135123 + -0.00892257146559 + -0.00892072941888 + -0.00891888737217 + -0.00891704532546 + -0.00891520327875 + -0.00891336123204 + -0.00891151918533 + -0.00890967713861 + -0.0089078350919 + -0.00890599304519 + -0.00890415099848 + -0.00890230895177 + -0.00890046690506 + -0.00889862485835 + -0.00889678281164 + -0.00889494076493 + -0.00889309871822 + -0.00889125667151 + -0.00888941462479 + -0.00888757257808 + -0.00888573053137 + -0.00888388848466 + -0.00888204643795 + -0.00888020439124 + -0.00887836234453 + -0.00887652029782 + -0.00887467825111 + -0.0088728362044 + -0.00887099415769 + -0.00886915211097 + -0.00886731006426 + -0.00886546801755 + -0.00886362597084 + -0.00886178392413 + -0.00885994187742 + -0.00885809983071 + -0.008856257784 + -0.00885441573729 + -0.00885257369058 + -0.00885073164386 + -0.00884888959715 + -0.00884704755044 + -0.00884520550373 + -0.00884336345702 + -0.00884152141031 + -0.0088396793636 + -0.00883783731689 + -0.00883599527018 + -0.00883415322347 + -0.00883231117676 + -0.00883046913004 + -0.00882862708333 + -0.00882678503662 + -0.00882494298991 + -0.0088231009432 + -0.00882125889649 + -0.00881941684978 + -0.00881757480307 + -0.00881573275636 + -0.00881389070965 + -0.00881204866293 + -0.00881020661622 + -0.00880836456951 + -0.0088065225228 + -0.00880468047609 + -0.00880283842938 + -0.00880099638267 + -0.00879915433596 + -0.00879731228925 + -0.00879547024254 + -0.00879362819583 + -0.00879178614911 + -0.0087899441024 + -0.00878810205569 + -0.00878626000898 + -0.00878441796227 + -0.00878257591556 + -0.00878073386885 + -0.00877889182214 + -0.00877704977543 + -0.00877520772872 + -0.00877336568201 + -0.00877152363529 + -0.00876968158858 + -0.00876783954187 + -0.00876599749516 + -0.00876415544845 + -0.00876231340174 + -0.00876047135503 + -0.00875862930832 + -0.00875678726161 + -0.0087549452149 + -0.00875310316818 + -0.00875126112147 + -0.00874941907476 + -0.00874757702805 + -0.00874573498134 + -0.00874389293463 + -0.00874205088792 + -0.00874020884121 + -0.0087383667945 + -0.00873652474779 + -0.00873468270108 + -0.00873284065436 + -0.00873099860765 + -0.00872915656094 + -0.00872731451423 + -0.00872547246752 + -0.00872363042081 + -0.0087217883741 + -0.00871994632739 + -0.00871810428068 + -0.00871626223397 + -0.00871442018726 + -0.00871257814054 + -0.00871073609383 + -0.00870889404712 + -0.00870705200041 + -0.0087052099537 + -0.00870336790699 + -0.00870152586028 + -0.00869968381357 + -0.00869784176686 + -0.00869599972015 + -0.00869415767343 + -0.00869231562672 + -0.00869047358001 + -0.0086886315333 + -0.00868678948659 + -0.00868494743988 + -0.00868310539317 + -0.00868126334646 + -0.00867942129975 + -0.00867757925304 + -0.00867573720633 + -0.00867389515961 + -0.0086720531129 + -0.00867021106619 + -0.00866836901948 + -0.00866652697277 + -0.00866468492606 + -0.00866284287935 + -0.00866100083264 + -0.00865915878593 + -0.00865731673922 + -0.00865547469251 + -0.00865363264579 + -0.00865179059908 + -0.00864994855237 + -0.00864810650566 + -0.00864626445895 + -0.00864442241224 + -0.00864258036553 + -0.00864073831882 + -0.00863889627211 + -0.0086370542254 + -0.00863521217868 + -0.00863337013197 + -0.00863152808526 + -0.00862968603855 + -0.00862784399184 + -0.00862600194513 + -0.00862415989842 + -0.00862231785171 + -0.008620475805 + -0.00861863375829 + -0.00861679171158 + -0.00861494966486 + -0.00861310761815 + -0.00861126557144 + -0.00860942352473 + -0.00860758147802 + -0.00860573943131 + -0.0086038973846 + -0.00860205533789 + -0.00860021329118 + -0.00859837124447 + -0.00859652919776 + -0.00859468715104 + -0.00859284510433 + -0.00859100305762 + -0.00858916101091 + -0.0085873189642 + -0.00858547691749 + -0.00858363487078 + -0.00858179282407 + -0.00857995077736 + -0.00857810873065 + -0.00857626668393 + -0.00857442463722 + -0.00857258259051 + -0.0085707405438 + -0.00856889849709 + -0.00856705645038 + -0.00856521440367 + -0.00856337235696 + -0.00856153031025 + -0.00855968826354 + -0.00855784621683 + -0.00855600417011 + -0.0085541621234 + -0.00855232007669 + -0.00855047802998 + -0.00854863598327 + -0.00854679393656 + -0.00854495188985 + -0.00854310984314 + -0.00854126779643 + -0.00853942574972 + -0.008537583703 + -0.00853574165629 + -0.00853389960958 + -0.00853205756287 + -0.00853021551616 + -0.00852837346945 + -0.00852653142274 + -0.00852468937603 + -0.00852284732932 + -0.00852100528261 + -0.0085191632359 + -0.00851732118918 + -0.00851547914247 + -0.00851363709576 + -0.00851179504905 + -0.00850995300234 + -0.00850811095563 + -0.00850626890892 + -0.00850442686221 + -0.0085025848155 + -0.00850074276879 + -0.00849890072208 + -0.00849705867536 + -0.00849521662865 + -0.00849337458194 + -0.00849153253523 + -0.00848969048852 + -0.00848784844181 + -0.0084860063951 + -0.00848416434839 + -0.00848232230168 + -0.00848048025497 + -0.00847863820825 + -0.00847679616154 + -0.00847495411483 + -0.00847311206812 + -0.00847127002141 + -0.0084694279747 + -0.00846758592799 + -0.00846574388128 + -0.00846390183457 + -0.00846205978786 + -0.00846021774115 + -0.00845837569443 + -0.00845653364772 + -0.00845469160101 + -0.0084528495543 + -0.00845100750759 + -0.00844916546088 + -0.00844732341417 + -0.00844548136746 + -0.00844363932075 + -0.00844179727404 + -0.00843995522733 + -0.00843811318061 + -0.0084362711339 + -0.00843442908719 + -0.00843258704048 + -0.00843074499377 + -0.00842890294706 + -0.00842706090035 + -0.00842521885364 + -0.00842337680693 + -0.00842153476022 + -0.0084196927135 + -0.00841785066679 + -0.00841600862008 + -0.00841416657337 + -0.00841232452666 + -0.00841048247995 + -0.00840864043324 + -0.00840679838653 + -0.00840495633982 + -0.00840311429311 + -0.0084012722464 + -0.00839943019968 + -0.00839758815297 + -0.00839574610626 + -0.00839390405955 + -0.00839206201284 + -0.00839021996613 + -0.00838837791942 + -0.00838653587271 + -0.008384693826 + -0.00838285177929 + -0.00838100973258 + -0.00837916768586 + -0.00837732563915 + -0.00837548359244 + -0.00837364154573 + -0.00837179949902 + -0.00836995745231 + -0.0083681154056 + -0.00836627335889 + -0.00836443131218 + -0.00836258926547 + -0.00836074721875 + -0.00835890517204 + -0.00835706312533 + -0.00835522107862 + -0.00835337903191 + -0.0083515369852 + -0.00834969493849 + -0.00834785289178 + -0.00834601084507 + -0.00834416879836 + -0.00834232675165 + -0.00834048470493 + -0.00833864265822 + -0.00833680061151 + -0.0083349585648 + -0.00833311651809 + -0.00833127447138 + -0.00832943242467 + -0.00832759037796 + -0.00832574833125 + -0.00832390628454 + -0.00832206423783 + -0.00832022219111 + -0.0083183801444 + -0.00831653809769 + -0.00831469605098 + -0.00831285400427 + -0.00831101195756 + -0.00830916991085 + -0.00830732786414 + -0.00830548581743 + -0.00830364377072 + -0.008301801724 + -0.00829995967729 + -0.00829811763058 + -0.00829627558387 + -0.00829443353716 + -0.00829259149045 + -0.00829074944374 + -0.00828890739703 + -0.00828706535032 + -0.00828522330361 + -0.0082833812569 + -0.00828153921018 + -0.00827969716347 + -0.00827785511676 + -0.00827601307005 + -0.00827417102334 + -0.00827232897663 + -0.00827048692992 + -0.00826864488321 + -0.0082668028365 + -0.00826496078979 + -0.00826311874308 + -0.00826127669636 + -0.00825943464965 + -0.00825759260294 + -0.00825575055623 + -0.00825390850952 + -0.00825206646281 + -0.0082502244161 + -0.00824838236939 + -0.00824654032268 + -0.00824469827597 + -0.00824285622925 + -0.00824101418254 + -0.00823917213583 + -0.00823733008912 + -0.00823548804241 + -0.0082336459957 + -0.00823180394899 + -0.00822996190228 + -0.00822811985557 + -0.00822627780886 + -0.00822443576215 + -0.00822259371543 + -0.00822075166872 + -0.00821890962201 + -0.0082170675753 + -0.00821522552859 + -0.00821338348188 + -0.00821154143517 + -0.00820969938846 + -0.00820785734175 + -0.00820601529504 + -0.00820417324832 + -0.00820233120161 + -0.0082004891549 + -0.00819864710819 + -0.00819680506148 + -0.00819496301477 + -0.00819312096806 + -0.00819127892135 + -0.00818943687464 + -0.00818759482793 + -0.00818575278122 + -0.0081839107345 + -0.00818206868779 + -0.00818022664108 + -0.00817838459437 + -0.00817654254766 + -0.00817470050095 + -0.00817285845424 + -0.00817101640753 + -0.00816917436082 + -0.00816733231411 + -0.0081654902674 + -0.00816364822068 + -0.00816180617397 + -0.00815996412726 + -0.00815812208055 + -0.00815628003384 + -0.00815443798713 + -0.00815259594042 + -0.00815075389371 + -0.008148911847 + -0.00814706980029 + -0.00814522775357 + -0.00814338570686 + -0.00814154366015 + -0.00813970161344 + -0.00813785956673 + -0.00813601752002 + -0.00813417547331 + -0.0081323334266 + -0.00813049137989 + -0.00812864933318 + -0.00812680728647 + -0.00812496523975 + -0.00812312319304 + -0.00812128114633 + -0.00811943909962 + -0.00811759705291 + -0.0081157550062 + -0.00811391295949 + -0.00811207091278 + -0.00811022886607 + -0.00810838681936 + -0.00810654477265 + -0.00810470272593 + -0.00810286067922 + -0.00810101863251 + -0.0080991765858 + -0.00809733453909 + -0.00809549249238 + -0.00809365044567 + -0.00809180839896 + -0.00808996635225 + -0.00808812430554 + -0.00808628225882 + -0.00808444021211 + -0.0080825981654 + -0.00808075611869 + -0.00807891407198 + -0.00807707202527 + -0.00807522997856 + -0.00807338793185 + -0.00807154588514 + -0.00806970383843 + -0.00806786179172 + -0.008066019745 + -0.00806417769829 + -0.00806233565158 + -0.00806049360487 + -0.00805865155816 + -0.00805680951145 + -0.00805496746474 + -0.00805312541803 + -0.00805128337132 + -0.00804944132461 + -0.0080475992779 + -0.00804575723118 + -0.00804391518447 + -0.00804207313776 + -0.00804023109105 + -0.00803838904434 + -0.00803654699763 + -0.00803470495092 + -0.00803286290421 + -0.0080310208575 + -0.00802917881079 + -0.00802733676407 + -0.00802549471736 + -0.00802365267065 + -0.00802181062394 + -0.00801996857723 + -0.00801812653052 + -0.00801628448381 + -0.0080144424371 + -0.00801260039039 + -0.00801075834368 + -0.00800891629697 + -0.00800707425025 + -0.00800523220354 + -0.00800339015683 + -0.00800154811012 + -0.00799970606341 + -0.0079978640167 + -0.00799602196999 + -0.00799417992328 + -0.00799233787657 + -0.00799049582986 + -0.00798865378315 + -0.00798681173643 + -0.00798496968972 + -0.00798312764301 + -0.0079812855963 + -0.00797944354959 + -0.00797760150288 + -0.00797575945617 + -0.00797391740946 + -0.00797207536275 + -0.00797023331604 + -0.00796839126932 + -0.00796654922261 + -0.0079647071759 + -0.00796286512919 + -0.00796102308248 + -0.00795918103577 + -0.00795733898906 + -0.00795549694235 + -0.00795365489564 + -0.00795181284893 + -0.00794997080222 + -0.0079481287555 + -0.00794628670879 + -0.00794444466208 + -0.00794260261537 + -0.00794076056866 + -0.00793891852195 + -0.00793707647524 + -0.00793523442853 + -0.00793339238182 + -0.00793155033511 + -0.00792970828839 + -0.00792786624168 + -0.00792602419497 + -0.00792418214826 + -0.00792234010155 + -0.00792049805484 + -0.00791865600813 + -0.00791681396142 + -0.00791497191471 + -0.007913129868 + -0.00791128782129 + -0.00790944577457 + -0.00790760372786 + -0.00790576168115 + -0.00790391963444 + -0.00790207758773 + -0.00790023554102 + -0.00789839349431 + -0.0078965514476 + -0.00789470940089 + -0.00789286735418 + -0.00789102530747 + -0.00788918326075 + -0.00788734121404 + -0.00788549916733 + -0.00788365712062 + -0.00788181507391 + -0.0078799730272 + -0.00787813098049 + -0.00787628893378 + -0.00787444688707 + -0.00787260484036 + -0.00787076279364 + -0.00786892074693 + -0.00786707870022 + -0.00786523665351 + -0.0078633946068 + -0.00786155256009 + -0.00785971051338 + -0.00785786846667 + -0.00785602641996 + -0.00785418437325 + -0.00785234232654 + -0.00785050027982 + -0.00784865823311 + -0.0078468161864 + -0.00784497413969 + -0.00784313209298 + -0.00784129004627 + -0.00783944799956 + -0.00783760595285 + -0.00783576390614 + -0.00783392185943 + -0.00783207981272 + -0.007830237766 + -0.00782839571929 + -0.00782655367258 + -0.00782471162587 + -0.00782286957916 + -0.00782102753245 + -0.00781918548574 + -0.00781734343903 + -0.00781550139232 + -0.00781365934561 + -0.00781181729889 + -0.00780997525218 + -0.00780813320547 + -0.00780629115876 + -0.00780444911205 + -0.00780260706534 + -0.00780076501863 + -0.00779892297192 + -0.00779708092521 + -0.0077952388785 + -0.00779339683179 + -0.00779155478507 + -0.00778971273836 + -0.00778787069165 + -0.00778602864494 + -0.00778418659823 + -0.00778234455152 + -0.00778050250481 + -0.0077786604581 + -0.00777681841139 + -0.00777497636468 + -0.00777313431797 + -0.00777129227125 + -0.00776945022454 + -0.00776760817783 + -0.00776576613112 + -0.00776392408441 + -0.0077620820377 + -0.00776023999099 + -0.00775839794428 + -0.00775655589757 + -0.00775471385086 + -0.00775287180414 + -0.00775102975743 + -0.00774918771072 + -0.00774734566401 + -0.0077455036173 + -0.00774366157059 + -0.00774181952388 + -0.00773997747717 + -0.00773813543046 + -0.00773629338375 + -0.00773445133704 + -0.00773260929032 + -0.00773076724361 + -0.0077289251969 + -0.00772708315019 + -0.00772524110348 + -0.00772339905677 + -0.00772155701006 + -0.00771971496335 + -0.00771787291664 + -0.00771603086993 + -0.00771418882322 + -0.0077123467765 + -0.00771050472979 + -0.00770866268308 + -0.00770682063637 + -0.00770497858966 + -0.00770313654295 + -0.00770129449624 + -0.00769945244953 + -0.00769761040282 + -0.00769576835611 + -0.00769392630939 + -0.00769208426268 + -0.00769024221597 + -0.00768840016926 + -0.00768655812255 + -0.00768471607584 + -0.00768287402913 + -0.00768103198242 + -0.00767918993571 + -0.007677347889 + -0.00767550584229 + -0.00767366379557 + -0.00767182174886 + -0.00766997970215 + -0.00766813765544 + -0.00766629560873 + -0.00766445356202 + -0.00766261151531 + -0.0076607694686 + -0.00765892742189 + -0.00765708537518 + -0.00765524332847 + -0.00765340128175 + -0.00765155923504 + -0.00764971718833 + -0.00764787514162 + -0.00764603309491 + -0.0076441910482 + -0.00764234900149 + -0.00764050695478 + -0.00763866490807 + -0.00763682286136 + -0.00763498081464 + -0.00763313876793 + -0.00763129672122 + -0.00762945467451 + -0.0076276126278 + -0.00762577058109 + -0.00762392853438 + -0.00762208648767 + -0.00762024444096 + -0.00761840239425 + -0.00761656034754 + -0.00761471830082 + -0.00761287625411 + -0.0076110342074 + -0.00760919216069 + -0.00760735011398 + -0.00760550806727 + -0.00760366602056 + -0.00760182397385 + -0.00759998192714 + -0.00759813988043 + -0.00759629783371 + -0.007594455787 + -0.00759261374029 + -0.00759077169358 + -0.00758892964687 + -0.00758708760016 + -0.00758524555345 + -0.00758340350674 + -0.00758156146003 + -0.00757971941332 + -0.00757787736661 + -0.00757603531989 + -0.00757419327318 + -0.00757235122647 + -0.00757050917976 + -0.00756866713305 + -0.00756682508634 + -0.00756498303963 + -0.00756314099292 + -0.00756129894621 + -0.0075594568995 + -0.00755761485279 + -0.00755577280607 + -0.00755393075936 + -0.00755208871265 + -0.00755024666594 + -0.00754840461923 + -0.00754656257252 + -0.00754472052581 + -0.0075428784791 + -0.00754103643239 + -0.00753919438568 + -0.00753735233896 + -0.00753551029225 + -0.00753366824554 + -0.00753182619883 + -0.00752998415212 + -0.00752814210541 + -0.0075263000587 + -0.00752445801199 + -0.00752261596528 + -0.00752077391857 + -0.00751893187186 + -0.00751708982514 + -0.00751524777843 + -0.00751340573172 + -0.00751156368501 + -0.0075097216383 + -0.00750787959159 + -0.00750603754488 + -0.00750419549817 + -0.00750235345146 + -0.00750051140475 + -0.00749866935804 + -0.00749682731132 + -0.00749498526461 + -0.0074931432179 + -0.00749130117119 + -0.00748945912448 + -0.00748761707777 + -0.00748577503106 + -0.00748393298435 + -0.00748209093764 + -0.00748024889093 + -0.00747840684421 + -0.0074765647975 + -0.00747472275079 + -0.00747288070408 + -0.00747103865737 + -0.00746919661066 + -0.00746735456395 + -0.00746551251724 + -0.00746367047053 + -0.00746182842382 + -0.00745998637711 + -0.00745814433039 + -0.00745630228368 + -0.00745446023697 + -0.00745261819026 + -0.00745077614355 + -0.00744893409684 + -0.00744709205013 + -0.00744525000342 + -0.00744340795671 + -0.00744156591 + -0.00743972386329 + -0.00743788181657 + -0.00743603976986 + -0.00743419772315 + -0.00743235567644 + -0.00743051362973 + -0.00742867158302 + -0.00742682953631 + -0.0074249874896 + -0.00742314544289 + -0.00742130339618 + -0.00741946134946 + -0.00741761930275 + -0.00741577725604 + -0.00741393520933 + -0.00741209316262 + -0.00741025111591 + -0.0074084090692 + -0.00740656702249 + -0.00740472497578 + -0.00740288292907 + -0.00740104088236 + -0.00739919883564 + -0.00739735678893 + -0.00739551474222 + -0.00739367269551 + -0.0073918306488 + -0.00738998860209 + -0.00738814655538 + -0.00738630450867 + -0.00738446246196 + -0.00738262041525 + -0.00738077836854 + -0.00737893632182 + -0.00737709427511 + -0.0073752522284 + -0.00737341018169 + -0.00737156813498 + -0.00736972608827 + -0.00736788404156 + -0.00736604199485 + -0.00736419994814 + -0.00736235790143 + -0.00736051585471 + -0.007358673808 + -0.00735683176129 + -0.00735498971458 + -0.00735314766787 + -0.00735130562116 + -0.00734946357445 + -0.00734762152774 + -0.00734577948103 + -0.00734393743432 + -0.00734209538761 + -0.00734025334089 + -0.00733841129418 + -0.00733656924747 + -0.00733472720076 + -0.00733288515405 + -0.00733104310734 + -0.00732920106063 + -0.00732735901392 + -0.00732551696721 + -0.0073236749205 + -0.00732183287378 + -0.00731999082707 + -0.00731814878036 + -0.00731630673365 + -0.00731446468694 + -0.00731262264023 + -0.00731078059352 + -0.00730893854681 + -0.0073070965001 + -0.00730525445339 + -0.00730341240668 + -0.00730157035996 + -0.00729972831325 + -0.00729788626654 + -0.00729604421983 + -0.00729420217312 + -0.00729236012641 + -0.0072905180797 + -0.00728867603299 + -0.00728683398628 + -0.00728499193957 + -0.00728314989286 + -0.00728130784614 + -0.00727946579943 + -0.00727762375272 + -0.00727578170601 + -0.0072739396593 + -0.00727209761259 + -0.00727025556588 + -0.00726841351917 + -0.00726657147246 + -0.00726472942575 + -0.00726288737903 + -0.00726104533232 + -0.00725920328561 + -0.0072573612389 + -0.00725551919219 + -0.00725367714548 + -0.00725183509877 + -0.00724999305206 + -0.00724815100535 + -0.00724630895864 + -0.00724446691193 + -0.00724262486521 + -0.0072407828185 + -0.00723894077179 + -0.00723709872508 + -0.00723525667837 + -0.00723341463166 + -0.00723157258495 + -0.00722973053824 + -0.00722788849153 + -0.00722604644482 + -0.00722420439811 + -0.00722236235139 + -0.00722052030468 + -0.00721867825797 + -0.00721683621126 + -0.00721499416455 + -0.00721315211784 + -0.00721131007113 + -0.00720946802442 + -0.00720762597771 + -0.007205783931 + -0.00720394188428 + -0.00720209983757 + -0.00720025779086 + -0.00719841574415 + -0.00719657369744 + -0.00719473165073 + -0.00719288960402 + -0.00719104755731 + -0.0071892055106 + -0.00718736346389 + -0.00718552141718 + -0.00718367937046 + -0.00718183732375 + -0.00717999527704 + -0.00717815323033 + -0.00717631118362 + -0.00717446913691 + -0.0071726270902 + -0.00717078504349 + -0.00716894299678 + -0.00716710095007 + -0.00716525890336 + -0.00716341685664 + -0.00716157480993 + -0.00715973276322 + -0.00715789071651 + -0.0071560486698 + -0.00715420662309 + -0.00715236457638 + -0.00715052252967 + -0.00714868048296 + -0.00714683843625 + -0.00714499638953 + -0.00714315434282 + -0.00714131229611 + -0.0071394702494 + -0.00713762820269 + -0.00713578615598 + -0.00713394410927 + -0.00713210206256 + -0.00713026001585 + -0.00712841796914 + -0.00712657592243 + -0.00712473387571 + -0.007122891829 + -0.00712104978229 + -0.00711920773558 + -0.00711736568887 + -0.00711552364216 + -0.00711368159545 + -0.00711183954874 + -0.00710999750203 + -0.00710815545532 + -0.00710631340861 + -0.00710447136189 + -0.00710262931518 + -0.00710078726847 + -0.00709894522176 + -0.00709710317505 + -0.00709526112834 + -0.00709341908163 + -0.00709157703492 + -0.00708973498821 + -0.0070878929415 + -0.00708605089478 + -0.00708420884807 + -0.00708236680136 + -0.00708052475465 + -0.00707868270794 + -0.00707684066123 + -0.00707499861452 + -0.00707315656781 + -0.0070713145211 + -0.00706947247439 + -0.00706763042768 + -0.00706578838096 + -0.00706394633425 + -0.00706210428754 + -0.00706026224083 + -0.00705842019412 + -0.00705657814741 + -0.0070547361007 + -0.00705289405399 + -0.00705105200728 + -0.00704920996057 + -0.00704736791386 + -0.00704552586714 + -0.00704368382043 + -0.00704184177372 + -0.00703999972701 + -0.0070381576803 + -0.00703631563359 + -0.00703447358688 + -0.00703263154017 + -0.00703078949346 + -0.00702894744675 + -0.00702710540003 + -0.00702526335332 + -0.00702342130661 + -0.0070215792599 + -0.00701973721319 + -0.00701789516648 + -0.00701605311977 + -0.00701421107306 + -0.00701236902635 + -0.00701052697964 + -0.00700868493293 + -0.00700684288621 + -0.0070050008395 + -0.00700315879279 + -0.00700131674608 + -0.00699947469937 + -0.00699763265266 + -0.00699579060595 + -0.00699394855924 + -0.00699210651253 + -0.00699026446582 + -0.0069884224191 + -0.00698658037239 + -0.00698473832568 + -0.00698289627897 + -0.00698105423226 + -0.00697921218555 + -0.00697737013884 + -0.00697552809213 + -0.00697368604542 + -0.00697184399871 + -0.006970001952 + -0.00696815990528 + -0.00696631785857 + -0.00696447581186 + -0.00696263376515 + -0.00696079171844 + -0.00695894967173 + -0.00695710762502 + -0.00695526557831 + -0.0069534235316 + -0.00695158148489 + -0.00694973943818 + -0.00694789739146 + -0.00694605534475 + -0.00694421329804 + -0.00694237125133 + -0.00694052920462 + -0.00693868715791 + -0.0069368451112 + -0.00693500306449 + -0.00693316101778 + -0.00693131897107 + -0.00692947692435 + -0.00692763487764 + -0.00692579283093 + -0.00692395078422 + -0.00692210873751 + -0.0069202666908 + -0.00691842464409 + -0.00691658259738 + -0.00691474055067 + -0.00691289850396 + -0.00691105645725 + -0.00690921441053 + -0.00690737236382 + -0.00690553031711 + -0.0069036882704 + -0.00690184622369 + -0.00690000417698 + -0.00689816213027 + -0.00689632008356 + -0.00689447803685 + -0.00689263599014 + -0.00689079394343 + -0.00688895189671 + -0.00688710985 + -0.00688526780329 + -0.00688342575658 + -0.00688158370987 + -0.00687974166316 + -0.00687789961645 + -0.00687605756974 + -0.00687421552303 + -0.00687237347632 + -0.0068705314296 + -0.00686868938289 + -0.00686684733618 + -0.00686500528947 + -0.00686316324276 + -0.00686132119605 + -0.00685947914934 + -0.00685763710263 + -0.00685579505592 + -0.00685395300921 + -0.0068521109625 + -0.00685026891578 + -0.00684842686907 + -0.00684658482236 + -0.00684474277565 + -0.00684290072894 + -0.00684105868223 + -0.00683921663552 + -0.00683737458881 + -0.0068355325421 + -0.00683369049539 + -0.00683184844868 + -0.00683000640196 + -0.00682816435525 + -0.00682632230854 + -0.00682448026183 + -0.00682263821512 + -0.00682079616841 + -0.0068189541217 + -0.00681711207499 + -0.00681527002828 + -0.00681342798157 + -0.00681158593485 + -0.00680974388814 + -0.00680790184143 + -0.00680605979472 + -0.00680421774801 + -0.0068023757013 + -0.00680053365459 + -0.00679869160788 + -0.00679684956117 + -0.00679500751446 + -0.00679316546775 + -0.00679132342103 + -0.00678948137432 + -0.00678763932761 + -0.0067857972809 + -0.00678395523419 + -0.00678211318748 + -0.00678027114077 + -0.00677842909406 + -0.00677658704735 + -0.00677474500064 + -0.00677290295393 + -0.00677106090721 + -0.0067692188605 + -0.00676737681379 + -0.00676553476708 + -0.00676369272037 + -0.00676185067366 + -0.00676000862695 + -0.00675816658024 + -0.00675632453353 + -0.00675448248682 + -0.0067526404401 + -0.00675079839339 + -0.00674895634668 + -0.00674711429997 + -0.00674527225326 + -0.00674343020655 + -0.00674158815984 + -0.00673974611313 + -0.00673790406642 + -0.00673606201971 + -0.006734219973 + -0.00673237792628 + -0.00673053587957 + -0.00672869383286 + -0.00672685178615 + -0.00672500973944 + -0.00672316769273 + -0.00672132564602 + -0.00671948359931 + -0.0067176415526 + -0.00671579950589 + -0.00671395745918 + -0.00671211541246 + -0.00671027336575 + -0.00670843131904 + -0.00670658927233 + -0.00670474722562 + -0.00670290517891 + -0.0067010631322 + -0.00669922108549 + -0.00669737903878 + -0.00669553699207 + -0.00669369494535 + -0.00669185289864 + -0.00669001085193 + -0.00668816880522 + -0.00668632675851 + -0.0066844847118 + -0.00668264266509 + -0.00668080061838 + -0.00667895857167 + -0.00667711652496 + -0.00667527447825 + -0.00667343243153 + -0.00667159038482 + -0.00666974833811 + -0.0066679062914 + -0.00666606424469 + -0.00666422219798 + -0.00666238015127 + -0.00666053810456 + -0.00665869605785 + -0.00665685401114 + -0.00665501196442 + -0.00665316991771 + -0.006651327871 + -0.00664948582429 + -0.00664764377758 + -0.00664580173087 + -0.00664395968416 + -0.00664211763745 + -0.00664027559074 + -0.00663843354403 + -0.00663659149732 + -0.0066347494506 + -0.00663290740389 + -0.00663106535718 + -0.00662922331047 + -0.00662738126376 + -0.00662553921705 + -0.00662369717034 + -0.00662185512363 + -0.00662001307692 + -0.00661817103021 + -0.0066163289835 + -0.00661448693678 + -0.00661264489007 + -0.00661080284336 + -0.00660896079665 + -0.00660711874994 + -0.00660527670323 + -0.00660343465652 + -0.00660159260981 + -0.0065997505631 + -0.00659790851639 + -0.00659606646967 + -0.00659422442296 + -0.00659238237625 + -0.00659054032954 + -0.00658869828283 + -0.00658685623612 + -0.00658501418941 + -0.0065831721427 + -0.00658133009599 + -0.00657948804928 + -0.00657764600257 + -0.00657580395585 + -0.00657396190914 + -0.00657211986243 + -0.00657027781572 + -0.00656843576901 + -0.0065665937223 + -0.00656475167559 + -0.00656290962888 + -0.00656106758217 + -0.00655922553546 + -0.00655738348875 + -0.00655554144203 + -0.00655369939532 + -0.00655185734861 + -0.0065500153019 + -0.00654817325519 + -0.00654633120848 + -0.00654448916177 + -0.00654264711506 + -0.00654080506835 + -0.00653896302164 + -0.00653712097492 + -0.00653527892821 + -0.0065334368815 + -0.00653159483479 + -0.00652975278808 + -0.00652791074137 + -0.00652606869466 + -0.00652422664795 + -0.00652238460124 + -0.00652054255453 + -0.00651870050782 + -0.0065168584611 + -0.00651501641439 + -0.00651317436768 + -0.00651133232097 + -0.00650949027426 + -0.00650764822755 + -0.00650580618084 + -0.00650396413413 + -0.00650212208742 + -0.00650028004071 + -0.006498437994 + -0.00649659594728 + -0.00649475390057 + -0.00649291185386 + -0.00649106980715 + -0.00648922776044 + -0.00648738571373 + -0.00648554366702 + -0.00648370162031 + -0.0064818595736 + -0.00648001752689 + -0.00647817548017 + -0.00647633343346 + -0.00647449138675 + -0.00647264934004 + -0.00647080729333 + -0.00646896524662 + -0.00646712319991 + -0.0064652811532 + -0.00646343910649 + -0.00646159705978 + -0.00645975501307 + -0.00645791296635 + -0.00645607091964 + -0.00645422887293 + -0.00645238682622 + -0.00645054477951 + -0.0064487027328 + -0.00644686068609 + -0.00644501863938 + -0.00644317659267 + -0.00644133454596 + -0.00643949249925 + -0.00643765045253 + -0.00643580840582 + -0.00643396635911 + -0.0064321243124 + -0.00643028226569 + -0.00642844021898 + -0.00642659817227 + -0.00642475612556 + -0.00642291407885 + -0.00642107203214 + -0.00641922998542 + -0.00641738793871 + -0.006415545892 + -0.00641370384529 + -0.00641186179858 + -0.00641001975187 + -0.00640817770516 + -0.00640633565845 + -0.00640449361174 + -0.00640265156503 + -0.00640080951832 + -0.0063989674716 + -0.00639712542489 + -0.00639528337818 + -0.00639344133147 + -0.00639159928476 + -0.00638975723805 + -0.00638791519134 + -0.00638607314463 + -0.00638423109792 + -0.00638238905121 + -0.00638054700449 + -0.00637870495778 + -0.00637686291107 + -0.00637502086436 + -0.00637317881765 + -0.00637133677094 + -0.00636949472423 + -0.00636765267752 + -0.00636581063081 + -0.0063639685841 + -0.00636212653739 + -0.00636028449067 + -0.00635844244396 + -0.00635660039725 + -0.00635475835054 + -0.00635291630383 + -0.00635107425712 + -0.00634923221041 + -0.0063473901637 + -0.00634554811699 + -0.00634370607028 + -0.00634186402357 + -0.00634002197685 + -0.00633817993014 + -0.00633633788343 + -0.00633449583672 + -0.00633265379001 + -0.0063308117433 + -0.00632896969659 + -0.00632712764988 + -0.00632528560317 + -0.00632344355646 + -0.00632160150974 + -0.00631975946303 + -0.00631791741632 + -0.00631607536961 + -0.0063142333229 + -0.00631239127619 + -0.00631054922948 + -0.00630870718277 + -0.00630686513606 + -0.00630502308935 + -0.00630318104264 + -0.00630133899592 + -0.00629949694921 + -0.0062976549025 + -0.00629581285579 + -0.00629397080908 + -0.00629212876237 + -0.00629028671566 + -0.00628844466895 + -0.00628660262224 + -0.00628476057553 + -0.00628291852882 + -0.0062810764821 + -0.00627923443539 + -0.00627739238868 + -0.00627555034197 + -0.00627370829526 + -0.00627186624855 + -0.00627002420184 + -0.00626818215513 + -0.00626634010842 + -0.00626449806171 + -0.00626265601499 + -0.00626081396828 + -0.00625897192157 + -0.00625712987486 + -0.00625528782815 + -0.00625344578144 + -0.00625160373473 + -0.00624976168802 + -0.00624791964131 + -0.0062460775946 + -0.00624423554789 + -0.00624239350117 + -0.00624055145446 + -0.00623870940775 + -0.00623686736104 + -0.00623502531433 + -0.00623318326762 + -0.00623134122091 + -0.0062294991742 + -0.00622765712749 + -0.00622581508078 + -0.00622397303407 + -0.00622213098735 + -0.00622028894064 + -0.00621844689393 + -0.00621660484722 + -0.00621476280051 + -0.0062129207538 + -0.00621107870709 + -0.00620923666038 + -0.00620739461367 + -0.00620555256696 + -0.00620371052024 + -0.00620186847353 + -0.00620002642682 + -0.00619818438011 + -0.0061963423334 + -0.00619450028669 + -0.00619265823998 + -0.00619081619327 + -0.00618897414656 + -0.00618713209985 + -0.00618529005314 + -0.00618344800642 + -0.00618160595971 + -0.006179763913 + -0.00617792186629 + -0.00617607981958 + -0.00617423777287 + -0.00617239572616 + -0.00617055367945 + -0.00616871163274 + -0.00616686958603 + -0.00616502753932 + -0.0061631854926 + -0.00616134344589 + -0.00615950139918 + -0.00615765935247 + -0.00615581730576 + -0.00615397525905 + -0.00615213321234 + -0.00615029116563 + -0.00614844911892 + -0.00614660707221 + -0.00614476502549 + -0.00614292297878 + -0.00614108093207 + -0.00613923888536 + -0.00613739683865 + -0.00613555479194 + -0.00613371274523 + -0.00613187069852 + -0.00613002865181 + -0.0061281866051 + -0.00612634455839 + -0.00612450251167 + -0.00612266046496 + -0.00612081841825 + -0.00611897637154 + -0.00611713432483 + -0.00611529227812 + -0.00611345023141 + -0.0061116081847 + -0.00610976613799 + -0.00610792409128 + -0.00610608204457 + -0.00610423999785 + -0.00610239795114 + -0.00610055590443 + -0.00609871385772 + -0.00609687181101 + -0.0060950297643 + -0.00609318771759 + -0.00609134567088 + -0.00608950362417 + -0.00608766157746 + -0.00608581953074 + -0.00608397748403 + -0.00608213543732 + -0.00608029339061 + -0.0060784513439 + -0.00607660929719 + -0.00607476725048 + -0.00607292520377 + -0.00607108315706 + -0.00606924111035 + -0.00606739906364 + -0.00606555701692 + -0.00606371497021 + -0.0060618729235 + -0.00606003087679 + -0.00605818883008 + -0.00605634678337 + -0.00605450473666 + -0.00605266268995 + -0.00605082064324 + -0.00604897859653 + -0.00604713654981 + -0.0060452945031 + -0.00604345245639 + -0.00604161040968 + -0.00603976836297 + -0.00603792631626 + -0.00603608426955 + -0.00603424222284 + -0.00603240017613 + -0.00603055812942 + -0.00602871608271 + -0.00602687403599 + -0.00602503198928 + -0.00602318994257 + -0.00602134789586 + -0.00601950584915 + -0.00601766380244 + -0.00601582175573 + -0.00601397970902 + -0.00601213766231 + -0.0060102956156 + -0.00600845356889 + -0.00600661152217 + -0.00600476947546 + -0.00600292742875 + -0.00600108538204 + -0.00599924333533 + -0.00599740128862 + -0.00599555924191 + -0.0059937171952 + -0.00599187514849 + -0.00599003310178 + -0.00598819105506 + -0.00598634900835 + -0.00598450696164 + -0.00598266491493 + -0.00598082286822 + -0.00597898082151 + -0.0059771387748 + -0.00597529672809 + -0.00597345468138 + -0.00597161263467 + -0.00596977058796 + -0.00596792854124 + -0.00596608649453 + -0.00596424444782 + -0.00596240240111 + -0.0059605603544 + -0.00595871830769 + -0.00595687626098 + -0.00595503421427 + -0.00595319216756 + -0.00595135012085 + -0.00594950807414 + -0.00594766602742 + -0.00594582398071 + -0.005943981934 + -0.00594213988729 + -0.00594029784058 + -0.00593845579387 + -0.00593661374716 + -0.00593477170045 + -0.00593292965374 + -0.00593108760703 + -0.00592924556031 + -0.0059274035136 + -0.00592556146689 + -0.00592371942018 + -0.00592187737347 + -0.00592003532676 + -0.00591819328005 + -0.00591635123334 + -0.00591450918663 + -0.00591266713992 + -0.00591082509321 + -0.00590898304649 + -0.00590714099978 + -0.00590529895307 + -0.00590345690636 + -0.00590161485965 + -0.00589977281294 + -0.00589793076623 + -0.00589608871952 + -0.00589424667281 + -0.0058924046261 + -0.00589056257939 + -0.00588872053267 + -0.00588687848596 + -0.00588503643925 + -0.00588319439254 + -0.00588135234583 + -0.00587951029912 + -0.00587766825241 + -0.0058758262057 + -0.00587398415899 + -0.00587214211228 + -0.00587030006556 + -0.00586845801885 + -0.00586661597214 + -0.00586477392543 + -0.00586293187872 + -0.00586108983201 + -0.0058592477853 + -0.00585740573859 + -0.00585556369188 + -0.00585372164517 + -0.00585187959846 + -0.00585003755174 + -0.00584819550503 + -0.00584635345832 + -0.00584451141161 + -0.0058426693649 + -0.00584082731819 + -0.00583898527148 + -0.00583714322477 + -0.00583530117806 + -0.00583345913135 + -0.00583161708464 + -0.00582977503792 + -0.00582793299121 + -0.0058260909445 + -0.00582424889779 + -0.00582240685108 + -0.00582056480437 + -0.00581872275766 + -0.00581688071095 + -0.00581503866424 + -0.00581319661753 + -0.00581135457081 + -0.0058095125241 + -0.00580767047739 + -0.00580582843068 + -0.00580398638397 + -0.00580214433726 + -0.00580030229055 + -0.00579846024384 + -0.00579661819713 + -0.00579477615042 + -0.00579293410371 + -0.00579109205699 + -0.00578925001028 + -0.00578740796357 + -0.00578556591686 + -0.00578372387015 + -0.00578188182344 + -0.00578003977673 + -0.00577819773002 + -0.00577635568331 + -0.0057745136366 + -0.00577267158988 + -0.00577082954317 + -0.00576898749646 + -0.00576714544975 + -0.00576530340304 + -0.00576346135633 + -0.00576161930962 + -0.00575977726291 + -0.0057579352162 + -0.00575609316949 + -0.00575425112278 + -0.00575240907606 + -0.00575056702935 + -0.00574872498264 + -0.00574688293593 + -0.00574504088922 + -0.00574319884251 + -0.0057413567958 + -0.00573951474909 + -0.00573767270238 + -0.00573583065567 + -0.00573398860896 + -0.00573214656224 + -0.00573030451553 + -0.00572846246882 + -0.00572662042211 + -0.0057247783754 + -0.00572293632869 + -0.00572109428198 + -0.00571925223527 + -0.00571741018856 + -0.00571556814185 + -0.00571372609513 + -0.00571188404842 + -0.00571004200171 + -0.005708199955 + -0.00570635790829 + -0.00570451586158 + -0.00570267381487 + -0.00570083176816 + -0.00569898972145 + -0.00569714767474 + -0.00569530562803 + -0.00569346358131 + -0.0056916215346 + -0.00568977948789 + -0.00568793744118 + -0.00568609539447 + -0.00568425334776 + -0.00568241130105 + -0.00568056925434 + -0.00567872720763 + -0.00567688516092 + -0.00567504311421 + -0.00567320106749 + -0.00567135902078 + -0.00566951697407 + -0.00566767492736 + -0.00566583288065 + -0.00566399083394 + -0.00566214878723 + -0.00566030674052 + -0.00565846469381 + -0.0056566226471 + -0.00565478060038 + -0.00565293855367 + -0.00565109650696 + -0.00564925446025 + -0.00564741241354 + -0.00564557036683 + -0.00564372832012 + -0.00564188627341 + -0.0056400442267 + -0.00563820217999 + -0.00563636013328 + -0.00563451808656 + -0.00563267603985 + -0.00563083399314 + -0.00562899194643 + -0.00562714989972 + -0.00562530785301 + -0.0056234658063 + -0.00562162375959 + -0.00561978171288 + -0.00561793966617 + -0.00561609761946 + -0.00561425557274 + -0.00561241352603 + -0.00561057147932 + -0.00560872943261 + -0.0056068873859 + -0.00560504533919 + -0.00560320329248 + -0.00560136124577 + -0.00559951919906 + -0.00559767715235 + -0.00559583510563 + -0.00559399305892 + -0.00559215101221 + -0.0055903089655 + -0.00558846691879 + -0.00558662487208 + -0.00558478282537 + -0.00558294077866 + -0.00558109873195 + -0.00557925668524 + -0.00557741463853 + -0.00557557259181 + -0.0055737305451 + -0.00557188849839 + -0.00557004645168 + -0.00556820440497 + -0.00556636235826 + -0.00556452031155 + -0.00556267826484 + -0.00556083621813 + -0.00555899417142 + -0.00555715212471 + -0.00555531007799 + -0.00555346803128 + -0.00555162598457 + -0.00554978393786 + -0.00554794189115 + -0.00554609984444 + -0.00554425779773 + -0.00554241575102 + -0.00554057370431 + -0.0055387316576 + -0.00553688961088 + -0.00553504756417 + -0.00553320551746 + -0.00553136347075 + -0.00552952142404 + -0.00552767937733 + -0.00552583733062 + -0.00552399528391 + -0.0055221532372 + -0.00552031119049 + -0.00551846914378 + -0.00551662709706 + -0.00551478505035 + -0.00551294300364 + -0.00551110095693 + -0.00550925891022 + -0.00550741686351 + -0.0055055748168 + -0.00550373277009 + -0.00550189072338 + -0.00550004867667 + -0.00549820662996 + -0.00549636458324 + -0.00549452253653 + -0.00549268048982 + -0.00549083844311 + -0.0054889963964 + -0.00548715434969 + -0.00548531230298 + -0.00548347025627 + -0.00548162820956 + -0.00547978616285 + -0.00547794411613 + -0.00547610206942 + -0.00547426002271 + -0.005472417976 + -0.00547057592929 + -0.00546873388258 + -0.00546689183587 + -0.00546504978916 + -0.00546320774245 + -0.00546136569574 + -0.00545952364903 + -0.00545768160231 + -0.0054558395556 + -0.00545399750889 + -0.00545215546218 + -0.00545031341547 + -0.00544847136876 + -0.00544662932205 + -0.00544478727534 + -0.00544294522863 + -0.00544110318192 + -0.0054392611352 + -0.00543741908849 + -0.00543557704178 + -0.00543373499507 + -0.00543189294836 + -0.00543005090165 + -0.00542820885494 + -0.00542636680823 + -0.00542452476152 + -0.00542268271481 + -0.0054208406681 + -0.00541899862138 + -0.00541715657467 + -0.00541531452796 + -0.00541347248125 + -0.00541163043454 + -0.00540978838783 + -0.00540794634112 + -0.00540610429441 + -0.0054042622477 + -0.00540242020099 + -0.00540057815428 + -0.00539873610756 + -0.00539689406085 + -0.00539505201414 + -0.00539320996743 + -0.00539136792072 + -0.00538952587401 + -0.0053876838273 + -0.00538584178059 + -0.00538399973388 + -0.00538215768717 + -0.00538031564045 + -0.00537847359374 + -0.00537663154703 + -0.00537478950032 + -0.00537294745361 + -0.0053711054069 + -0.00536926336019 + -0.00536742131348 + -0.00536557926677 + -0.00536373722006 + -0.00536189517335 + -0.00536005312663 + -0.00535821107992 + -0.00535636903321 + -0.0053545269865 + -0.00535268493979 + -0.00535084289308 + -0.00534900084637 + -0.00534715879966 + -0.00534531675295 + -0.00534347470624 + -0.00534163265953 + -0.00533979061281 + -0.0053379485661 + -0.00533610651939 + -0.00533426447268 + -0.00533242242597 + -0.00533058037926 + -0.00532873833255 + -0.00532689628584 + -0.00532505423913 + -0.00532321219242 + -0.0053213701457 + -0.00531952809899 + -0.00531768605228 + -0.00531584400557 + -0.00531400195886 + -0.00531215991215 + -0.00531031786544 + -0.00530847581873 + -0.00530663377202 + -0.00530479172531 + -0.0053029496786 + -0.00530110763188 + -0.00529926558517 + -0.00529742353846 + -0.00529558149175 + -0.00529373944504 + -0.00529189739833 + -0.00529005535162 + -0.00528821330491 + -0.0052863712582 + -0.00528452921149 + -0.00528268716478 + -0.00528084511806 + -0.00527900307135 + -0.00527716102464 + -0.00527531897793 + -0.00527347693122 + -0.00527163488451 + -0.0052697928378 + -0.00526795079109 + -0.00526610874438 + -0.00526426669767 + -0.00526242465095 + -0.00526058260424 + -0.00525874055753 + -0.00525689851082 + -0.00525505646411 + -0.0052532144174 + -0.00525137237069 + -0.00524953032398 + -0.00524768827727 + -0.00524584623056 + -0.00524400418385 + -0.00524216213713 + -0.00524032009042 + -0.00523847804371 + -0.005236635997 + -0.00523479395029 + -0.00523295190358 + -0.00523110985687 + -0.00522926781016 + -0.00522742576345 + -0.00522558371674 + -0.00522374167003 + -0.00522189962331 + -0.0052200575766 + -0.00521821552989 + -0.00521637348318 + -0.00521453143647 + -0.00521268938976 + -0.00521084734305 + -0.00520900529634 + -0.00520716324963 + -0.00520532120292 + -0.0052034791562 + -0.00520163710949 + -0.00519979506278 + -0.00519795301607 + -0.00519611096936 + -0.00519426892265 + -0.00519242687594 + -0.00519058482923 + -0.00518874278252 + -0.00518690073581 + -0.0051850586891 + -0.00518321664238 + -0.00518137459567 + -0.00517953254896 + -0.00517769050225 + -0.00517584845554 + -0.00517400640883 + -0.00517216436212 + -0.00517032231541 + -0.0051684802687 + -0.00516663822199 + -0.00516479617527 + -0.00516295412856 + -0.00516111208185 + -0.00515927003514 + -0.00515742798843 + -0.00515558594172 + -0.00515374389501 + -0.0051519018483 + -0.00515005980159 + -0.00514821775488 + -0.00514637570817 + -0.00514453366145 + -0.00514269161474 + -0.00514084956803 + -0.00513900752132 + -0.00513716547461 + -0.0051353234279 + -0.00513348138119 + -0.00513163933448 + -0.00512979728777 + -0.00512795524106 + -0.00512611319435 + -0.00512427114763 + -0.00512242910092 + -0.00512058705421 + -0.0051187450075 + -0.00511690296079 + -0.00511506091408 + -0.00511321886737 + -0.00511137682066 + -0.00510953477395 + -0.00510769272724 + -0.00510585068052 + -0.00510400863381 + -0.0051021665871 + -0.00510032454039 + -0.00509848249368 + -0.00509664044697 + -0.00509479840026 + -0.00509295635355 + -0.00509111430684 + -0.00508927226013 + -0.00508743021342 + -0.0050855881667 + -0.00508374611999 + -0.00508190407328 + -0.00508006202657 + -0.00507821997986 + -0.00507637793315 + -0.00507453588644 + -0.00507269383973 + -0.00507085179302 + -0.00506900974631 + -0.0050671676996 + -0.00506532565288 + -0.00506348360617 + -0.00506164155946 + -0.00505979951275 + -0.00505795746604 + -0.00505611541933 + -0.00505427337262 + -0.00505243132591 + -0.0050505892792 + -0.00504874723249 + -0.00504690518577 + -0.00504506313906 + -0.00504322109235 + -0.00504137904564 + -0.00503953699893 + -0.00503769495222 + -0.00503585290551 + -0.0050340108588 + -0.00503216881209 + -0.00503032676538 + -0.00502848471867 + -0.00502664267195 + -0.00502480062524 + -0.00502295857853 + -0.00502111653182 + -0.00501927448511 + -0.0050174324384 + -0.00501559039169 + -0.00501374834498 + -0.00501190629827 + -0.00501006425156 + -0.00500822220485 + -0.00500638015813 + -0.00500453811142 + -0.00500269606471 + -0.005000854018 + -0.00499901197129 + -0.00499716992458 + -0.00499532787787 + -0.00499348583116 + -0.00499164378445 + -0.00498980173774 + -0.00498795969102 + -0.00498611764431 + -0.0049842755976 + -0.00498243355089 + -0.00498059150418 + -0.00497874945747 + -0.00497690741076 + -0.00497506536405 + -0.00497322331734 + -0.00497138127063 + -0.00496953922392 + -0.0049676971772 + -0.00496585513049 + -0.00496401308378 + -0.00496217103707 + -0.00496032899036 + -0.00495848694365 + -0.00495664489694 + -0.00495480285023 + -0.00495296080352 + -0.00495111875681 + -0.0049492767101 + -0.00494743466338 + -0.00494559261667 + -0.00494375056996 + -0.00494190852325 + -0.00494006647654 + -0.00493822442983 + -0.00493638238312 + -0.00493454033641 + -0.0049326982897 + -0.00493085624299 + -0.00492901419627 + -0.00492717214956 + -0.00492533010285 + -0.00492348805614 + -0.00492164600943 + -0.00491980396272 + -0.00491796191601 + -0.0049161198693 + -0.00491427782259 + -0.00491243577588 + -0.00491059372917 + -0.00490875168245 + -0.00490690963574 + -0.00490506758903 + -0.00490322554232 + -0.00490138349561 + -0.0048995414489 + -0.00489769940219 + -0.00489585735548 + -0.00489401530877 + -0.00489217326206 + -0.00489033121535 + -0.00488848916863 + -0.00488664712192 + -0.00488480507521 + -0.0048829630285 + -0.00488112098179 + -0.00487927893508 + -0.00487743688837 + -0.00487559484166 + -0.00487375279495 + -0.00487191074824 + -0.00487006870152 + -0.00486822665481 + -0.0048663846081 + -0.00486454256139 + -0.00486270051468 + -0.00486085846797 + -0.00485901642126 + -0.00485717437455 + -0.00485533232784 + -0.00485349028113 + -0.00485164823442 + -0.0048498061877 + -0.00484796414099 + -0.00484612209428 + -0.00484428004757 + -0.00484243800086 + -0.00484059595415 + -0.00483875390744 + -0.00483691186073 + -0.00483506981402 + -0.00483322776731 + -0.00483138572059 + -0.00482954367388 + -0.00482770162717 + -0.00482585958046 + -0.00482401753375 + -0.00482217548704 + -0.00482033344033 + -0.00481849139362 + -0.00481664934691 + -0.0048148073002 + -0.00481296525349 + -0.00481112320677 + -0.00480928116006 + -0.00480743911335 + -0.00480559706664 + -0.00480375501993 + -0.00480191297322 + -0.00480007092651 + -0.0047982288798 + -0.00479638683309 + -0.00479454478638 + -0.00479270273967 + -0.00479086069295 + -0.00478901864624 + -0.00478717659953 + -0.00478533455282 + -0.00478349250611 + -0.0047816504594 + -0.00477980841269 + -0.00477796636598 + -0.00477612431927 + -0.00477428227256 + -0.00477244022584 + -0.00477059817913 + -0.00476875613242 + -0.00476691408571 + -0.004765072039 + -0.00476322999229 + -0.00476138794558 + -0.00475954589887 + -0.00475770385216 + -0.00475586180545 + -0.00475401975874 + -0.00475217771202 + -0.00475033566531 + -0.0047484936186 + -0.00474665157189 + -0.00474480952518 + -0.00474296747847 + -0.00474112543176 + -0.00473928338505 + -0.00473744133834 + -0.00473559929163 + -0.00473375724492 + -0.0047319151982 + -0.00473007315149 + -0.00472823110478 + -0.00472638905807 + -0.00472454701136 + -0.00472270496465 + -0.00472086291794 + -0.00471902087123 + -0.00471717882452 + -0.00471533677781 + -0.00471349473109 + -0.00471165268438 + -0.00470981063767 + -0.00470796859096 + -0.00470612654425 + -0.00470428449754 + -0.00470244245083 + -0.00470060040412 + -0.00469875835741 + -0.0046969163107 + -0.00469507426399 + -0.00469323221727 + -0.00469139017056 + -0.00468954812385 + -0.00468770607714 + -0.00468586403043 + -0.00468402198372 + -0.00468217993701 + -0.0046803378903 + -0.00467849584359 + -0.00467665379688 + -0.00467481175017 + -0.00467296970345 + -0.00467112765674 + -0.00466928561003 + -0.00466744356332 + -0.00466560151661 + -0.0046637594699 + -0.00466191742319 + -0.00466007537648 + -0.00465823332977 + -0.00465639128306 + -0.00465454923634 + -0.00465270718963 + -0.00465086514292 + -0.00464902309621 + -0.0046471810495 + -0.00464533900279 + -0.00464349695608 + -0.00464165490937 + -0.00463981286266 + -0.00463797081595 + -0.00463612876924 + -0.00463428672252 + -0.00463244467581 + -0.0046306026291 + -0.00462876058239 + -0.00462691853568 + -0.00462507648897 + -0.00462323444226 + -0.00462139239555 + -0.00461955034884 + -0.00461770830213 + -0.00461586625542 + -0.0046140242087 + -0.00461218216199 + -0.00461034011528 + -0.00460849806857 + -0.00460665602186 + -0.00460481397515 + -0.00460297192844 + -0.00460112988173 + -0.00459928783502 + -0.00459744578831 + -0.00459560374159 + -0.00459376169488 + -0.00459191964817 + -0.00459007760146 + -0.00458823555475 + -0.00458639350804 + -0.00458455146133 + -0.00458270941462 + -0.00458086736791 + -0.0045790253212 + -0.00457718327449 + -0.00457534122777 + -0.00457349918106 + -0.00457165713435 + -0.00456981508764 + -0.00456797304093 + -0.00456613099422 + -0.00456428894751 + -0.0045624469008 + -0.00456060485409 + -0.00455876280738 + -0.00455692076066 + -0.00455507871395 + -0.00455323666724 + -0.00455139462053 + -0.00454955257382 + -0.00454771052711 + -0.0045458684804 + -0.00454402643369 + -0.00454218438698 + -0.00454034234027 + -0.00453850029356 + -0.00453665824684 + -0.00453481620013 + -0.00453297415342 + -0.00453113210671 + -0.00452929006 + -0.00452744801329 + -0.00452560596658 + -0.00452376391987 + -0.00452192187316 + -0.00452007982645 + -0.00451823777974 + -0.00451639573302 + -0.00451455368631 + -0.0045127116396 + -0.00451086959289 + -0.00450902754618 + -0.00450718549947 + -0.00450534345276 + -0.00450350140605 + -0.00450165935934 + -0.00449981731263 + -0.00449797526591 + -0.0044961332192 + -0.00449429117249 + -0.00449244912578 + -0.00449060707907 + -0.00448876503236 + -0.00448692298565 + -0.00448508093894 + -0.00448323889223 + -0.00448139684552 + -0.00447955479881 + -0.00447771275209 + -0.00447587070538 + -0.00447402865867 + -0.00447218661196 + -0.00447034456525 + -0.00446850251854 + -0.00446666047183 + -0.00446481842512 + -0.00446297637841 + -0.0044611343317 + -0.00445929228499 + -0.00445745023827 + -0.00445560819156 + -0.00445376614485 + -0.00445192409814 + -0.00445008205143 + -0.00444824000472 + -0.00444639795801 + -0.0044445559113 + -0.00444271386459 + -0.00444087181788 + -0.00443902977116 + -0.00443718772445 + -0.00443534567774 + -0.00443350363103 + -0.00443166158432 + -0.00442981953761 + -0.0044279774909 + -0.00442613544419 + -0.00442429339748 + -0.00442245135077 + -0.00442060930406 + -0.00441876725734 + -0.00441692521063 + -0.00441508316392 + -0.00441324111721 + -0.0044113990705 + -0.00440955702379 + -0.00440771497708 + -0.00440587293037 + -0.00440403088366 + -0.00440218883695 + -0.00440034679024 + -0.00439850474352 + -0.00439666269681 + -0.0043948206501 + -0.00439297860339 + -0.00439113655668 + -0.00438929450997 + -0.00438745246326 + -0.00438561041655 + -0.00438376836984 + -0.00438192632313 + -0.00438008427641 + -0.0043782422297 + -0.00437640018299 + -0.00437455813628 + -0.00437271608957 + -0.00437087404286 + -0.00436903199615 + -0.00436718994944 + -0.00436534790273 + -0.00436350585602 + -0.00436166380931 + -0.00435982176259 + -0.00435797971588 + -0.00435613766917 + -0.00435429562246 + -0.00435245357575 + -0.00435061152904 + -0.00434876948233 + -0.00434692743562 + -0.00434508538891 + -0.0043432433422 + -0.00434140129549 + -0.00433955924877 + -0.00433771720206 + -0.00433587515535 + -0.00433403310864 + -0.00433219106193 + -0.00433034901522 + -0.00432850696851 + -0.0043266649218 + -0.00432482287509 + -0.00432298082838 + -0.00432113878166 + -0.00431929673495 + -0.00431745468824 + -0.00431561264153 + -0.00431377059482 + -0.00431192854811 + -0.0043100865014 + -0.00430824445469 + -0.00430640240798 + -0.00430456036127 + -0.00430271831456 + -0.00430087626784 + -0.00429903422113 + -0.00429719217442 + -0.00429535012771 + -0.004293508081 + -0.00429166603429 + -0.00428982398758 + -0.00428798194087 + -0.00428613989416 + -0.00428429784745 + -0.00428245580074 + -0.00428061375402 + -0.00427877170731 + -0.0042769296606 + -0.00427508761389 + -0.00427324556718 + -0.00427140352047 + -0.00426956147376 + -0.00426771942705 + -0.00426587738034 + -0.00426403533363 + -0.00426219328691 + -0.0042603512402 + -0.00425850919349 + -0.00425666714678 + -0.00425482510007 + -0.00425298305336 + -0.00425114100665 + -0.00424929895994 + -0.00424745691323 + -0.00424561486652 + -0.00424377281981 + -0.00424193077309 + -0.00424008872638 + -0.00423824667967 + -0.00423640463296 + -0.00423456258625 + -0.00423272053954 + -0.00423087849283 + -0.00422903644612 + -0.00422719439941 + -0.0042253523527 + -0.00422351030598 + -0.00422166825927 + -0.00421982621256 + -0.00421798416585 + -0.00421614211914 + -0.00421430007243 + -0.00421245802572 + -0.00421061597901 + -0.0042087739323 + -0.00420693188559 + -0.00420508983888 + -0.00420324779216 + -0.00420140574545 + -0.00419956369874 + -0.00419772165203 + -0.00419587960532 + -0.00419403755861 + -0.0041921955119 + -0.00419035346519 + -0.00418851141848 + -0.00418666937177 + -0.00418482732506 + -0.00418298527834 + -0.00418114323163 + -0.00417930118492 + -0.00417745913821 + -0.0041756170915 + -0.00417377504479 + -0.00417193299808 + -0.00417009095137 + -0.00416824890466 + -0.00416640685795 + -0.00416456481123 + -0.00416272276452 + -0.00416088071781 + -0.0041590386711 + -0.00415719662439 + -0.00415535457768 + -0.00415351253097 + -0.00415167048426 + -0.00414982843755 + -0.00414798639084 + -0.00414614434413 + -0.00414430229741 + -0.0041424602507 + -0.00414061820399 + -0.00413877615728 + -0.00413693411057 + -0.00413509206386 + -0.00413325001715 + -0.00413140797044 + -0.00412956592373 + -0.00412772387702 + -0.00412588183031 + -0.00412403978359 + -0.00412219773688 + -0.00412035569017 + -0.00411851364346 + -0.00411667159675 + -0.00411482955004 + -0.00411298750333 + -0.00411114545662 + -0.00410930340991 + -0.0041074613632 + -0.00410561931648 + -0.00410377726977 + -0.00410193522306 + -0.00410009317635 + -0.00409825112964 + -0.00409640908293 + -0.00409456703622 + -0.00409272498951 + -0.0040908829428 + -0.00408904089609 + -0.00408719884938 + -0.00408535680266 + -0.00408351475595 + -0.00408167270924 + -0.00407983066253 + -0.00407798861582 + -0.00407614656911 + -0.0040743045224 + -0.00407246247569 + -0.00407062042898 + -0.00406877838227 + -0.00406693633556 + -0.00406509428884 + -0.00406325224213 + -0.00406141019542 + -0.00405956814871 + -0.004057726102 + -0.00405588405529 + -0.00405404200858 + -0.00405219996187 + -0.00405035791516 + -0.00404851586845 + -0.00404667382173 + -0.00404483177502 + -0.00404298972831 + -0.0040411476816 + -0.00403930563489 + -0.00403746358818 + -0.00403562154147 + -0.00403377949476 + -0.00403193744805 + -0.00403009540134 + -0.00402825335463 + -0.00402641130791 + -0.0040245692612 + -0.00402272721449 + -0.00402088516778 + -0.00401904312107 + -0.00401720107436 + -0.00401535902765 + -0.00401351698094 + -0.00401167493423 + -0.00400983288752 + -0.00400799084081 + -0.00400614879409 + -0.00400430674738 + -0.00400246470067 + -0.00400062265396 + -0.00399878060725 + -0.00399693856054 + -0.00399509651383 + -0.00399325446712 + -0.00399141242041 + -0.0039895703737 + -0.00398772832698 + -0.00398588628027 + -0.00398404423356 + -0.00398220218685 + -0.00398036014014 + -0.00397851809343 + -0.00397667604672 + -0.00397483400001 + -0.0039729919533 + -0.00397114990659 + -0.00396930785988 + -0.00396746581316 + -0.00396562376645 + -0.00396378171974 + -0.00396193967303 + -0.00396009762632 + -0.00395825557961 + -0.0039564135329 + -0.00395457148619 + -0.00395272943948 + -0.00395088739277 + -0.00394904534605 + -0.00394720329934 + -0.00394536125263 + -0.00394351920592 + -0.00394167715921 + -0.0039398351125 + -0.00393799306579 + -0.00393615101908 + -0.00393430897237 + -0.00393246692566 + -0.00393062487895 + -0.00392878283223 + -0.00392694078552 + -0.00392509873881 + -0.0039232566921 + -0.00392141464539 + -0.00391957259868 + -0.00391773055197 + -0.00391588850526 + -0.00391404645855 + -0.00391220441184 + -0.00391036236513 + -0.00390852031841 + -0.0039066782717 + -0.00390483622499 + -0.00390299417828 + -0.00390115213157 + -0.00389931008486 + -0.00389746803815 + -0.00389562599144 + -0.00389378394473 + -0.00389194189802 + -0.0038900998513 + -0.00388825780459 + -0.00388641575788 + -0.00388457371117 + -0.00388273166446 + -0.00388088961775 + -0.00387904757104 + -0.00387720552433 + -0.00387536347762 + -0.00387352143091 + -0.0038716793842 + -0.00386983733748 + -0.00386799529077 + -0.00386615324406 + -0.00386431119735 + -0.00386246915064 + -0.00386062710393 + -0.00385878505722 + -0.00385694301051 + -0.0038551009638 + -0.00385325891709 + -0.00385141687038 + -0.00384957482366 + -0.00384773277695 + -0.00384589073024 + -0.00384404868353 + -0.00384220663682 + -0.00384036459011 + -0.0038385225434 + -0.00383668049669 + -0.00383483844998 + -0.00383299640327 + -0.00383115435655 + -0.00382931230984 + -0.00382747026313 + -0.00382562821642 + -0.00382378616971 + -0.003821944123 + -0.00382010207629 + -0.00381826002958 + -0.00381641798287 + -0.00381457593616 + -0.00381273388945 + -0.00381089184273 + -0.00380904979602 + -0.00380720774931 + -0.0038053657026 + -0.00380352365589 + -0.00380168160918 + -0.00379983956247 + -0.00379799751576 + -0.00379615546905 + -0.00379431342234 + -0.00379247137563 + -0.00379062932891 + -0.0037887872822 + -0.00378694523549 + -0.00378510318878 + -0.00378326114207 + -0.00378141909536 + -0.00377957704865 + -0.00377773500194 + -0.00377589295523 + -0.00377405090852 + -0.0037722088618 + -0.00377036681509 + -0.00376852476838 + -0.00376668272167 + -0.00376484067496 + -0.00376299862825 + -0.00376115658154 + -0.00375931453483 + -0.00375747248812 + -0.00375563044141 + -0.0037537883947 + -0.00375194634798 + -0.00375010430127 + -0.00374826225456 + -0.00374642020785 + -0.00374457816114 + -0.00374273611443 + -0.00374089406772 + -0.00373905202101 + -0.0037372099743 + -0.00373536792759 + -0.00373352588088 + -0.00373168383416 + -0.00372984178745 + -0.00372799974074 + -0.00372615769403 + -0.00372431564732 + -0.00372247360061 + -0.0037206315539 + -0.00371878950719 + -0.00371694746048 + -0.00371510541377 + -0.00371326336705 + -0.00371142132034 + -0.00370957927363 + -0.00370773722692 + -0.00370589518021 + -0.0037040531335 + -0.00370221108679 + -0.00370036904008 + -0.00369852699337 + -0.00369668494666 + -0.00369484289995 + -0.00369300085323 + -0.00369115880652 + -0.00368931675981 + -0.0036874747131 + -0.00368563266639 + -0.00368379061968 + -0.00368194857297 + -0.00368010652626 + -0.00367826447955 + -0.00367642243284 + -0.00367458038613 + -0.00367273833941 + -0.0036708962927 + -0.00366905424599 + -0.00366721219928 + -0.00366537015257 + -0.00366352810586 + -0.00366168605915 + -0.00365984401244 + -0.00365800196573 + -0.00365615991902 + -0.0036543178723 + -0.00365247582559 + -0.00365063377888 + -0.00364879173217 + -0.00364694968546 + -0.00364510763875 + -0.00364326559204 + -0.00364142354533 + -0.00363958149862 + -0.00363773945191 + -0.0036358974052 + -0.00363405535848 + -0.00363221331177 + -0.00363037126506 + -0.00362852921835 + -0.00362668717164 + -0.00362484512493 + -0.00362300307822 + -0.00362116103151 + -0.0036193189848 + -0.00361747693809 + -0.00361563489137 + -0.00361379284466 + -0.00361195079795 + -0.00361010875124 + -0.00360826670453 + -0.00360642465782 + -0.00360458261111 + -0.0036027405644 + -0.00360089851769 + -0.00359905647098 + -0.00359721442427 + -0.00359537237755 + -0.00359353033084 + -0.00359168828413 + -0.00358984623742 + -0.00358800419071 + -0.003586162144 + -0.00358432009729 + -0.00358247805058 + -0.00358063600387 + -0.00357879395716 + -0.00357695191045 + -0.00357510986373 + -0.00357326781702 + -0.00357142577031 + -0.0035695837236 + -0.00356774167689 + -0.00356589963018 + -0.00356405758347 + -0.00356221553676 + -0.00356037349005 + -0.00355853144334 + -0.00355668939662 + -0.00355484734991 + -0.0035530053032 + -0.00355116325649 + -0.00354932120978 + -0.00354747916307 + -0.00354563711636 + -0.00354379506965 + -0.00354195302294 + -0.00354011097623 + -0.00353826892952 + -0.0035364268828 + -0.00353458483609 + -0.00353274278938 + -0.00353090074267 + -0.00352905869596 + -0.00352721664925 + -0.00352537460254 + -0.00352353255583 + -0.00352169050912 + -0.00351984846241 + -0.0035180064157 + -0.00351616436898 + -0.00351432232227 + -0.00351248027556 + -0.00351063822885 + -0.00350879618214 + -0.00350695413543 + -0.00350511208872 + -0.00350327004201 + -0.0035014279953 + -0.00349958594859 + -0.00349774390187 + -0.00349590185516 + -0.00349405980845 + -0.00349221776174 + -0.00349037571503 + -0.00348853366832 + -0.00348669162161 + -0.0034848495749 + -0.00348300752819 + -0.00348116548148 + -0.00347932343477 + -0.00347748138805 + -0.00347563934134 + -0.00347379729463 + -0.00347195524792 + -0.00347011320121 + -0.0034682711545 + -0.00346642910779 + -0.00346458706108 + -0.00346274501437 + -0.00346090296766 + -0.00345906092095 + -0.00345721887423 + -0.00345537682752 + -0.00345353478081 + -0.0034516927341 + -0.00344985068739 + -0.00344800864068 + -0.00344616659397 + -0.00344432454726 + -0.00344248250055 + -0.00344064045384 + -0.00343879840712 + -0.00343695636041 + -0.0034351143137 + -0.00343327226699 + -0.00343143022028 + -0.00342958817357 + -0.00342774612686 + -0.00342590408015 + -0.00342406203344 + -0.00342221998673 + -0.00342037794002 + -0.0034185358933 + -0.00341669384659 + -0.00341485179988 + -0.00341300975317 + -0.00341116770646 + -0.00340932565975 + -0.00340748361304 + -0.00340564156633 + -0.00340379951962 + -0.00340195747291 + -0.0034001154262 + -0.00339827337948 + -0.00339643133277 + -0.00339458928606 + -0.00339274723935 + -0.00339090519264 + -0.00338906314593 + -0.00338722109922 + -0.00338537905251 + -0.0033835370058 + -0.00338169495909 + -0.00337985291237 + -0.00337801086566 + -0.00337616881895 + -0.00337432677224 + -0.00337248472553 + -0.00337064267882 + -0.00336880063211 + -0.0033669585854 + -0.00336511653869 + -0.00336327449198 + -0.00336143244527 + -0.00335959039855 + -0.00335774835184 + -0.00335590630513 + -0.00335406425842 + -0.00335222221171 + -0.003350380165 + -0.00334853811829 + -0.00334669607158 + -0.00334485402487 + -0.00334301197816 + -0.00334116993144 + -0.00333932788473 + -0.00333748583802 + -0.00333564379131 + -0.0033338017446 + -0.00333195969789 + -0.00333011765118 + -0.00332827560447 + -0.00332643355776 + -0.00332459151105 + -0.00332274946434 + -0.00332090741762 + -0.00331906537091 + -0.0033172233242 + -0.00331538127749 + -0.00331353923078 + -0.00331169718407 + -0.00330985513736 + -0.00330801309065 + -0.00330617104394 + -0.00330432899723 + -0.00330248695052 + -0.0033006449038 + -0.00329880285709 + -0.00329696081038 + -0.00329511876367 + -0.00329327671696 + -0.00329143467025 + -0.00328959262354 + -0.00328775057683 + -0.00328590853012 + -0.00328406648341 + -0.00328222443669 + -0.00328038238998 + -0.00327854034327 + -0.00327669829656 + -0.00327485624985 + -0.00327301420314 + -0.00327117215643 + -0.00326933010972 + -0.00326748806301 + -0.0032656460163 + -0.00326380396959 + -0.00326196192287 + -0.00326011987616 + -0.00325827782945 + -0.00325643578274 + -0.00325459373603 + -0.00325275168932 + -0.00325090964261 + -0.0032490675959 + -0.00324722554919 + -0.00324538350248 + -0.00324354145577 + -0.00324169940905 + -0.00323985736234 + -0.00323801531563 + -0.00323617326892 + -0.00323433122221 + -0.0032324891755 + -0.00323064712879 + -0.00322880508208 + -0.00322696303537 + -0.00322512098866 + -0.00322327894194 + -0.00322143689523 + -0.00321959484852 + -0.00321775280181 + -0.0032159107551 + -0.00321406870839 + -0.00321222666168 + -0.00321038461497 + -0.00320854256826 + -0.00320670052155 + -0.00320485847484 + -0.00320301642812 + -0.00320117438141 + -0.0031993323347 + -0.00319749028799 + -0.00319564824128 + -0.00319380619457 + -0.00319196414786 + -0.00319012210115 + -0.00318828005444 + -0.00318643800773 + -0.00318459596102 + -0.0031827539143 + -0.00318091186759 + -0.00317906982088 + -0.00317722777417 + -0.00317538572746 + -0.00317354368075 + -0.00317170163404 + -0.00316985958733 + -0.00316801754062 + -0.00316617549391 + -0.00316433344719 + -0.00316249140048 + -0.00316064935377 + -0.00315880730706 + -0.00315696526035 + -0.00315512321364 + -0.00315328116693 + -0.00315143912022 + -0.00314959707351 + -0.0031477550268 + -0.00314591298009 + -0.00314407093337 + -0.00314222888666 + -0.00314038683995 + -0.00313854479324 + -0.00313670274653 + -0.00313486069982 + -0.00313301865311 + -0.0031311766064 + -0.00312933455969 + -0.00312749251298 + -0.00312565046627 + -0.00312380841955 + -0.00312196637284 + -0.00312012432613 + -0.00311828227942 + -0.00311644023271 + -0.003114598186 + -0.00311275613929 + -0.00311091409258 + -0.00310907204587 + -0.00310722999916 + -0.00310538795244 + -0.00310354590573 + -0.00310170385902 + -0.00309986181231 + -0.0030980197656 + -0.00309617771889 + -0.00309433567218 + -0.00309249362547 + -0.00309065157876 + -0.00308880953205 + -0.00308696748534 + -0.00308512543862 + -0.00308328339191 + -0.0030814413452 + -0.00307959929849 + -0.00307775725178 + -0.00307591520507 + -0.00307407315836 + -0.00307223111165 + -0.00307038906494 + -0.00306854701823 + -0.00306670497152 + -0.0030648629248 + -0.00306302087809 + -0.00306117883138 + -0.00305933678467 + -0.00305749473796 + -0.00305565269125 + -0.00305381064454 + -0.00305196859783 + -0.00305012655112 + -0.00304828450441 + -0.00304644245769 + -0.00304460041098 + -0.00304275836427 + -0.00304091631756 + -0.00303907427085 + -0.00303723222414 + -0.00303539017743 + -0.00303354813072 + -0.00303170608401 + -0.0030298640373 + -0.00302802199059 + -0.00302617994387 + -0.00302433789716 + -0.00302249585045 + -0.00302065380374 + -0.00301881175703 + -0.00301696971032 + -0.00301512766361 + -0.0030132856169 + -0.00301144357019 + -0.00300960152348 + -0.00300775947676 + -0.00300591743005 + -0.00300407538334 + -0.00300223333663 + -0.00300039128992 + -0.00299854924321 + -0.0029967071965 + -0.00299486514979 + -0.00299302310308 + -0.00299118105637 + -0.00298933900966 + -0.00298749696294 + -0.00298565491623 + -0.00298381286952 + -0.00298197082281 + -0.0029801287761 + -0.00297828672939 + -0.00297644468268 + -0.00297460263597 + -0.00297276058926 + -0.00297091854255 + -0.00296907649584 + -0.00296723444912 + -0.00296539240241 + -0.0029635503557 + -0.00296170830899 + -0.00295986626228 + -0.00295802421557 + -0.00295618216886 + -0.00295434012215 + -0.00295249807544 + -0.00295065602873 + -0.00294881398201 + -0.0029469719353 + -0.00294512988859 + -0.00294328784188 + -0.00294144579517 + -0.00293960374846 + -0.00293776170175 + -0.00293591965504 + -0.00293407760833 + -0.00293223556162 + -0.00293039351491 + -0.00292855146819 + -0.00292670942148 + -0.00292486737477 + -0.00292302532806 + -0.00292118328135 + -0.00291934123464 + -0.00291749918793 + -0.00291565714122 + -0.00291381509451 + -0.0029119730478 + -0.00291013100109 + -0.00290828895437 + -0.00290644690766 + -0.00290460486095 + -0.00290276281424 + -0.00290092076753 + -0.00289907872082 + -0.00289723667411 + -0.0028953946274 + -0.00289355258069 + -0.00289171053398 + -0.00288986848726 + -0.00288802644055 + -0.00288618439384 + -0.00288434234713 + -0.00288250030042 + -0.00288065825371 + -0.002878816207 + -0.00287697416029 + -0.00287513211358 + -0.00287329006687 + -0.00287144802016 + -0.00286960597344 + -0.00286776392673 + -0.00286592188002 + -0.00286407983331 + -0.0028622377866 + -0.00286039573989 + -0.00285855369318 + -0.00285671164647 + -0.00285486959976 + -0.00285302755305 + -0.00285118550634 + -0.00284934345962 + -0.00284750141291 + -0.0028456593662 + -0.00284381731949 + -0.00284197527278 + -0.00284013322607 + -0.00283829117936 + -0.00283644913265 + -0.00283460708594 + -0.00283276503923 + -0.00283092299251 + -0.0028290809458 + -0.00282723889909 + -0.00282539685238 + -0.00282355480567 + -0.00282171275896 + -0.00281987071225 + -0.00281802866554 + -0.00281618661883 + -0.00281434457212 + -0.00281250252541 + -0.00281066047869 + -0.00280881843198 + -0.00280697638527 + -0.00280513433856 + -0.00280329229185 + -0.00280145024514 + -0.00279960819843 + -0.00279776615172 + -0.00279592410501 + -0.0027940820583 + -0.00279224001159 + -0.00279039796487 + -0.00278855591816 + -0.00278671387145 + -0.00278487182474 + -0.00278302977803 + -0.00278118773132 + -0.00277934568461 + -0.0027775036379 + -0.00277566159119 + -0.00277381954448 + -0.00277197749776 + -0.00277013545105 + -0.00276829340434 + -0.00276645135763 + -0.00276460931092 + -0.00276276726421 + -0.0027609252175 + -0.00275908317079 + -0.00275724112408 + -0.00275539907737 + -0.00275355703066 + -0.00275171498394 + -0.00274987293723 + -0.00274803089052 + -0.00274618884381 + -0.0027443467971 + -0.00274250475039 + -0.00274066270368 + -0.00273882065697 + -0.00273697861026 + -0.00273513656355 + -0.00273329451683 + -0.00273145247012 + -0.00272961042341 + -0.0027277683767 + -0.00272592632999 + -0.00272408428328 + -0.00272224223657 + -0.00272040018986 + -0.00271855814315 + -0.00271671609644 + -0.00271487404973 + -0.00271303200301 + -0.0027111899563 + -0.00270934790959 + -0.00270750586288 + -0.00270566381617 + -0.00270382176946 + -0.00270197972275 + -0.00270013767604 + -0.00269829562933 + -0.00269645358262 + -0.00269461153591 + -0.00269276948919 + -0.00269092744248 + -0.00268908539577 + -0.00268724334906 + -0.00268540130235 + -0.00268355925564 + -0.00268171720893 + -0.00267987516222 + -0.00267803311551 + -0.0026761910688 + -0.00267434902208 + -0.00267250697537 + -0.00267066492866 + -0.00266882288195 + -0.00266698083524 + -0.00266513878853 + -0.00266329674182 + -0.00266145469511 + -0.0026596126484 + -0.00265777060169 + -0.00265592855498 + -0.00265408650826 + -0.00265224446155 + -0.00265040241484 + -0.00264856036813 + -0.00264671832142 + -0.00264487627471 + -0.002643034228 + -0.00264119218129 + -0.00263935013458 + -0.00263750808787 + -0.00263566604116 + -0.00263382399444 + -0.00263198194773 + -0.00263013990102 + -0.00262829785431 + -0.0026264558076 + -0.00262461376089 + -0.00262277171418 + -0.00262092966747 + -0.00261908762076 + -0.00261724557405 + -0.00261540352733 + -0.00261356148062 + -0.00261171943391 + -0.0026098773872 + -0.00260803534049 + -0.00260619329378 + -0.00260435124707 + -0.00260250920036 + -0.00260066715365 + -0.00259882510694 + -0.00259698306023 + -0.00259514101351 + -0.0025932989668 + -0.00259145692009 + -0.00258961487338 + -0.00258777282667 + -0.00258593077996 + -0.00258408873325 + -0.00258224668654 + -0.00258040463983 + -0.00257856259312 + -0.00257672054641 + -0.00257487849969 + -0.00257303645298 + -0.00257119440627 + -0.00256935235956 + -0.00256751031285 + -0.00256566826614 + -0.00256382621943 + -0.00256198417272 + -0.00256014212601 + -0.0025583000793 + -0.00255645803258 + -0.00255461598587 + -0.00255277393916 + -0.00255093189245 + -0.00254908984574 + -0.00254724779903 + -0.00254540575232 + -0.00254356370561 + -0.0025417216589 + -0.00253987961219 + -0.00253803756548 + -0.00253619551876 + -0.00253435347205 + -0.00253251142534 + -0.00253066937863 + -0.00252882733192 + -0.00252698528521 + -0.0025251432385 + -0.00252330119179 + -0.00252145914508 + -0.00251961709837 + -0.00251777505166 + -0.00251593300494 + -0.00251409095823 + -0.00251224891152 + -0.00251040686481 + -0.0025085648181 + -0.00250672277139 + -0.00250488072468 + -0.00250303867797 + -0.00250119663126 + -0.00249935458455 + -0.00249751253783 + -0.00249567049112 + -0.00249382844441 + -0.0024919863977 + -0.00249014435099 + -0.00248830230428 + -0.00248646025757 + -0.00248461821086 + -0.00248277616415 + -0.00248093411744 + -0.00247909207073 + -0.00247725002401 + -0.0024754079773 + -0.00247356593059 + -0.00247172388388 + -0.00246988183717 + -0.00246803979046 + -0.00246619774375 + -0.00246435569704 + -0.00246251365033 + -0.00246067160362 + -0.00245882955691 + -0.00245698751019 + -0.00245514546348 + -0.00245330341677 + -0.00245146137006 + -0.00244961932335 + -0.00244777727664 + -0.00244593522993 + -0.00244409318322 + -0.00244225113651 + -0.0024404090898 + -0.00243856704308 + -0.00243672499637 + -0.00243488294966 + -0.00243304090295 + -0.00243119885624 + -0.00242935680953 + -0.00242751476282 + -0.00242567271611 + -0.0024238306694 + -0.00242198862269 + -0.00242014657598 + -0.00241830452926 + -0.00241646248255 + -0.00241462043584 + -0.00241277838913 + -0.00241093634242 + -0.00240909429571 + -0.002407252249 + -0.00240541020229 + -0.00240356815558 + -0.00240172610887 + -0.00239988406215 + -0.00239804201544 + -0.00239619996873 + -0.00239435792202 + -0.00239251587531 + -0.0023906738286 + -0.00238883178189 + -0.00238698973518 + -0.00238514768847 + -0.00238330564176 + -0.00238146359505 + -0.00237962154833 + -0.00237777950162 + -0.00237593745491 + -0.0023740954082 + -0.00237225336149 + -0.00237041131478 + -0.00236856926807 + -0.00236672722136 + -0.00236488517465 + -0.00236304312794 + -0.00236120108123 + -0.00235935903451 + -0.0023575169878 + -0.00235567494109 + -0.00235383289438 + -0.00235199084767 + -0.00235014880096 + -0.00234830675425 + -0.00234646470754 + -0.00234462266083 + -0.00234278061412 + -0.0023409385674 + -0.00233909652069 + -0.00233725447398 + -0.00233541242727 + -0.00233357038056 + -0.00233172833385 + -0.00232988628714 + -0.00232804424043 + -0.00232620219372 + -0.00232436014701 + -0.0023225181003 + -0.00232067605358 + -0.00231883400687 + -0.00231699196016 + -0.00231514991345 + -0.00231330786674 + -0.00231146582003 + -0.00230962377332 + -0.00230778172661 + -0.0023059396799 + -0.00230409763319 + -0.00230225558648 + -0.00230041353976 + -0.00229857149305 + -0.00229672944634 + -0.00229488739963 + -0.00229304535292 + -0.00229120330621 + -0.0022893612595 + -0.00228751921279 + -0.00228567716608 + -0.00228383511937 + -0.00228199307265 + -0.00228015102594 + -0.00227830897923 + -0.00227646693252 + -0.00227462488581 + -0.0022727828391 + -0.00227094079239 + -0.00226909874568 + -0.00226725669897 + -0.00226541465226 + -0.00226357260555 + -0.00226173055883 + -0.00225988851212 + -0.00225804646541 + -0.0022562044187 + -0.00225436237199 + -0.00225252032528 + -0.00225067827857 + -0.00224883623186 + -0.00224699418515 + -0.00224515213844 + -0.00224331009173 + -0.00224146804501 + -0.0022396259983 + -0.00223778395159 + -0.00223594190488 + -0.00223409985817 + -0.00223225781146 + -0.00223041576475 + -0.00222857371804 + -0.00222673167133 + -0.00222488962462 + -0.0022230475779 + -0.00222120553119 + -0.00221936348448 + -0.00221752143777 + -0.00221567939106 + -0.00221383734435 + -0.00221199529764 + -0.00221015325093 + -0.00220831120422 + -0.00220646915751 + -0.0022046271108 + -0.00220278506408 + -0.00220094301737 + -0.00219910097066 + -0.00219725892395 + -0.00219541687724 + -0.00219357483053 + -0.00219173278382 + -0.00218989073711 + -0.0021880486904 + -0.00218620664369 + -0.00218436459698 + -0.00218252255026 + -0.00218068050355 + -0.00217883845684 + -0.00217699641013 + -0.00217515436342 + -0.00217331231671 + -0.00217147027 + -0.00216962822329 + -0.00216778617658 + -0.00216594412987 + -0.00216410208315 + -0.00216226003644 + -0.00216041798973 + -0.00215857594302 + -0.00215673389631 + -0.0021548918496 + -0.00215304980289 + -0.00215120775618 + -0.00214936570947 + -0.00214752366276 + -0.00214568161605 + -0.00214383956933 + -0.00214199752262 + -0.00214015547591 + -0.0021383134292 + -0.00213647138249 + -0.00213462933578 + -0.00213278728907 + -0.00213094524236 + -0.00212910319565 + -0.00212726114894 + -0.00212541910222 + -0.00212357705551 + -0.0021217350088 + -0.00211989296209 + -0.00211805091538 + -0.00211620886867 + -0.00211436682196 + -0.00211252477525 + -0.00211068272854 + -0.00210884068183 + -0.00210699863512 + -0.0021051565884 + -0.00210331454169 + -0.00210147249498 + -0.00209963044827 + -0.00209778840156 + -0.00209594635485 + -0.00209410430814 + -0.00209226226143 + -0.00209042021472 + -0.00208857816801 + -0.0020867361213 + -0.00208489407458 + -0.00208305202787 + -0.00208120998116 + -0.00207936793445 + -0.00207752588774 + -0.00207568384103 + -0.00207384179432 + -0.00207199974761 + -0.0020701577009 + -0.00206831565419 + -0.00206647360747 + -0.00206463156076 + -0.00206278951405 + -0.00206094746734 + -0.00205910542063 + -0.00205726337392 + -0.00205542132721 + -0.0020535792805 + -0.00205173723379 + -0.00204989518708 + -0.00204805314037 + -0.00204621109365 + -0.00204436904694 + -0.00204252700023 + -0.00204068495352 + -0.00203884290681 + -0.0020370008601 + -0.00203515881339 + -0.00203331676668 + -0.00203147471997 + -0.00202963267326 + -0.00202779062655 + -0.00202594857983 + -0.00202410653312 + -0.00202226448641 + -0.0020204224397 + -0.00201858039299 + -0.00201673834628 + -0.00201489629957 + -0.00201305425286 + -0.00201121220615 + -0.00200937015944 + -0.00200752811272 + -0.00200568606601 + -0.0020038440193 + -0.00200200197259 + -0.00200015992588 + -0.00199831787917 + -0.00199647583246 + -0.00199463378575 + -0.00199279173904 + -0.00199094969233 + -0.00198910764562 + -0.0019872655989 + -0.00198542355219 + -0.00198358150548 + -0.00198173945877 + -0.00197989741206 + -0.00197805536535 + -0.00197621331864 + -0.00197437127193 + -0.00197252922522 + -0.00197068717851 + -0.0019688451318 + -0.00196700308508 + -0.00196516103837 + -0.00196331899166 + -0.00196147694495 + -0.00195963489824 + -0.00195779285153 + -0.00195595080482 + -0.00195410875811 + -0.0019522667114 + -0.00195042466469 + -0.00194858261797 + -0.00194674057126 + -0.00194489852455 + -0.00194305647784 + -0.00194121443113 + -0.00193937238442 + -0.00193753033771 + -0.001935688291 + -0.00193384624429 + -0.00193200419758 + -0.00193016215087 + -0.00192832010415 + -0.00192647805744 + -0.00192463601073 + -0.00192279396402 + -0.00192095191731 + -0.0019191098706 + -0.00191726782389 + -0.00191542577718 + -0.00191358373047 + -0.00191174168376 + -0.00190989963705 + -0.00190805759033 + -0.00190621554362 + -0.00190437349691 + -0.0019025314502 + -0.00190068940349 + -0.00189884735678 + -0.00189700531007 + -0.00189516326336 + -0.00189332121665 + -0.00189147916994 + -0.00188963712322 + -0.00188779507651 + -0.0018859530298 + -0.00188411098309 + -0.00188226893638 + -0.00188042688967 + -0.00187858484296 + -0.00187674279625 + -0.00187490074954 + -0.00187305870283 + -0.00187121665612 + -0.0018693746094 + -0.00186753256269 + -0.00186569051598 + -0.00186384846927 + -0.00186200642256 + -0.00186016437585 + -0.00185832232914 + -0.00185648028243 + -0.00185463823572 + -0.00185279618901 + -0.0018509541423 + -0.00184911209558 + -0.00184727004887 + -0.00184542800216 + -0.00184358595545 + -0.00184174390874 + -0.00183990186203 + -0.00183805981532 + -0.00183621776861 + -0.0018343757219 + -0.00183253367519 + -0.00183069162847 + -0.00182884958176 + -0.00182700753505 + -0.00182516548834 + -0.00182332344163 + -0.00182148139492 + -0.00181963934821 + -0.0018177973015 + -0.00181595525479 + -0.00181411320808 + -0.00181227116137 + -0.00181042911465 + -0.00180858706794 + -0.00180674502123 + -0.00180490297452 + -0.00180306092781 + -0.0018012188811 + -0.00179937683439 + -0.00179753478768 + -0.00179569274097 + -0.00179385069426 + -0.00179200864754 + -0.00179016660083 + -0.00178832455412 + -0.00178648250741 + -0.0017846404607 + -0.00178279841399 + -0.00178095636728 + -0.00177911432057 + -0.00177727227386 + -0.00177543022715 + -0.00177358818044 + -0.00177174613372 + -0.00176990408701 + -0.0017680620403 + -0.00176621999359 + -0.00176437794688 + -0.00176253590017 + -0.00176069385346 + -0.00175885180675 + -0.00175700976004 + -0.00175516771333 + -0.00175332566662 + -0.0017514836199 + -0.00174964157319 + -0.00174779952648 + -0.00174595747977 + -0.00174411543306 + -0.00174227338635 + -0.00174043133964 + -0.00173858929293 + -0.00173674724622 + -0.00173490519951 + -0.00173306315279 + -0.00173122110608 + -0.00172937905937 + -0.00172753701266 + -0.00172569496595 + -0.00172385291924 + -0.00172201087253 + -0.00172016882582 + -0.00171832677911 + -0.0017164847324 + -0.00171464268569 + -0.00171280063897 + -0.00171095859226 + -0.00170911654555 + -0.00170727449884 + -0.00170543245213 + -0.00170359040542 + -0.00170174835871 + -0.001699906312 + -0.00169806426529 + -0.00169622221858 + -0.00169438017187 + -0.00169253812515 + -0.00169069607844 + -0.00168885403173 + -0.00168701198502 + -0.00168516993831 + -0.0016833278916 + -0.00168148584489 + -0.00167964379818 + -0.00167780175147 + -0.00167595970476 + -0.00167411765804 + -0.00167227561133 + -0.00167043356462 + -0.00166859151791 + -0.0016667494712 + -0.00166490742449 + -0.00166306537778 + -0.00166122333107 + -0.00165938128436 + -0.00165753923765 + -0.00165569719094 + -0.00165385514422 + -0.00165201309751 + -0.0016501710508 + -0.00164832900409 + -0.00164648695738 + -0.00164464491067 + -0.00164280286396 + -0.00164096081725 + -0.00163911877054 + -0.00163727672383 + -0.00163543467712 + -0.0016335926304 + -0.00163175058369 + -0.00162990853698 + -0.00162806649027 + -0.00162622444356 + -0.00162438239685 + -0.00162254035014 + -0.00162069830343 + -0.00161885625672 + -0.00161701421001 + -0.00161517216329 + -0.00161333011658 + -0.00161148806987 + -0.00160964602316 + -0.00160780397645 + -0.00160596192974 + -0.00160411988303 + -0.00160227783632 + -0.00160043578961 + -0.0015985937429 + -0.00159675169619 + -0.00159490964947 + -0.00159306760276 + -0.00159122555605 + -0.00158938350934 + -0.00158754146263 + -0.00158569941592 + -0.00158385736921 + -0.0015820153225 + -0.00158017327579 + -0.00157833122908 + -0.00157648918237 + -0.00157464713565 + -0.00157280508894 + -0.00157096304223 + -0.00156912099552 + -0.00156727894881 + -0.0015654369021 + -0.00156359485539 + -0.00156175280868 + -0.00155991076197 + -0.00155806871526 + -0.00155622666854 + -0.00155438462183 + -0.00155254257512 + -0.00155070052841 + -0.0015488584817 + -0.00154701643499 + -0.00154517438828 + -0.00154333234157 + -0.00154149029486 + -0.00153964824815 + -0.00153780620144 + -0.00153596415472 + -0.00153412210801 + -0.0015322800613 + -0.00153043801459 + -0.00152859596788 + -0.00152675392117 + -0.00152491187446 + -0.00152306982775 + -0.00152122778104 + -0.00151938573433 + -0.00151754368761 + -0.0015157016409 + -0.00151385959419 + -0.00151201754748 + -0.00151017550077 + -0.00150833345406 + -0.00150649140735 + -0.00150464936064 + -0.00150280731393 + -0.00150096526722 + -0.00149912322051 + -0.00149728117379 + -0.00149543912708 + -0.00149359708037 + -0.00149175503366 + -0.00148991298695 + -0.00148807094024 + -0.00148622889353 + -0.00148438684682 + -0.00148254480011 + -0.0014807027534 + -0.00147886070669 + -0.00147701865997 + -0.00147517661326 + -0.00147333456655 + -0.00147149251984 + -0.00146965047313 + -0.00146780842642 + -0.00146596637971 + -0.001464124333 + -0.00146228228629 + -0.00146044023958 + -0.00145859819286 + -0.00145675614615 + -0.00145491409944 + -0.00145307205273 + -0.00145123000602 + -0.00144938795931 + -0.0014475459126 + -0.00144570386589 + -0.00144386181918 + -0.00144201977247 + -0.00144017772576 + -0.00143833567904 + -0.00143649363233 + -0.00143465158562 + -0.00143280953891 + -0.0014309674922 + -0.00142912544549 + -0.00142728339878 + -0.00142544135207 + -0.00142359930536 + -0.00142175725865 + -0.00141991521194 + -0.00141807316522 + -0.00141623111851 + -0.0014143890718 + -0.00141254702509 + -0.00141070497838 + -0.00140886293167 + -0.00140702088496 + -0.00140517883825 + -0.00140333679154 + -0.00140149474483 + -0.00139965269811 + -0.0013978106514 + -0.00139596860469 + -0.00139412655798 + -0.00139228451127 + -0.00139044246456 + -0.00138860041785 + -0.00138675837114 + -0.00138491632443 + -0.00138307427772 + -0.00138123223101 + -0.00137939018429 + -0.00137754813758 + -0.00137570609087 + -0.00137386404416 + -0.00137202199745 + -0.00137017995074 + -0.00136833790403 + -0.00136649585732 + -0.00136465381061 + -0.0013628117639 + -0.00136096971719 + -0.00135912767047 + -0.00135728562376 + -0.00135544357705 + -0.00135360153034 + -0.00135175948363 + -0.00134991743692 + -0.00134807539021 + -0.0013462333435 + -0.00134439129679 + -0.00134254925008 + -0.00134070720336 + -0.00133886515665 + -0.00133702310994 + -0.00133518106323 + -0.00133333901652 + -0.00133149696981 + -0.0013296549231 + -0.00132781287639 + -0.00132597082968 + -0.00132412878297 + -0.00132228673626 + -0.00132044468954 + -0.00131860264283 + -0.00131676059612 + -0.00131491854941 + -0.0013130765027 + -0.00131123445599 + -0.00130939240928 + -0.00130755036257 + -0.00130570831586 + -0.00130386626915 + -0.00130202422244 + -0.00130018217572 + -0.00129834012901 + -0.0012964980823 + -0.00129465603559 + -0.00129281398888 + -0.00129097194217 + -0.00128912989546 + -0.00128728784875 + -0.00128544580204 + -0.00128360375533 + -0.00128176170861 + -0.0012799196619 + -0.00127807761519 + -0.00127623556848 + -0.00127439352177 + -0.00127255147506 + -0.00127070942835 + -0.00126886738164 + -0.00126702533493 + -0.00126518328822 + -0.00126334124151 + -0.00126149919479 + -0.00125965714808 + -0.00125781510137 + -0.00125597305466 + -0.00125413100795 + -0.00125228896124 + -0.00125044691453 + -0.00124860486782 + -0.00124676282111 + -0.0012449207744 + -0.00124307872769 + -0.00124123668097 + -0.00123939463426 + -0.00123755258755 + -0.00123571054084 + -0.00123386849413 + -0.00123202644742 + -0.00123018440071 + -0.001228342354 + -0.00122650030729 + -0.00122465826058 + -0.00122281621386 + -0.00122097416715 + -0.00121913212044 + -0.00121729007373 + -0.00121544802702 + -0.00121360598031 + -0.0012117639336 + -0.00120992188689 + -0.00120807984018 + -0.00120623779347 + -0.00120439574676 + -0.00120255370004 + -0.00120071165333 + -0.00119886960662 + -0.00119702755991 + -0.0011951855132 + -0.00119334346649 + -0.00119150141978 + -0.00118965937307 + -0.00118781732636 + -0.00118597527965 + -0.00118413323293 + -0.00118229118622 + -0.00118044913951 + -0.0011786070928 + -0.00117676504609 + -0.00117492299938 + -0.00117308095267 + -0.00117123890596 + -0.00116939685925 + -0.00116755481254 + -0.00116571276583 + -0.00116387071911 + -0.0011620286724 + -0.00116018662569 + -0.00115834457898 + -0.00115650253227 + -0.00115466048556 + -0.00115281843885 + -0.00115097639214 + -0.00114913434543 + -0.00114729229872 + -0.00114545025201 + -0.00114360820529 + -0.00114176615858 + -0.00113992411187 + -0.00113808206516 + -0.00113624001845 + -0.00113439797174 + -0.00113255592503 + -0.00113071387832 + -0.00112887183161 + -0.0011270297849 + -0.00112518773818 + -0.00112334569147 + -0.00112150364476 + -0.00111966159805 + -0.00111781955134 + -0.00111597750463 + -0.00111413545792 + -0.00111229341121 + -0.0011104513645 + -0.00110860931779 + -0.00110676727108 + -0.00110492522436 + -0.00110308317765 + -0.00110124113094 + -0.00109939908423 + -0.00109755703752 + -0.00109571499081 + -0.0010938729441 + -0.00109203089739 + -0.00109018885068 + -0.00108834680397 + -0.00108650475726 + -0.00108466271054 + -0.00108282066383 + -0.00108097861712 + -0.00107913657041 + -0.0010772945237 + -0.00107545247699 + -0.00107361043028 + -0.00107176838357 + -0.00106992633686 + -0.00106808429015 + -0.00106624224343 + -0.00106440019672 + -0.00106255815001 + -0.0010607161033 + -0.00105887405659 + -0.00105703200988 + -0.00105518996317 + -0.00105334791646 + -0.00105150586975 + -0.00104966382304 + -0.00104782177633 + -0.00104597972961 + -0.0010441376829 + -0.00104229563619 + -0.00104045358948 + -0.00103861154277 + -0.00103676949606 + -0.00103492744935 + -0.00103308540264 + -0.00103124335593 + -0.00102940130922 + -0.00102755926251 + -0.00102571721579 + -0.00102387516908 + -0.00102203312237 + -0.00102019107566 + -0.00101834902895 + -0.00101650698224 + -0.00101466493553 + -0.00101282288882 + -0.00101098084211 + -0.0010091387954 + -0.00100729674868 + -0.00100545470197 + -0.00100361265526 + -0.00100177060855 + -0.000999928561841 + -0.00099808651513 + -0.000996244468419 + -0.000994402421708 + -0.000992560374997 + -0.000990718328286 + -0.000988876281575 + -0.000987034234864 + -0.000985192188154 + -0.000983350141443 + -0.000981508094732 + -0.000979666048021 + -0.00097782400131 + -0.000975981954599 + -0.000974139907888 + -0.000972297861177 + -0.000970455814466 + -0.000968613767755 + -0.000966771721044 + -0.000964929674333 + -0.000963087627622 + -0.000961245580911 + -0.0009594035342 + -0.000957561487489 + -0.000955719440778 + -0.000953877394068 + -0.000952035347357 + -0.000950193300646 + -0.000948351253935 + -0.000946509207224 + -0.000944667160513 + -0.000942825113802 + -0.000940983067091 + -0.00093914102038 + -0.000937298973669 + -0.000935456926958 + -0.000933614880247 + -0.000931772833536 + -0.000929930786825 + -0.000928088740114 + -0.000926246693403 + -0.000924404646693 + -0.000922562599982 + -0.000920720553271 + -0.00091887850656 + -0.000917036459849 + -0.000915194413138 + -0.000913352366427 + -0.000911510319716 + -0.000909668273005 + -0.000907826226294 + -0.000905984179583 + -0.000904142132872 + -0.000902300086161 + -0.00090045803945 + -0.000898615992739 + -0.000896773946028 + -0.000894931899317 + -0.000893089852607 + -0.000891247805896 + -0.000889405759185 + -0.000887563712474 + -0.000885721665763 + -0.000883879619052 + -0.000882037572341 + -0.00088019552563 + -0.000878353478919 + -0.000876511432208 + -0.000874669385497 + -0.000872827338786 + -0.000870985292075 + -0.000869143245364 + -0.000867301198653 + -0.000865459151942 + -0.000863617105232 + -0.000861775058521 + -0.00085993301181 + -0.000858090965099 + -0.000856248918388 + -0.000854406871677 + -0.000852564824966 + -0.000850722778255 + -0.000848880731544 + -0.000847038684833 + -0.000845196638122 + -0.000843354591411 + -0.0008415125447 + -0.000839670497989 + -0.000837828451278 + -0.000835986404567 + -0.000834144357856 + -0.000832302311146 + -0.000830460264435 + -0.000828618217724 + -0.000826776171013 + -0.000824934124302 + -0.000823092077591 + -0.00082125003088 + -0.000819407984169 + -0.000817565937458 + -0.000815723890747 + -0.000813881844036 + -0.000812039797325 + -0.000810197750614 + -0.000808355703903 + -0.000806513657192 + -0.000804671610481 + -0.000802829563771 + -0.00080098751706 + -0.000799145470349 + -0.000797303423638 + -0.000795461376927 + -0.000793619330216 + -0.000791777283505 + -0.000789935236794 + -0.000788093190083 + -0.000786251143372 + -0.000784409096661 + -0.00078256704995 + -0.000780725003239 + -0.000778882956528 + -0.000777040909817 + -0.000775198863106 + -0.000773356816395 + -0.000771514769685 + -0.000769672722974 + -0.000767830676263 + -0.000765988629552 + -0.000764146582841 + -0.00076230453613 + -0.000760462489419 + -0.000758620442708 + -0.000756778395997 + -0.000754936349286 + -0.000753094302575 + -0.000751252255864 + -0.000749410209153 + -0.000747568162442 + -0.000745726115731 + -0.00074388406902 + -0.00074204202231 + -0.000740199975599 + -0.000738357928888 + -0.000736515882177 + -0.000734673835466 + -0.000732831788755 + -0.000730989742044 + -0.000729147695333 + -0.000727305648622 + -0.000725463601911 + -0.0007236215552 + -0.000721779508489 + -0.000719937461778 + -0.000718095415067 + -0.000716253368356 + -0.000714411321645 + -0.000712569274934 + -0.000710727228224 + -0.000708885181513 + -0.000707043134802 + -0.000705201088091 + -0.00070335904138 + -0.000701516994669 + -0.000699674947958 + -0.000697832901247 + -0.000695990854536 + -0.000694148807825 + -0.000692306761114 + -0.000690464714403 + -0.000688622667692 + -0.000686780620981 + -0.00068493857427 + -0.000683096527559 + -0.000681254480849 + -0.000679412434138 + -0.000677570387427 + -0.000675728340716 + -0.000673886294005 + -0.000672044247294 + -0.000670202200583 + -0.000668360153872 + -0.000666518107161 + -0.00066467606045 + -0.000662834013739 + -0.000660991967028 + -0.000659149920317 + -0.000657307873606 + -0.000655465826895 + -0.000653623780184 + -0.000651781733473 + -0.000649939686763 + -0.000648097640052 + -0.000646255593341 + -0.00064441354663 + -0.000642571499919 + -0.000640729453208 + -0.000638887406497 + -0.000637045359786 + -0.000635203313075 + -0.000633361266364 + -0.000631519219653 + -0.000629677172942 + -0.000627835126231 + -0.00062599307952 + -0.000624151032809 + -0.000622308986098 + -0.000620466939388 + -0.000618624892677 + -0.000616782845966 + -0.000614940799255 + -0.000613098752544 + -0.000611256705833 + -0.000609414659122 + -0.000607572612411 + -0.0006057305657 + -0.000603888518989 + -0.000602046472278 + -0.000600204425567 + -0.000598362378856 + -0.000596520332145 + -0.000594678285434 + -0.000592836238723 + -0.000590994192012 + -0.000589152145302 + -0.000587310098591 + -0.00058546805188 + -0.000583626005169 + -0.000581783958458 + -0.000579941911747 + -0.000578099865036 + -0.000576257818325 + -0.000574415771614 + -0.000572573724903 + -0.000570731678192 + -0.000568889631481 + -0.00056704758477 + -0.000565205538059 + -0.000563363491348 + -0.000561521444637 + -0.000559679397927 + -0.000557837351216 + -0.000555995304505 + -0.000554153257794 + -0.000552311211083 + -0.000550469164372 + -0.000548627117661 + -0.00054678507095 + -0.000544943024239 + -0.000543100977528 + -0.000541258930817 + -0.000539416884106 + -0.000537574837395 + -0.000535732790684 + -0.000533890743973 + -0.000532048697262 + -0.000530206650551 + -0.000528364603841 + -0.00052652255713 + -0.000524680510419 + -0.000522838463708 + -0.000520996416997 + -0.000519154370286 + -0.000517312323575 + -0.000515470276864 + -0.000513628230153 + -0.000511786183442 + -0.000509944136731 + -0.00050810209002 + -0.000506260043309 + -0.000504417996598 + -0.000502575949887 + -0.000500733903176 + -0.000498891856466 + -0.000497049809755 + -0.000495207763044 + -0.000493365716333 + -0.000491523669622 + -0.000489681622911 + -0.0004878395762 + -0.000485997529489 + -0.000484155482778 + -0.000482313436067 + -0.000480471389356 + -0.000478629342645 + -0.000476787295934 + -0.000474945249223 + -0.000473103202512 + -0.000471261155801 + -0.00046941910909 + -0.00046757706238 + -0.000465735015669 + -0.000463892968958 + -0.000462050922247 + -0.000460208875536 + -0.000458366828825 + -0.000456524782114 + -0.000454682735403 + -0.000452840688692 + -0.000450998641981 + -0.00044915659527 + -0.000447314548559 + -0.000445472501848 + -0.000443630455137 + -0.000441788408426 + -0.000439946361715 + -0.000438104315005 + -0.000436262268294 + -0.000434420221583 + -0.000432578174872 + -0.000430736128161 + -0.00042889408145 + -0.000427052034739 + -0.000425209988028 + -0.000423367941317 + -0.000421525894606 + -0.000419683847895 + -0.000417841801184 + -0.000415999754473 + -0.000414157707762 + -0.000412315661051 + -0.00041047361434 + -0.000408631567629 + -0.000406789520919 + -0.000404947474208 + -0.000403105427497 + -0.000401263380786 + -0.000399421334075 + -0.000397579287364 + -0.000395737240653 + -0.000393895193942 + -0.000392053147231 + -0.00039021110052 + -0.000388369053809 + -0.000386527007098 + -0.000384684960387 + -0.000382842913676 + -0.000381000866965 + -0.000379158820254 + -0.000377316773544 + -0.000375474726833 + -0.000373632680122 + -0.000371790633411 + -0.0003699485867 + -0.000368106539989 + -0.000366264493278 + -0.000364422446567 + -0.000362580399856 + -0.000360738353145 + -0.000358896306434 + -0.000357054259723 + -0.000355212213012 + -0.000353370166301 + -0.00035152811959 + -0.000349686072879 + -0.000347844026168 + -0.000346001979458 + -0.000344159932747 + -0.000342317886036 + -0.000340475839325 + -0.000338633792614 + -0.000336791745903 + -0.000334949699192 + -0.000333107652481 + -0.00033126560577 + -0.000329423559059 + -0.000327581512348 + -0.000325739465637 + -0.000323897418926 + -0.000322055372215 + -0.000320213325504 + -0.000318371278793 + -0.000316529232083 + -0.000314687185372 + -0.000312845138661 + -0.00031100309195 + -0.000309161045239 + -0.000307318998528 + -0.000305476951817 + -0.000303634905106 + -0.000301792858395 + -0.000299950811684 + -0.000298108764973 + -0.000296266718262 + -0.000294424671551 + -0.00029258262484 + -0.000290740578129 + -0.000288898531418 + -0.000287056484707 + -0.000285214437997 + -0.000283372391286 + -0.000281530344575 + -0.000279688297864 + -0.000277846251153 + -0.000276004204442 + -0.000274162157731 + -0.00027232011102 + -0.000270478064309 + -0.000268636017598 + -0.000266793970887 + -0.000264951924176 + -0.000263109877465 + -0.000261267830754 + -0.000259425784043 + -0.000257583737332 + -0.000255741690622 + -0.000253899643911 + -0.0002520575972 + -0.000250215550489 + -0.000248373503778 + -0.000246531457067 + -0.000244689410356 + -0.000242847363645 + -0.000241005316934 + -0.000239163270223 + -0.000237321223512 + -0.000235479176801 + -0.00023363713009 + -0.000231795083379 + -0.000229953036668 + -0.000228110989957 + -0.000226268943246 + -0.000224426896536 + -0.000222584849825 + -0.000220742803114 + -0.000218900756403 + -0.000217058709692 + -0.000215216662981 + -0.00021337461627 + -0.000211532569559 + -0.000209690522848 + -0.000207848476137 + -0.000206006429426 + -0.000204164382715 + -0.000202322336004 + -0.000200480289293 + -0.000198638242582 + -0.000196796195871 + -0.000194954149161 + -0.00019311210245 + -0.000191270055739 + -0.000189428009028 + -0.000187585962317 + -0.000185743915606 + -0.000183901868895 + -0.000182059822184 + -0.000180217775473 + -0.000178375728762 + -0.000176533682051 + -0.00017469163534 + -0.000172849588629 + -0.000171007541918 + -0.000169165495207 + -0.000167323448496 + -0.000165481401785 + -0.000163639355075 + -0.000161797308364 + -0.000159955261653 + -0.000158113214942 + -0.000156271168231 + -0.00015442912152 + -0.000152587074809 + -0.000150745028098 + -0.000148902981387 + -0.000147060934676 + -0.000145218887965 + -0.000143376841254 + -0.000141534794543 + -0.000139692747832 + -0.000137850701121 + -0.00013600865441 + -0.0001341666077 + -0.000132324560989 + -0.000130482514278 + -0.000128640467567 + -0.000126798420856 + -0.000124956374145 + -0.000123114327434 + -0.000121272280723 + -0.000119430234012 + -0.000117588187301 + -0.00011574614059 + -0.000113904093879 + -0.000112062047168 + -0.000110220000457 + -0.000108377953746 + -0.000106535907035 + -0.000104693860324 + -0.000102851813614 + -0.000101009766903 + -9.91677201917e-05 + -9.73256734807e-05 + -9.54836267698e-05 + -9.36415800588e-05 + -9.17995333479e-05 + -8.9957486637e-05 + -8.8115439926e-05 + -8.62733932151e-05 + -8.44313465042e-05 + -8.25892997932e-05 + -8.07472530823e-05 + -7.89052063713e-05 + -7.70631596604e-05 + -7.52211129495e-05 + -7.33790662385e-05 + -7.15370195276e-05 + -6.96949728166e-05 + -6.78529261057e-05 + -6.60108793948e-05 + -6.41688326838e-05 + -6.23267859729e-05 + -6.04847392619e-05 + -5.8642692551e-05 + -5.68006458401e-05 + -5.49585991291e-05 + -5.31165524182e-05 + -5.12745057072e-05 + -4.94324589963e-05 + -4.75904122854e-05 + -4.57483655744e-05 + -4.39063188635e-05 + -4.20642721525e-05 + -4.02222254416e-05 + -3.83801787307e-05 + -3.65381320197e-05 + -3.46960853088e-05 + -3.28540385978e-05 + -3.10119918869e-05 + -2.9169945176e-05 + -2.7327898465e-05 + -2.54858517541e-05 + -2.36438050432e-05 + -2.18017583322e-05 + -1.99597116213e-05 + -1.81176649103e-05 + -1.62756181994e-05 + -1.44335714885e-05 + -1.25915247775e-05 + -1.07494780666e-05 + -8.90743135564e-06 + -7.0653846447e-06 + -5.22333793376e-06 + -3.38129122282e-06 + -1.53924451188e-06 + 3.02802199059e-07 + 2.14484891e-06 + 3.98689562094e-06 + 5.82894233188e-06 + 7.67098904282e-06 + 9.51303575376e-06 + 1.13550824647e-05 + 1.31971291756e-05 + 1.50391758866e-05 + 1.68812225975e-05 + 1.87232693085e-05 + 2.05653160194e-05 + 2.24073627303e-05 + 2.42494094413e-05 + 2.60914561522e-05 + 2.79335028631e-05 + 2.97755495741e-05 + 3.1617596285e-05 + 3.3459642996e-05 + 3.53016897069e-05 + 3.71437364178e-05 + 3.89857831288e-05 + 4.08278298397e-05 + 4.26698765507e-05 + 4.45119232616e-05 + 4.63539699725e-05 + 4.81960166835e-05 + 5.00380633944e-05 + 5.18801101054e-05 + 5.37221568163e-05 + 5.55642035272e-05 + 5.74062502382e-05 + 5.92482969491e-05 + 6.10903436601e-05 + 6.2932390371e-05 + 6.47744370819e-05 + 6.66164837929e-05 + 6.84585305038e-05 + 7.03005772148e-05 + 7.21426239257e-05 + 7.39846706366e-05 + 7.58267173476e-05 + 7.76687640585e-05 + 7.95108107695e-05 + 8.13528574804e-05 + 8.31949041913e-05 + 8.50369509023e-05 + 8.68789976132e-05 + 8.87210443241e-05 + 9.05630910351e-05 + 9.2405137746e-05 + 9.4247184457e-05 + 9.60892311679e-05 + 9.79312778788e-05 + 9.97733245898e-05 + 0.000101615371301 + 0.000103457418012 + 0.000105299464723 + 0.000107141511434 + 0.000108983558144 + 0.000110825604855 + 0.000112667651566 + 0.000114509698277 + 0.000116351744988 + 0.000118193791699 + 0.00012003583841 + 0.000121877885121 + 0.000123719931832 + 0.000125561978543 + 0.000127404025254 + 0.000129246071965 + 0.000131088118676 + 0.000132930165387 + 0.000134772212098 + 0.000136614258809 + 0.00013845630552 + 0.00014029835223 + 0.000142140398941 + 0.000143982445652 + 0.000145824492363 + 0.000147666539074 + 0.000149508585785 + 0.000151350632496 + 0.000153192679207 + 0.000155034725918 + 0.000156876772629 + 0.00015871881934 + 0.000160560866051 + 0.000162402912762 + 0.000164244959473 + 0.000166087006184 + 0.000167929052895 + 0.000169771099605 + 0.000171613146316 + 0.000173455193027 + 0.000175297239738 + 0.000177139286449 + 0.00017898133316 + 0.000180823379871 + 0.000182665426582 + 0.000184507473293 + 0.000186349520004 + 0.000188191566715 + 0.000190033613426 + 0.000191875660137 + 0.000193717706848 + 0.000195559753559 + 0.00019740180027 + 0.000199243846981 + 0.000201085893691 + 0.000202927940402 + 0.000204769987113 + 0.000206612033824 + 0.000208454080535 + 0.000210296127246 + 0.000212138173957 + 0.000213980220668 + 0.000215822267379 + 0.00021766431409 + 0.000219506360801 + 0.000221348407512 + 0.000223190454223 + 0.000225032500934 + 0.000226874547645 + 0.000228716594356 + 0.000230558641066 + 0.000232400687777 + 0.000234242734488 + 0.000236084781199 + 0.00023792682791 + 0.000239768874621 + 0.000241610921332 + 0.000243452968043 + 0.000245295014754 + 0.000247137061465 + 0.000248979108176 + 0.000250821154887 + 0.000252663201598 + 0.000254505248309 + 0.00025634729502 + 0.000258189341731 + 0.000260031388442 + 0.000261873435152 + 0.000263715481863 + 0.000265557528574 + 0.000267399575285 + 0.000269241621996 + 0.000271083668707 + 0.000272925715418 + 0.000274767762129 + 0.00027660980884 + 0.000278451855551 + 0.000280293902262 + 0.000282135948973 + 0.000283977995684 + 0.000285820042395 + 0.000287662089106 + 0.000289504135817 + 0.000291346182527 + 0.000293188229238 + 0.000295030275949 + 0.00029687232266 + 0.000298714369371 + 0.000300556416082 + 0.000302398462793 + 0.000304240509504 + 0.000306082556215 + 0.000307924602926 + 0.000309766649637 + 0.000311608696348 + 0.000313450743059 + 0.00031529278977 + 0.000317134836481 + 0.000318976883192 + 0.000320818929903 + 0.000322660976613 + 0.000324503023324 + 0.000326345070035 + 0.000328187116746 + 0.000330029163457 + 0.000331871210168 + 0.000333713256879 + 0.00033555530359 + 0.000337397350301 + 0.000339239397012 + 0.000341081443723 + 0.000342923490434 + 0.000344765537145 + 0.000346607583856 + 0.000348449630567 + 0.000350291677278 + 0.000352133723988 + 0.000353975770699 + 0.00035581781741 + 0.000357659864121 + 0.000359501910832 + 0.000361343957543 + 0.000363186004254 + 0.000365028050965 + 0.000366870097676 + 0.000368712144387 + 0.000370554191098 + 0.000372396237809 + 0.00037423828452 + 0.000376080331231 + 0.000377922377942 + 0.000379764424653 + 0.000381606471364 + 0.000383448518074 + 0.000385290564785 + 0.000387132611496 + 0.000388974658207 + 0.000390816704918 + 0.000392658751629 + 0.00039450079834 + 0.000396342845051 + 0.000398184891762 + 0.000400026938473 + 0.000401868985184 + 0.000403711031895 + 0.000405553078606 + 0.000407395125317 + 0.000409237172028 + 0.000411079218739 + 0.000412921265449 + 0.00041476331216 + 0.000416605358871 + 0.000418447405582 + 0.000420289452293 + 0.000422131499004 + 0.000423973545715 + 0.000425815592426 + 0.000427657639137 + 0.000429499685848 + 0.000431341732559 + 0.00043318377927 + 0.000435025825981 + 0.000436867872692 + 0.000438709919403 + 0.000440551966114 + 0.000442394012825 + 0.000444236059535 + 0.000446078106246 + 0.000447920152957 + 0.000449762199668 + 0.000451604246379 + 0.00045344629309 + 0.000455288339801 + 0.000457130386512 + 0.000458972433223 + 0.000460814479934 + 0.000462656526645 + 0.000464498573356 + 0.000466340620067 + 0.000468182666778 + 0.000470024713489 + 0.0004718667602 + 0.00047370880691 + 0.000475550853621 + 0.000477392900332 + 0.000479234947043 + 0.000481076993754 + 0.000482919040465 + 0.000484761087176 + 0.000486603133887 + 0.000488445180598 + 0.000490287227309 + 0.00049212927402 + 0.000493971320731 + 0.000495813367442 + 0.000497655414153 + 0.000499497460864 + 0.000501339507575 + 0.000503181554286 + 0.000505023600996 + 0.000506865647707 + 0.000508707694418 + 0.000510549741129 + 0.00051239178784 + 0.000514233834551 + 0.000516075881262 + 0.000517917927973 + 0.000519759974684 + 0.000521602021395 + 0.000523444068106 + 0.000525286114817 + 0.000527128161528 + 0.000528970208239 + 0.00053081225495 + 0.000532654301661 + 0.000534496348371 + 0.000536338395082 + 0.000538180441793 + 0.000540022488504 + 0.000541864535215 + 0.000543706581926 + 0.000545548628637 + 0.000547390675348 + 0.000549232722059 + 0.00055107476877 + 0.000552916815481 + 0.000554758862192 + 0.000556600908903 + 0.000558442955614 + 0.000560285002325 + 0.000562127049036 + 0.000563969095747 + 0.000565811142457 + 0.000567653189168 + 0.000569495235879 + 0.00057133728259 + 0.000573179329301 + 0.000575021376012 + 0.000576863422723 + 0.000578705469434 + 0.000580547516145 + 0.000582389562856 + 0.000584231609567 + 0.000586073656278 + 0.000587915702989 + 0.0005897577497 + 0.000591599796411 + 0.000593441843122 + 0.000595283889832 + 0.000597125936543 + 0.000598967983254 + 0.000600810029965 + 0.000602652076676 + 0.000604494123387 + 0.000606336170098 + 0.000608178216809 + 0.00061002026352 + 0.000611862310231 + 0.000613704356942 + 0.000615546403653 + 0.000617388450364 + 0.000619230497075 + 0.000621072543786 + 0.000622914590497 + 0.000624756637208 + 0.000626598683918 + 0.000628440730629 + 0.00063028277734 + 0.000632124824051 + 0.000633966870762 + 0.000635808917473 + 0.000637650964184 + 0.000639493010895 + 0.000641335057606 + 0.000643177104317 + 0.000645019151028 + 0.000646861197739 + 0.00064870324445 + 0.000650545291161 + 0.000652387337872 + 0.000654229384583 + 0.000656071431293 + 0.000657913478004 + 0.000659755524715 + 0.000661597571426 + 0.000663439618137 + 0.000665281664848 + 0.000667123711559 + 0.00066896575827 + 0.000670807804981 + 0.000672649851692 + 0.000674491898403 + 0.000676333945114 + 0.000678175991825 + 0.000680018038536 + 0.000681860085247 + 0.000683702131958 + 0.000685544178669 + 0.000687386225379 + 0.00068922827209 + 0.000691070318801 + 0.000692912365512 + 0.000694754412223 + 0.000696596458934 + 0.000698438505645 + 0.000700280552356 + 0.000702122599067 + 0.000703964645778 + 0.000705806692489 + 0.0007076487392 + 0.000709490785911 + 0.000711332832622 + 0.000713174879333 + 0.000715016926044 + 0.000716858972754 + 0.000718701019465 + 0.000720543066176 + 0.000722385112887 + 0.000724227159598 + 0.000726069206309 + 0.00072791125302 + 0.000729753299731 + 0.000731595346442 + 0.000733437393153 + 0.000735279439864 + 0.000737121486575 + 0.000738963533286 + 0.000740805579997 + 0.000742647626708 + 0.000744489673419 + 0.00074633172013 + 0.00074817376684 + 0.000750015813551 + 0.000751857860262 + 0.000753699906973 + 0.000755541953684 + 0.000757384000395 + 0.000759226047106 + 0.000761068093817 + 0.000762910140528 + 0.000764752187239 + 0.00076659423395 + 0.000768436280661 + 0.000770278327372 + 0.000772120374083 + 0.000773962420794 + 0.000775804467505 + 0.000777646514215 + 0.000779488560926 + 0.000781330607637 + 0.000783172654348 + 0.000785014701059 + 0.00078685674777 + 0.000788698794481 + 0.000790540841192 + 0.000792382887903 + 0.000794224934614 + 0.000796066981325 + 0.000797909028036 + 0.000799751074747 + 0.000801593121458 + 0.000803435168169 + 0.00080527721488 + 0.000807119261591 + 0.000808961308301 + 0.000810803355012 + 0.000812645401723 + 0.000814487448434 + 0.000816329495145 + 0.000818171541856 + 0.000820013588567 + 0.000821855635278 + 0.000823697681989 + 0.0008255397287 + 0.000827381775411 + 0.000829223822122 + 0.000831065868833 + 0.000832907915544 + 0.000834749962255 + 0.000836592008966 + 0.000838434055676 + 0.000840276102387 + 0.000842118149098 + 0.000843960195809 + 0.00084580224252 + 0.000847644289231 + 0.000849486335942 + 0.000851328382653 + 0.000853170429364 + 0.000855012476075 + 0.000856854522786 + 0.000858696569497 + 0.000860538616208 + 0.000862380662919 + 0.00086422270963 + 0.000866064756341 + 0.000867906803052 + 0.000869748849762 + 0.000871590896473 + 0.000873432943184 + 0.000875274989895 + 0.000877117036606 + 0.000878959083317 + 0.000880801130028 + 0.000882643176739 + 0.00088448522345 + 0.000886327270161 + 0.000888169316872 + 0.000890011363583 + 0.000891853410294 + 0.000893695457005 + 0.000895537503716 + 0.000897379550427 + 0.000899221597137 + 0.000901063643848 + 0.000902905690559 + 0.00090474773727 + 0.000906589783981 + 0.000908431830692 + 0.000910273877403 + 0.000912115924114 + 0.000913957970825 + 0.000915800017536 + 0.000917642064247 + 0.000919484110958 + 0.000921326157669 + 0.00092316820438 + 0.000925010251091 + 0.000926852297802 + 0.000928694344513 + 0.000930536391223 + 0.000932378437934 + 0.000934220484645 + 0.000936062531356 + 0.000937904578067 + 0.000939746624778 + 0.000941588671489 + 0.0009434307182 + 0.000945272764911 + 0.000947114811622 + 0.000948956858333 + 0.000950798905044 + 0.000952640951755 + 0.000954482998466 + 0.000956325045177 + 0.000958167091888 + 0.000960009138598 + 0.000961851185309 + 0.00096369323202 + 0.000965535278731 + 0.000967377325442 + 0.000969219372153 + 0.000971061418864 + 0.000972903465575 + 0.000974745512286 + 0.000976587558997 + 0.000978429605708 + 0.000980271652419 + 0.00098211369913 + 0.000983955745841 + 0.000985797792552 + 0.000987639839263 + 0.000989481885974 + 0.000991323932684 + 0.000993165979395 + 0.000995008026106 + 0.000996850072817 + 0.000998692119528 + 0.00100053416624 + 0.00100237621295 + 0.00100421825966 + 0.00100606030637 + 0.00100790235308 + 0.00100974439979 + 0.0010115864465 + 0.00101342849322 + 0.00101527053993 + 0.00101711258664 + 0.00101895463335 + 0.00102079668006 + 0.00102263872677 + 0.00102448077348 + 0.00102632282019 + 0.0010281648669 + 0.00103000691361 + 0.00103184896033 + 0.00103369100704 + 0.00103553305375 + 0.00103737510046 + 0.00103921714717 + 0.00104105919388 + 0.00104290124059 + 0.0010447432873 + 0.00104658533401 + 0.00104842738072 + 0.00105026942743 + 0.00105211147415 + 0.00105395352086 + 0.00105579556757 + 0.00105763761428 + 0.00105947966099 + 0.0010613217077 + 0.00106316375441 + 0.00106500580112 + 0.00106684784783 + 0.00106868989454 + 0.00107053194125 + 0.00107237398797 + 0.00107421603468 + 0.00107605808139 + 0.0010779001281 + 0.00107974217481 + 0.00108158422152 + 0.00108342626823 + 0.00108526831494 + 0.00108711036165 + 0.00108895240836 + 0.00109079445508 + 0.00109263650179 + 0.0010944785485 + 0.00109632059521 + 0.00109816264192 + 0.00110000468863 + 0.00110184673534 + 0.00110368878205 + 0.00110553082876 + 0.00110737287547 + 0.00110921492218 + 0.0011110569689 + 0.00111289901561 + 0.00111474106232 + 0.00111658310903 + 0.00111842515574 + 0.00112026720245 + 0.00112210924916 + 0.00112395129587 + 0.00112579334258 + 0.00112763538929 + 0.001129477436 + 0.00113131948272 + 0.00113316152943 + 0.00113500357614 + 0.00113684562285 + 0.00113868766956 + 0.00114052971627 + 0.00114237176298 + 0.00114421380969 + 0.0011460558564 + 0.00114789790311 + 0.00114973994983 + 0.00115158199654 + 0.00115342404325 + 0.00115526608996 + 0.00115710813667 + 0.00115895018338 + 0.00116079223009 + 0.0011626342768 + 0.00116447632351 + 0.00116631837022 + 0.00116816041693 + 0.00117000246365 + 0.00117184451036 + 0.00117368655707 + 0.00117552860378 + 0.00117737065049 + 0.0011792126972 + 0.00118105474391 + 0.00118289679062 + 0.00118473883733 + 0.00118658088404 + 0.00118842293075 + 0.00119026497747 + 0.00119210702418 + 0.00119394907089 + 0.0011957911176 + 0.00119763316431 + 0.00119947521102 + 0.00120131725773 + 0.00120315930444 + 0.00120500135115 + 0.00120684339786 + 0.00120868544458 + 0.00121052749129 + 0.001212369538 + 0.00121421158471 + 0.00121605363142 + 0.00121789567813 + 0.00121973772484 + 0.00122157977155 + 0.00122342181826 + 0.00122526386497 + 0.00122710591168 + 0.0012289479584 + 0.00123079000511 + 0.00123263205182 + 0.00123447409853 + 0.00123631614524 + 0.00123815819195 + 0.00124000023866 + 0.00124184228537 + 0.00124368433208 + 0.00124552637879 + 0.00124736842551 + 0.00124921047222 + 0.00125105251893 + 0.00125289456564 + 0.00125473661235 + 0.00125657865906 + 0.00125842070577 + 0.00126026275248 + 0.00126210479919 + 0.0012639468459 + 0.00126578889261 + 0.00126763093933 + 0.00126947298604 + 0.00127131503275 + 0.00127315707946 + 0.00127499912617 + 0.00127684117288 + 0.00127868321959 + 0.0012805252663 + 0.00128236731301 + 0.00128420935972 + 0.00128605140643 + 0.00128789345315 + 0.00128973549986 + 0.00129157754657 + 0.00129341959328 + 0.00129526163999 + 0.0012971036867 + 0.00129894573341 + 0.00130078778012 + 0.00130262982683 + 0.00130447187354 + 0.00130631392026 + 0.00130815596697 + 0.00130999801368 + 0.00131184006039 + 0.0013136821071 + 0.00131552415381 + 0.00131736620052 + 0.00131920824723 + 0.00132105029394 + 0.00132289234065 + 0.00132473438736 + 0.00132657643408 + 0.00132841848079 + 0.0013302605275 + 0.00133210257421 + 0.00133394462092 + 0.00133578666763 + 0.00133762871434 + 0.00133947076105 + 0.00134131280776 + 0.00134315485447 + 0.00134499690118 + 0.0013468389479 + 0.00134868099461 + 0.00135052304132 + 0.00135236508803 + 0.00135420713474 + 0.00135604918145 + 0.00135789122816 + 0.00135973327487 + 0.00136157532158 + 0.00136341736829 + 0.00136525941501 + 0.00136710146172 + 0.00136894350843 + 0.00137078555514 + 0.00137262760185 + 0.00137446964856 + 0.00137631169527 + 0.00137815374198 + 0.00137999578869 + 0.0013818378354 + 0.00138367988211 + 0.00138552192883 + 0.00138736397554 + 0.00138920602225 + 0.00139104806896 + 0.00139289011567 + 0.00139473216238 + 0.00139657420909 + 0.0013984162558 + 0.00140025830251 + 0.00140210034922 + 0.00140394239593 + 0.00140578444265 + 0.00140762648936 + 0.00140946853607 + 0.00141131058278 + 0.00141315262949 + 0.0014149946762 + 0.00141683672291 + 0.00141867876962 + 0.00142052081633 + 0.00142236286304 + 0.00142420490976 + 0.00142604695647 + 0.00142788900318 + 0.00142973104989 + 0.0014315730966 + 0.00143341514331 + 0.00143525719002 + 0.00143709923673 + 0.00143894128344 + 0.00144078333015 + 0.00144262537686 + 0.00144446742358 + 0.00144630947029 + 0.001448151517 + 0.00144999356371 + 0.00145183561042 + 0.00145367765713 + 0.00145551970384 + 0.00145736175055 + 0.00145920379726 + 0.00146104584397 + 0.00146288789068 + 0.0014647299374 + 0.00146657198411 + 0.00146841403082 + 0.00147025607753 + 0.00147209812424 + 0.00147394017095 + 0.00147578221766 + 0.00147762426437 + 0.00147946631108 + 0.00148130835779 + 0.00148315040451 + 0.00148499245122 + 0.00148683449793 + 0.00148867654464 + 0.00149051859135 + 0.00149236063806 + 0.00149420268477 + 0.00149604473148 + 0.00149788677819 + 0.0014997288249 + 0.00150157087161 + 0.00150341291833 + 0.00150525496504 + 0.00150709701175 + 0.00150893905846 + 0.00151078110517 + 0.00151262315188 + 0.00151446519859 + 0.0015163072453 + 0.00151814929201 + 0.00151999133872 + 0.00152183338543 + 0.00152367543215 + 0.00152551747886 + 0.00152735952557 + 0.00152920157228 + 0.00153104361899 + 0.0015328856657 + 0.00153472771241 + 0.00153656975912 + 0.00153841180583 + 0.00154025385254 + 0.00154209589926 + 0.00154393794597 + 0.00154577999268 + 0.00154762203939 + 0.0015494640861 + 0.00155130613281 + 0.00155314817952 + 0.00155499022623 + 0.00155683227294 + 0.00155867431965 + 0.00156051636636 + 0.00156235841308 + 0.00156420045979 + 0.0015660425065 + 0.00156788455321 + 0.00156972659992 + 0.00157156864663 + 0.00157341069334 + 0.00157525274005 + 0.00157709478676 + 0.00157893683347 + 0.00158077888019 + 0.0015826209269 + 0.00158446297361 + 0.00158630502032 + 0.00158814706703 + 0.00158998911374 + 0.00159183116045 + 0.00159367320716 + 0.00159551525387 + 0.00159735730058 + 0.00159919934729 + 0.00160104139401 + 0.00160288344072 + 0.00160472548743 + 0.00160656753414 + 0.00160840958085 + 0.00161025162756 + 0.00161209367427 + 0.00161393572098 + 0.00161577776769 + 0.0016176198144 + 0.00161946186111 + 0.00162130390783 + 0.00162314595454 + 0.00162498800125 + 0.00162683004796 + 0.00162867209467 + 0.00163051414138 + 0.00163235618809 + 0.0016341982348 + 0.00163604028151 + 0.00163788232822 + 0.00163972437494 + 0.00164156642165 + 0.00164340846836 + 0.00164525051507 + 0.00164709256178 + 0.00164893460849 + 0.0016507766552 + 0.00165261870191 + 0.00165446074862 + 0.00165630279533 + 0.00165814484204 + 0.00165998688876 + 0.00166182893547 + 0.00166367098218 + 0.00166551302889 + 0.0016673550756 + 0.00166919712231 + 0.00167103916902 + 0.00167288121573 + 0.00167472326244 + 0.00167656530915 + 0.00167840735586 + 0.00168024940258 + 0.00168209144929 + 0.001683933496 + 0.00168577554271 + 0.00168761758942 + 0.00168945963613 + 0.00169130168284 + 0.00169314372955 + 0.00169498577626 + 0.00169682782297 + 0.00169866986969 + 0.0017005119164 + 0.00170235396311 + 0.00170419600982 + 0.00170603805653 + 0.00170788010324 + 0.00170972214995 + 0.00171156419666 + 0.00171340624337 + 0.00171524829008 + 0.00171709033679 + 0.00171893238351 + 0.00172077443022 + 0.00172261647693 + 0.00172445852364 + 0.00172630057035 + 0.00172814261706 + 0.00172998466377 + 0.00173182671048 + 0.00173366875719 + 0.0017355108039 + 0.00173735285061 + 0.00173919489733 + 0.00174103694404 + 0.00174287899075 + 0.00174472103746 + 0.00174656308417 + 0.00174840513088 + 0.00175024717759 + 0.0017520892243 + 0.00175393127101 + 0.00175577331772 + 0.00175761536444 + 0.00175945741115 + 0.00176129945786 + 0.00176314150457 + 0.00176498355128 + 0.00176682559799 + 0.0017686676447 + 0.00177050969141 + 0.00177235173812 + 0.00177419378483 + 0.00177603583154 + 0.00177787787826 + 0.00177971992497 + 0.00178156197168 + 0.00178340401839 + 0.0017852460651 + 0.00178708811181 + 0.00178893015852 + 0.00179077220523 + 0.00179261425194 + 0.00179445629865 + 0.00179629834536 + 0.00179814039208 + 0.00179998243879 + 0.0018018244855 + 0.00180366653221 + 0.00180550857892 + 0.00180735062563 + 0.00180919267234 + 0.00181103471905 + 0.00181287676576 + 0.00181471881247 + 0.00181656085919 + 0.0018184029059 + 0.00182024495261 + 0.00182208699932 + 0.00182392904603 + 0.00182577109274 + 0.00182761313945 + 0.00182945518616 + 0.00183129723287 + 0.00183313927958 + 0.00183498132629 + 0.00183682337301 + 0.00183866541972 + 0.00184050746643 + 0.00184234951314 + 0.00184419155985 + 0.00184603360656 + 0.00184787565327 + 0.00184971769998 + 0.00185155974669 + 0.0018534017934 + 0.00185524384012 + 0.00185708588683 + 0.00185892793354 + 0.00186076998025 + 0.00186261202696 + 0.00186445407367 + 0.00186629612038 + 0.00186813816709 + 0.0018699802138 + 0.00187182226051 + 0.00187366430722 + 0.00187550635394 + 0.00187734840065 + 0.00187919044736 + 0.00188103249407 + 0.00188287454078 + 0.00188471658749 + 0.0018865586342 + 0.00188840068091 + 0.00189024272762 + 0.00189208477433 + 0.00189392682104 + 0.00189576886776 + 0.00189761091447 + 0.00189945296118 + 0.00190129500789 + 0.0019031370546 + 0.00190497910131 + 0.00190682114802 + 0.00190866319473 + 0.00191050524144 + 0.00191234728815 + 0.00191418933487 + 0.00191603138158 + 0.00191787342829 + 0.001919715475 + 0.00192155752171 + 0.00192339956842 + 0.00192524161513 + 0.00192708366184 + 0.00192892570855 + 0.00193076775526 + 0.00193260980197 + 0.00193445184869 + 0.0019362938954 + 0.00193813594211 + 0.00193997798882 + 0.00194182003553 + 0.00194366208224 + 0.00194550412895 + 0.00194734617566 + 0.00194918822237 + 0.00195103026908 + 0.00195287231579 + 0.00195471436251 + 0.00195655640922 + 0.00195839845593 + 0.00196024050264 + 0.00196208254935 + 0.00196392459606 + 0.00196576664277 + 0.00196760868948 + 0.00196945073619 + 0.0019712927829 + 0.00197313482962 + 0.00197497687633 + 0.00197681892304 + 0.00197866096975 + 0.00198050301646 + 0.00198234506317 + 0.00198418710988 + 0.00198602915659 + 0.0019878712033 + 0.00198971325001 + 0.00199155529672 + 0.00199339734344 + 0.00199523939015 + 0.00199708143686 + 0.00199892348357 + 0.00200076553028 + 0.00200260757699 + 0.0020044496237 + 0.00200629167041 + 0.00200813371712 + 0.00200997576383 + 0.00201181781054 + 0.00201365985726 + 0.00201550190397 + 0.00201734395068 + 0.00201918599739 + 0.0020210280441 + 0.00202287009081 + 0.00202471213752 + 0.00202655418423 + 0.00202839623094 + 0.00203023827765 + 0.00203208032437 + 0.00203392237108 + 0.00203576441779 + 0.0020376064645 + 0.00203944851121 + 0.00204129055792 + 0.00204313260463 + 0.00204497465134 + 0.00204681669805 + 0.00204865874476 + 0.00205050079147 + 0.00205234283819 + 0.0020541848849 + 0.00205602693161 + 0.00205786897832 + 0.00205971102503 + 0.00206155307174 + 0.00206339511845 + 0.00206523716516 + 0.00206707921187 + 0.00206892125858 + 0.00207076330529 + 0.00207260535201 + 0.00207444739872 + 0.00207628944543 + 0.00207813149214 + 0.00207997353885 + 0.00208181558556 + 0.00208365763227 + 0.00208549967898 + 0.00208734172569 + 0.0020891837724 + 0.00209102581912 + 0.00209286786583 + 0.00209470991254 + 0.00209655195925 + 0.00209839400596 + 0.00210023605267 + 0.00210207809938 + 0.00210392014609 + 0.0021057621928 + 0.00210760423951 + 0.00210944628622 + 0.00211128833294 + 0.00211313037965 + 0.00211497242636 + 0.00211681447307 + 0.00211865651978 + 0.00212049856649 + 0.0021223406132 + 0.00212418265991 + 0.00212602470662 + 0.00212786675333 + 0.00212970880004 + 0.00213155084676 + 0.00213339289347 + 0.00213523494018 + 0.00213707698689 + 0.0021389190336 + 0.00214076108031 + 0.00214260312702 + 0.00214444517373 + 0.00214628722044 + 0.00214812926715 + 0.00214997131387 + 0.00215181336058 + 0.00215365540729 + 0.002155497454 + 0.00215733950071 + 0.00215918154742 + 0.00216102359413 + 0.00216286564084 + 0.00216470768755 + 0.00216654973426 + 0.00216839178097 + 0.00217023382769 + 0.0021720758744 + 0.00217391792111 + 0.00217575996782 + 0.00217760201453 + 0.00217944406124 + 0.00218128610795 + 0.00218312815466 + 0.00218497020137 + 0.00218681224808 + 0.0021886542948 + 0.00219049634151 + 0.00219233838822 + 0.00219418043493 + 0.00219602248164 + 0.00219786452835 + 0.00219970657506 + 0.00220154862177 + 0.00220339066848 + 0.00220523271519 + 0.0022070747619 + 0.00220891680862 + 0.00221075885533 + 0.00221260090204 + 0.00221444294875 + 0.00221628499546 + 0.00221812704217 + 0.00221996908888 + 0.00222181113559 + 0.0022236531823 + 0.00222549522901 + 0.00222733727572 + 0.00222917932244 + 0.00223102136915 + 0.00223286341586 + 0.00223470546257 + 0.00223654750928 + 0.00223838955599 + 0.0022402316027 + 0.00224207364941 + 0.00224391569612 + 0.00224575774283 + 0.00224759978955 + 0.00224944183626 + 0.00225128388297 + 0.00225312592968 + 0.00225496797639 + 0.0022568100231 + 0.00225865206981 + 0.00226049411652 + 0.00226233616323 + 0.00226417820994 + 0.00226602025665 + 0.00226786230337 + 0.00226970435008 + 0.00227154639679 + 0.0022733884435 + 0.00227523049021 + 0.00227707253692 + 0.00227891458363 + 0.00228075663034 + 0.00228259867705 + 0.00228444072376 + 0.00228628277047 + 0.00228812481719 + 0.0022899668639 + 0.00229180891061 + 0.00229365095732 + 0.00229549300403 + 0.00229733505074 + 0.00229917709745 + 0.00230101914416 + 0.00230286119087 + 0.00230470323758 + 0.0023065452843 + 0.00230838733101 + 0.00231022937772 + 0.00231207142443 + 0.00231391347114 + 0.00231575551785 + 0.00231759756456 + 0.00231943961127 + 0.00232128165798 + 0.00232312370469 + 0.0023249657514 + 0.00232680779812 + 0.00232864984483 + 0.00233049189154 + 0.00233233393825 + 0.00233417598496 + 0.00233601803167 + 0.00233786007838 + 0.00233970212509 + 0.0023415441718 + 0.00234338621851 + 0.00234522826522 + 0.00234707031194 + 0.00234891235865 + 0.00235075440536 + 0.00235259645207 + 0.00235443849878 + 0.00235628054549 + 0.0023581225922 + 0.00235996463891 + 0.00236180668562 + 0.00236364873233 + 0.00236549077905 + 0.00236733282576 + 0.00236917487247 + 0.00237101691918 + 0.00237285896589 + 0.0023747010126 + 0.00237654305931 + 0.00237838510602 + 0.00238022715273 + 0.00238206919944 + 0.00238391124615 + 0.00238575329287 + 0.00238759533958 + 0.00238943738629 + 0.002391279433 + 0.00239312147971 + 0.00239496352642 + 0.00239680557313 + 0.00239864761984 + 0.00240048966655 + 0.00240233171326 + 0.00240417375997 + 0.00240601580669 + 0.0024078578534 + 0.00240969990011 + 0.00241154194682 + 0.00241338399353 + 0.00241522604024 + 0.00241706808695 + 0.00241891013366 + 0.00242075218037 + 0.00242259422708 + 0.0024244362738 + 0.00242627832051 + 0.00242812036722 + 0.00242996241393 + 0.00243180446064 + 0.00243364650735 + 0.00243548855406 + 0.00243733060077 + 0.00243917264748 + 0.00244101469419 + 0.0024428567409 + 0.00244469878762 + 0.00244654083433 + 0.00244838288104 + 0.00245022492775 + 0.00245206697446 + 0.00245390902117 + 0.00245575106788 + 0.00245759311459 + 0.0024594351613 + 0.00246127720801 + 0.00246311925473 + 0.00246496130144 + 0.00246680334815 + 0.00246864539486 + 0.00247048744157 + 0.00247232948828 + 0.00247417153499 + 0.0024760135817 + 0.00247785562841 + 0.00247969767512 + 0.00248153972183 + 0.00248338176855 + 0.00248522381526 + 0.00248706586197 + 0.00248890790868 + 0.00249074995539 + 0.0024925920021 + 0.00249443404881 + 0.00249627609552 + 0.00249811814223 + 0.00249996018894 + 0.00250180223565 + 0.00250364428237 + 0.00250548632908 + 0.00250732837579 + 0.0025091704225 + 0.00251101246921 + 0.00251285451592 + 0.00251469656263 + 0.00251653860934 + 0.00251838065605 + 0.00252022270276 + 0.00252206474948 + 0.00252390679619 + 0.0025257488429 + 0.00252759088961 + 0.00252943293632 + 0.00253127498303 + 0.00253311702974 + 0.00253495907645 + 0.00253680112316 + 0.00253864316987 + 0.00254048521658 + 0.0025423272633 + 0.00254416931001 + 0.00254601135672 + 0.00254785340343 + 0.00254969545014 + 0.00255153749685 + 0.00255337954356 + 0.00255522159027 + 0.00255706363698 + 0.00255890568369 + 0.0025607477304 + 0.00256258977712 + 0.00256443182383 + 0.00256627387054 + 0.00256811591725 + 0.00256995796396 + 0.00257180001067 + 0.00257364205738 + 0.00257548410409 + 0.0025773261508 + 0.00257916819751 + 0.00258101024423 + 0.00258285229094 + 0.00258469433765 + 0.00258653638436 + 0.00258837843107 + 0.00259022047778 + 0.00259206252449 + 0.0025939045712 + 0.00259574661791 + 0.00259758866462 + 0.00259943071133 + 0.00260127275805 + 0.00260311480476 + 0.00260495685147 + 0.00260679889818 + 0.00260864094489 + 0.0026104829916 + 0.00261232503831 + 0.00261416708502 + 0.00261600913173 + 0.00261785117844 + 0.00261969322515 + 0.00262153527187 + 0.00262337731858 + 0.00262521936529 + 0.002627061412 + 0.00262890345871 + 0.00263074550542 + 0.00263258755213 + 0.00263442959884 + 0.00263627164555 + 0.00263811369226 + 0.00263995573898 + 0.00264179778569 + 0.0026436398324 + 0.00264548187911 + 0.00264732392582 + 0.00264916597253 + 0.00265100801924 + 0.00265285006595 + 0.00265469211266 + 0.00265653415937 + 0.00265837620608 + 0.0026602182528 + 0.00266206029951 + 0.00266390234622 + 0.00266574439293 + 0.00266758643964 + 0.00266942848635 + 0.00267127053306 + 0.00267311257977 + 0.00267495462648 + 0.00267679667319 + 0.0026786387199 + 0.00268048076662 + 0.00268232281333 + 0.00268416486004 + 0.00268600690675 + 0.00268784895346 + 0.00268969100017 + 0.00269153304688 + 0.00269337509359 + 0.0026952171403 + 0.00269705918701 + 0.00269890123373 + 0.00270074328044 + 0.00270258532715 + 0.00270442737386 + 0.00270626942057 + 0.00270811146728 + 0.00270995351399 + 0.0027117955607 + 0.00271363760741 + 0.00271547965412 + 0.00271732170083 + 0.00271916374755 + 0.00272100579426 + 0.00272284784097 + 0.00272468988768 + 0.00272653193439 + 0.0027283739811 + 0.00273021602781 + 0.00273205807452 + 0.00273390012123 + 0.00273574216794 + 0.00273758421465 + 0.00273942626137 + 0.00274126830808 + 0.00274311035479 + 0.0027449524015 + 0.00274679444821 + 0.00274863649492 + 0.00275047854163 + 0.00275232058834 + 0.00275416263505 + 0.00275600468176 + 0.00275784672848 + 0.00275968877519 + 0.0027615308219 + 0.00276337286861 + 0.00276521491532 + 0.00276705696203 + 0.00276889900874 + 0.00277074105545 + 0.00277258310216 + 0.00277442514887 + 0.00277626719558 + 0.0027781092423 + 0.00277995128901 + 0.00278179333572 + 0.00278363538243 + 0.00278547742914 + 0.00278731947585 + 0.00278916152256 + 0.00279100356927 + 0.00279284561598 + 0.00279468766269 + 0.00279652970941 + 0.00279837175612 + 0.00280021380283 + 0.00280205584954 + 0.00280389789625 + 0.00280573994296 + 0.00280758198967 + 0.00280942403638 + 0.00281126608309 + 0.0028131081298 + 0.00281495017651 + 0.00281679222323 + 0.00281863426994 + 0.00282047631665 + 0.00282231836336 + 0.00282416041007 + 0.00282600245678 + 0.00282784450349 + 0.0028296865502 + 0.00283152859691 + 0.00283337064362 + 0.00283521269033 + 0.00283705473705 + 0.00283889678376 + 0.00284073883047 + 0.00284258087718 + 0.00284442292389 + 0.0028462649706 + 0.00284810701731 + 0.00284994906402 + 0.00285179111073 + 0.00285363315744 + 0.00285547520416 + 0.00285731725087 + 0.00285915929758 + 0.00286100134429 + 0.002862843391 + 0.00286468543771 + 0.00286652748442 + 0.00286836953113 + 0.00287021157784 + 0.00287205362455 + 0.00287389567126 + 0.00287573771798 + 0.00287757976469 + 0.0028794218114 + 0.00288126385811 + 0.00288310590482 + 0.00288494795153 + 0.00288678999824 + 0.00288863204495 + 0.00289047409166 + 0.00289231613837 + 0.00289415818508 + 0.0028960002318 + 0.00289784227851 + 0.00289968432522 + 0.00290152637193 + 0.00290336841864 + 0.00290521046535 + 0.00290705251206 + 0.00290889455877 + 0.00291073660548 + 0.00291257865219 + 0.00291442069891 + 0.00291626274562 + 0.00291810479233 + 0.00291994683904 + 0.00292178888575 + 0.00292363093246 + 0.00292547297917 + 0.00292731502588 + 0.00292915707259 + 0.0029309991193 + 0.00293284116601 + 0.00293468321273 + 0.00293652525944 + 0.00293836730615 + 0.00294020935286 + 0.00294205139957 + 0.00294389344628 + 0.00294573549299 + 0.0029475775397 + 0.00294941958641 + 0.00295126163312 + 0.00295310367983 + 0.00295494572655 + 0.00295678777326 + 0.00295862981997 + 0.00296047186668 + 0.00296231391339 + 0.0029641559601 + 0.00296599800681 + 0.00296784005352 + 0.00296968210023 + 0.00297152414694 + 0.00297336619366 + 0.00297520824037 + 0.00297705028708 + 0.00297889233379 + 0.0029807343805 + 0.00298257642721 + 0.00298441847392 + 0.00298626052063 + 0.00298810256734 + 0.00298994461405 + 0.00299178666076 + 0.00299362870748 + 0.00299547075419 + 0.0029973128009 + 0.00299915484761 + 0.00300099689432 + 0.00300283894103 + 0.00300468098774 + 0.00300652303445 + 0.00300836508116 + 0.00301020712787 + 0.00301204917458 + 0.0030138912213 + 0.00301573326801 + 0.00301757531472 + 0.00301941736143 + 0.00302125940814 + 0.00302310145485 + 0.00302494350156 + 0.00302678554827 + 0.00302862759498 + 0.00303046964169 + 0.00303231168841 + 0.00303415373512 + 0.00303599578183 + 0.00303783782854 + 0.00303967987525 + 0.00304152192196 + 0.00304336396867 + 0.00304520601538 + 0.00304704806209 + 0.0030488901088 + 0.00305073215551 + 0.00305257420223 + 0.00305441624894 + 0.00305625829565 + 0.00305810034236 + 0.00305994238907 + 0.00306178443578 + 0.00306362648249 + 0.0030654685292 + 0.00306731057591 + 0.00306915262262 + 0.00307099466934 + 0.00307283671605 + 0.00307467876276 + 0.00307652080947 + 0.00307836285618 + 0.00308020490289 + 0.0030820469496 + 0.00308388899631 + 0.00308573104302 + 0.00308757308973 + 0.00308941513644 + 0.00309125718316 + 0.00309309922987 + 0.00309494127658 + 0.00309678332329 + 0.00309862537 + 0.00310046741671 + 0.00310230946342 + 0.00310415151013 + 0.00310599355684 + 0.00310783560355 + 0.00310967765026 + 0.00311151969698 + 0.00311336174369 + 0.0031152037904 + 0.00311704583711 + 0.00311888788382 + 0.00312072993053 + 0.00312257197724 + 0.00312441402395 + 0.00312625607066 + 0.00312809811737 + 0.00312994016409 + 0.0031317822108 + 0.00313362425751 + 0.00313546630422 + 0.00313730835093 + 0.00313915039764 + 0.00314099244435 + 0.00314283449106 + 0.00314467653777 + 0.00314651858448 + 0.00314836063119 + 0.00315020267791 + 0.00315204472462 + 0.00315388677133 + 0.00315572881804 + 0.00315757086475 + 0.00315941291146 + 0.00316125495817 + 0.00316309700488 + 0.00316493905159 + 0.0031667810983 + 0.00316862314501 + 0.00317046519173 + 0.00317230723844 + 0.00317414928515 + 0.00317599133186 + 0.00317783337857 + 0.00317967542528 + 0.00318151747199 + 0.0031833595187 + 0.00318520156541 + 0.00318704361212 + 0.00318888565884 + 0.00319072770555 + 0.00319256975226 + 0.00319441179897 + 0.00319625384568 + 0.00319809589239 + 0.0031999379391 + 0.00320177998581 + 0.00320362203252 + 0.00320546407923 + 0.00320730612594 + 0.00320914817266 + 0.00321099021937 + 0.00321283226608 + 0.00321467431279 + 0.0032165163595 + 0.00321835840621 + 0.00322020045292 + 0.00322204249963 + 0.00322388454634 + 0.00322572659305 + 0.00322756863976 + 0.00322941068648 + 0.00323125273319 + 0.0032330947799 + 0.00323493682661 + 0.00323677887332 + 0.00323862092003 + 0.00324046296674 + 0.00324230501345 + 0.00324414706016 + 0.00324598910687 + 0.00324783115359 + 0.0032496732003 + 0.00325151524701 + 0.00325335729372 + 0.00325519934043 + 0.00325704138714 + 0.00325888343385 + 0.00326072548056 + 0.00326256752727 + 0.00326440957398 + 0.00326625162069 + 0.00326809366741 + 0.00326993571412 + 0.00327177776083 + 0.00327361980754 + 0.00327546185425 + 0.00327730390096 + 0.00327914594767 + 0.00328098799438 + 0.00328283004109 + 0.0032846720878 + 0.00328651413451 + 0.00328835618123 + 0.00329019822794 + 0.00329204027465 + 0.00329388232136 + 0.00329572436807 + 0.00329756641478 + 0.00329940846149 + 0.0033012505082 + 0.00330309255491 + 0.00330493460162 + 0.00330677664834 + 0.00330861869505 + 0.00331046074176 + 0.00331230278847 + 0.00331414483518 + 0.00331598688189 + 0.0033178289286 + 0.00331967097531 + 0.00332151302202 + 0.00332335506873 + 0.00332519711544 + 0.00332703916216 + 0.00332888120887 + 0.00333072325558 + 0.00333256530229 + 0.003334407349 + 0.00333624939571 + 0.00333809144242 + 0.00333993348913 + 0.00334177553584 + 0.00334361758255 + 0.00334545962926 + 0.00334730167598 + 0.00334914372269 + 0.0033509857694 + 0.00335282781611 + 0.00335466986282 + 0.00335651190953 + 0.00335835395624 + 0.00336019600295 + 0.00336203804966 + 0.00336388009637 + 0.00336572214309 + 0.0033675641898 + 0.00336940623651 + 0.00337124828322 + 0.00337309032993 + 0.00337493237664 + 0.00337677442335 + 0.00337861647006 + 0.00338045851677 + 0.00338230056348 + 0.00338414261019 + 0.00338598465691 + 0.00338782670362 + 0.00338966875033 + 0.00339151079704 + 0.00339335284375 + 0.00339519489046 + 0.00339703693717 + 0.00339887898388 + 0.00340072103059 + 0.0034025630773 + 0.00340440512402 + 0.00340624717073 + 0.00340808921744 + 0.00340993126415 + 0.00341177331086 + 0.00341361535757 + 0.00341545740428 + 0.00341729945099 + 0.0034191414977 + 0.00342098354441 + 0.00342282559112 + 0.00342466763784 + 0.00342650968455 + 0.00342835173126 + 0.00343019377797 + 0.00343203582468 + 0.00343387787139 + 0.0034357199181 + 0.00343756196481 + 0.00343940401152 + 0.00344124605823 + 0.00344308810494 + 0.00344493015166 + 0.00344677219837 + 0.00344861424508 + 0.00345045629179 + 0.0034522983385 + 0.00345414038521 + 0.00345598243192 + 0.00345782447863 + 0.00345966652534 + 0.00346150857205 + 0.00346335061877 + 0.00346519266548 + 0.00346703471219 + 0.0034688767589 + 0.00347071880561 + 0.00347256085232 + 0.00347440289903 + 0.00347624494574 + 0.00347808699245 + 0.00347992903916 + 0.00348177108587 + 0.00348361313259 + 0.0034854551793 + 0.00348729722601 + 0.00348913927272 + 0.00349098131943 + 0.00349282336614 + 0.00349466541285 + 0.00349650745956 + 0.00349834950627 + 0.00350019155298 + 0.00350203359969 + 0.00350387564641 + 0.00350571769312 + 0.00350755973983 + 0.00350940178654 + 0.00351124383325 + 0.00351308587996 + 0.00351492792667 + 0.00351676997338 + 0.00351861202009 + 0.0035204540668 + 0.00352229611352 + 0.00352413816023 + 0.00352598020694 + 0.00352782225365 + 0.00352966430036 + 0.00353150634707 + 0.00353334839378 + 0.00353519044049 + 0.0035370324872 + 0.00353887453391 + 0.00354071658062 + 0.00354255862734 + 0.00354440067405 + 0.00354624272076 + 0.00354808476747 + 0.00354992681418 + 0.00355176886089 + 0.0035536109076 + 0.00355545295431 + 0.00355729500102 + 0.00355913704773 + 0.00356097909444 + 0.00356282114116 + 0.00356466318787 + 0.00356650523458 + 0.00356834728129 + 0.003570189328 + 0.00357203137471 + 0.00357387342142 + 0.00357571546813 + 0.00357755751484 + 0.00357939956155 + 0.00358124160827 + 0.00358308365498 + 0.00358492570169 + 0.0035867677484 + 0.00358860979511 + 0.00359045184182 + 0.00359229388853 + 0.00359413593524 + 0.00359597798195 + 0.00359782002866 + 0.00359966207537 + 0.00360150412209 + 0.0036033461688 + 0.00360518821551 + 0.00360703026222 + 0.00360887230893 + 0.00361071435564 + 0.00361255640235 + 0.00361439844906 + 0.00361624049577 + 0.00361808254248 + 0.00361992458919 + 0.00362176663591 + 0.00362360868262 + 0.00362545072933 + 0.00362729277604 + 0.00362913482275 + 0.00363097686946 + 0.00363281891617 + 0.00363466096288 + 0.00363650300959 + 0.0036383450563 + 0.00364018710302 + 0.00364202914973 + 0.00364387119644 + 0.00364571324315 + 0.00364755528986 + 0.00364939733657 + 0.00365123938328 + 0.00365308142999 + 0.0036549234767 + 0.00365676552341 + 0.00365860757012 + 0.00366044961684 + 0.00366229166355 + 0.00366413371026 + 0.00366597575697 + 0.00366781780368 + 0.00366965985039 + 0.0036715018971 + 0.00367334394381 + 0.00367518599052 + 0.00367702803723 + 0.00367887008395 + 0.00368071213066 + 0.00368255417737 + 0.00368439622408 + 0.00368623827079 + 0.0036880803175 + 0.00368992236421 + 0.00369176441092 + 0.00369360645763 + 0.00369544850434 + 0.00369729055105 + 0.00369913259777 + 0.00370097464448 + 0.00370281669119 + 0.0037046587379 + 0.00370650078461 + 0.00370834283132 + 0.00371018487803 + 0.00371202692474 + 0.00371386897145 + 0.00371571101816 + 0.00371755306487 + 0.00371939511159 + 0.0037212371583 + 0.00372307920501 + 0.00372492125172 + 0.00372676329843 + 0.00372860534514 + 0.00373044739185 + 0.00373228943856 + 0.00373413148527 + 0.00373597353198 + 0.0037378155787 + 0.00373965762541 + 0.00374149967212 + 0.00374334171883 + 0.00374518376554 + 0.00374702581225 + 0.00374886785896 + 0.00375070990567 + 0.00375255195238 + 0.00375439399909 + 0.0037562360458 + 0.00375807809252 + 0.00375992013923 + 0.00376176218594 + 0.00376360423265 + 0.00376544627936 + 0.00376728832607 + 0.00376913037278 + 0.00377097241949 + 0.0037728144662 + 0.00377465651291 + 0.00377649855962 + 0.00377834060634 + 0.00378018265305 + 0.00378202469976 + 0.00378386674647 + 0.00378570879318 + 0.00378755083989 + 0.0037893928866 + 0.00379123493331 + 0.00379307698002 + 0.00379491902673 + 0.00379676107345 + 0.00379860312016 + 0.00380044516687 + 0.00380228721358 + 0.00380412926029 + 0.003805971307 + 0.00380781335371 + 0.00380965540042 + 0.00381149744713 + 0.00381333949384 + 0.00381518154055 + 0.00381702358727 + 0.00381886563398 + 0.00382070768069 + 0.0038225497274 + 0.00382439177411 + 0.00382623382082 + 0.00382807586753 + 0.00382991791424 + 0.00383175996095 + 0.00383360200766 + 0.00383544405437 + 0.00383728610109 + 0.0038391281478 + 0.00384097019451 + 0.00384281224122 + 0.00384465428793 + 0.00384649633464 + 0.00384833838135 + 0.00385018042806 + 0.00385202247477 + 0.00385386452148 + 0.0038557065682 + 0.00385754861491 + 0.00385939066162 + 0.00386123270833 + 0.00386307475504 + 0.00386491680175 + 0.00386675884846 + 0.00386860089517 + 0.00387044294188 + 0.00387228498859 + 0.0038741270353 + 0.00387596908202 + 0.00387781112873 + 0.00387965317544 + 0.00388149522215 + 0.00388333726886 + 0.00388517931557 + 0.00388702136228 + 0.00388886340899 + 0.0038907054557 + 0.00389254750241 + 0.00389438954912 + 0.00389623159584 + 0.00389807364255 + 0.00389991568926 + 0.00390175773597 + 0.00390359978268 + 0.00390544182939 + 0.0039072838761 + 0.00390912592281 + 0.00391096796952 + 0.00391281001623 + 0.00391465206295 + 0.00391649410966 + 0.00391833615637 + 0.00392017820308 + 0.00392202024979 + 0.0039238622965 + 0.00392570434321 + 0.00392754638992 + 0.00392938843663 + 0.00393123048334 + 0.00393307253005 + 0.00393491457677 + 0.00393675662348 + 0.00393859867019 + 0.0039404407169 + 0.00394228276361 + 0.00394412481032 + 0.00394596685703 + 0.00394780890374 + 0.00394965095045 + 0.00395149299716 + 0.00395333504387 + 0.00395517709059 + 0.0039570191373 + 0.00395886118401 + 0.00396070323072 + 0.00396254527743 + 0.00396438732414 + 0.00396622937085 + 0.00396807141756 + 0.00396991346427 + 0.00397175551098 + 0.0039735975577 + 0.00397543960441 + 0.00397728165112 + 0.00397912369783 + 0.00398096574454 + 0.00398280779125 + 0.00398464983796 + 0.00398649188467 + 0.00398833393138 + 0.00399017597809 + 0.0039920180248 + 0.00399386007152 + 0.00399570211823 + 0.00399754416494 + 0.00399938621165 + 0.00400122825836 + 0.00400307030507 + 0.00400491235178 + 0.00400675439849 + 0.0040085964452 + 0.00401043849191 + 0.00401228053863 + 0.00401412258534 + 0.00401596463205 + 0.00401780667876 + 0.00401964872547 + 0.00402149077218 + 0.00402333281889 + 0.0040251748656 + 0.00402701691231 + 0.00402885895902 + 0.00403070100573 + 0.00403254305245 + 0.00403438509916 + 0.00403622714587 + 0.00403806919258 + 0.00403991123929 + 0.004041753286 + 0.00404359533271 + 0.00404543737942 + 0.00404727942613 + 0.00404912147284 + 0.00405096351955 + 0.00405280556627 + 0.00405464761298 + 0.00405648965969 + 0.0040583317064 + 0.00406017375311 + 0.00406201579982 + 0.00406385784653 + 0.00406569989324 + 0.00406754193995 + 0.00406938398666 + 0.00407122603338 + 0.00407306808009 + 0.0040749101268 + 0.00407675217351 + 0.00407859422022 + 0.00408043626693 + 0.00408227831364 + 0.00408412036035 + 0.00408596240706 + 0.00408780445377 + 0.00408964650048 + 0.0040914885472 + 0.00409333059391 + 0.00409517264062 + 0.00409701468733 + 0.00409885673404 + 0.00410069878075 + 0.00410254082746 + 0.00410438287417 + 0.00410622492088 + 0.00410806696759 + 0.0041099090143 + 0.00411175106102 + 0.00411359310773 + 0.00411543515444 + 0.00411727720115 + 0.00411911924786 + 0.00412096129457 + 0.00412280334128 + 0.00412464538799 + 0.0041264874347 + 0.00412832948141 + 0.00413017152813 + 0.00413201357484 + 0.00413385562155 + 0.00413569766826 + 0.00413753971497 + 0.00413938176168 + 0.00414122380839 + 0.0041430658551 + 0.00414490790181 + 0.00414674994852 + 0.00414859199523 + 0.00415043404195 + 0.00415227608866 + 0.00415411813537 + 0.00415596018208 + 0.00415780222879 + 0.0041596442755 + 0.00416148632221 + 0.00416332836892 + 0.00416517041563 + 0.00416701246234 + 0.00416885450905 + 0.00417069655577 + 0.00417253860248 + 0.00417438064919 + 0.0041762226959 + 0.00417806474261 + 0.00417990678932 + 0.00418174883603 + 0.00418359088274 + 0.00418543292945 + 0.00418727497616 + 0.00418911702288 + 0.00419095906959 + 0.0041928011163 + 0.00419464316301 + 0.00419648520972 + 0.00419832725643 + 0.00420016930314 + 0.00420201134985 + 0.00420385339656 + 0.00420569544327 + 0.00420753748998 + 0.0042093795367 + 0.00421122158341 + 0.00421306363012 + 0.00421490567683 + 0.00421674772354 + 0.00421858977025 + 0.00422043181696 + 0.00422227386367 + 0.00422411591038 + 0.00422595795709 + 0.0042278000038 + 0.00422964205052 + 0.00423148409723 + 0.00423332614394 + 0.00423516819065 + 0.00423701023736 + 0.00423885228407 + 0.00424069433078 + 0.00424253637749 + 0.0042443784242 + 0.00424622047091 + 0.00424806251763 + 0.00424990456434 + 0.00425174661105 + 0.00425358865776 + 0.00425543070447 + 0.00425727275118 + 0.00425911479789 + 0.0042609568446 + 0.00426279889131 + 0.00426464093802 + 0.00426648298473 + 0.00426832503145 + 0.00427016707816 + 0.00427200912487 + 0.00427385117158 + 0.00427569321829 + 0.004277535265 + 0.00427937731171 + 0.00428121935842 + 0.00428306140513 + 0.00428490345184 + 0.00428674549856 + 0.00428858754527 + 0.00429042959198 + 0.00429227163869 + 0.0042941136854 + 0.00429595573211 + 0.00429779777882 + 0.00429963982553 + 0.00430148187224 + 0.00430332391895 + 0.00430516596566 + 0.00430700801238 + 0.00430885005909 + 0.0043106921058 + 0.00431253415251 + 0.00431437619922 + 0.00431621824593 + 0.00431806029264 + 0.00431990233935 + 0.00432174438606 + 0.00432358643277 + 0.00432542847948 + 0.0043272705262 + 0.00432911257291 + 0.00433095461962 + 0.00433279666633 + 0.00433463871304 + 0.00433648075975 + 0.00433832280646 + 0.00434016485317 + 0.00434200689988 + 0.00434384894659 + 0.00434569099331 + 0.00434753304002 + 0.00434937508673 + 0.00435121713344 + 0.00435305918015 + 0.00435490122686 + 0.00435674327357 + 0.00435858532028 + 0.00436042736699 + 0.0043622694137 + 0.00436411146041 + 0.00436595350713 + 0.00436779555384 + 0.00436963760055 + 0.00437147964726 + 0.00437332169397 + 0.00437516374068 + 0.00437700578739 + 0.0043788478341 + 0.00438068988081 + 0.00438253192752 + 0.00438437397423 + 0.00438621602095 + 0.00438805806766 + 0.00438990011437 + 0.00439174216108 + 0.00439358420779 + 0.0043954262545 + 0.00439726830121 + 0.00439911034792 + 0.00440095239463 + 0.00440279444134 + 0.00440463648806 + 0.00440647853477 + 0.00440832058148 + 0.00441016262819 + 0.0044120046749 + 0.00441384672161 + 0.00441568876832 + 0.00441753081503 + 0.00441937286174 + 0.00442121490845 + 0.00442305695516 + 0.00442489900188 + 0.00442674104859 + 0.0044285830953 + 0.00443042514201 + 0.00443226718872 + 0.00443410923543 + 0.00443595128214 + 0.00443779332885 + 0.00443963537556 + 0.00444147742227 + 0.00444331946898 + 0.0044451615157 + 0.00444700356241 + 0.00444884560912 + 0.00445068765583 + 0.00445252970254 + 0.00445437174925 + 0.00445621379596 + 0.00445805584267 + 0.00445989788938 + 0.00446173993609 + 0.00446358198281 + 0.00446542402952 + 0.00446726607623 + 0.00446910812294 + 0.00447095016965 + 0.00447279221636 + 0.00447463426307 + 0.00447647630978 + 0.00447831835649 + 0.0044801604032 + 0.00448200244991 + 0.00448384449663 + 0.00448568654334 + 0.00448752859005 + 0.00448937063676 + 0.00449121268347 + 0.00449305473018 + 0.00449489677689 + 0.0044967388236 + 0.00449858087031 + 0.00450042291702 + 0.00450226496373 + 0.00450410701045 + 0.00450594905716 + 0.00450779110387 + 0.00450963315058 + 0.00451147519729 + 0.004513317244 + 0.00451515929071 + 0.00451700133742 + 0.00451884338413 + 0.00452068543084 + 0.00452252747756 + 0.00452436952427 + 0.00452621157098 + 0.00452805361769 + 0.0045298956644 + 0.00453173771111 + 0.00453357975782 + 0.00453542180453 + 0.00453726385124 + 0.00453910589795 + 0.00454094794466 + 0.00454278999138 + 0.00454463203809 + 0.0045464740848 + 0.00454831613151 + 0.00455015817822 + 0.00455200022493 + 0.00455384227164 + 0.00455568431835 + 0.00455752636506 + 0.00455936841177 + 0.00456121045848 + 0.0045630525052 + 0.00456489455191 + 0.00456673659862 + 0.00456857864533 + 0.00457042069204 + 0.00457226273875 + 0.00457410478546 + 0.00457594683217 + 0.00457778887888 + 0.00457963092559 + 0.00458147297231 + 0.00458331501902 + 0.00458515706573 + 0.00458699911244 + 0.00458884115915 + 0.00459068320586 + 0.00459252525257 + 0.00459436729928 + 0.00459620934599 + 0.0045980513927 + 0.00459989343941 + 0.00460173548613 + 0.00460357753284 + 0.00460541957955 + 0.00460726162626 + 0.00460910367297 + 0.00461094571968 + 0.00461278776639 + 0.0046146298131 + 0.00461647185981 + 0.00461831390652 + 0.00462015595324 + 0.00462199799995 + 0.00462384004666 + 0.00462568209337 + 0.00462752414008 + 0.00462936618679 + 0.0046312082335 + 0.00463305028021 + 0.00463489232692 + 0.00463673437363 + 0.00463857642034 + 0.00464041846706 + 0.00464226051377 + 0.00464410256048 + 0.00464594460719 + 0.0046477866539 + 0.00464962870061 + 0.00465147074732 + 0.00465331279403 + 0.00465515484074 + 0.00465699688745 + 0.00465883893416 + 0.00466068098088 + 0.00466252302759 + 0.0046643650743 + 0.00466620712101 + 0.00466804916772 + 0.00466989121443 + 0.00467173326114 + 0.00467357530785 + 0.00467541735456 + 0.00467725940127 + 0.00467910144799 + 0.0046809434947 + 0.00468278554141 + 0.00468462758812 + 0.00468646963483 + 0.00468831168154 + 0.00469015372825 + 0.00469199577496 + 0.00469383782167 + 0.00469567986838 + 0.00469752191509 + 0.00469936396181 + 0.00470120600852 + 0.00470304805523 + 0.00470489010194 + 0.00470673214865 + 0.00470857419536 + 0.00471041624207 + 0.00471225828878 + 0.00471410033549 + 0.0047159423822 + 0.00471778442891 + 0.00471962647563 + 0.00472146852234 + 0.00472331056905 + 0.00472515261576 + 0.00472699466247 + 0.00472883670918 + 0.00473067875589 + 0.0047325208026 + 0.00473436284931 + 0.00473620489602 + 0.00473804694274 + 0.00473988898945 + 0.00474173103616 + 0.00474357308287 + 0.00474541512958 + 0.00474725717629 + 0.004749099223 + 0.00475094126971 + 0.00475278331642 + 0.00475462536313 + 0.00475646740984 + 0.00475830945656 + 0.00476015150327 + 0.00476199354998 + 0.00476383559669 + 0.0047656776434 + 0.00476751969011 + 0.00476936173682 + 0.00477120378353 + 0.00477304583024 + 0.00477488787695 + 0.00477672992366 + 0.00477857197038 + 0.00478041401709 + 0.0047822560638 + 0.00478409811051 + 0.00478594015722 + 0.00478778220393 + 0.00478962425064 + 0.00479146629735 + 0.00479330834406 + 0.00479515039077 + 0.00479699243749 + 0.0047988344842 + 0.00480067653091 + 0.00480251857762 + 0.00480436062433 + 0.00480620267104 + 0.00480804471775 + 0.00480988676446 + 0.00481172881117 + 0.00481357085788 + 0.00481541290459 + 0.00481725495131 + 0.00481909699802 + 0.00482093904473 + 0.00482278109144 + 0.00482462313815 + 0.00482646518486 + 0.00482830723157 + 0.00483014927828 + 0.00483199132499 + 0.0048338333717 + 0.00483567541841 + 0.00483751746513 + 0.00483935951184 + 0.00484120155855 + 0.00484304360526 + 0.00484488565197 + 0.00484672769868 + 0.00484856974539 + 0.0048504117921 + 0.00485225383881 + 0.00485409588552 + 0.00485593793224 + 0.00485777997895 + 0.00485962202566 + 0.00486146407237 + 0.00486330611908 + 0.00486514816579 + 0.0048669902125 + 0.00486883225921 + 0.00487067430592 + 0.00487251635263 + 0.00487435839934 + 0.00487620044606 + 0.00487804249277 + 0.00487988453948 + 0.00488172658619 + 0.0048835686329 + 0.00488541067961 + 0.00488725272632 + 0.00488909477303 + 0.00489093681974 + 0.00489277886645 + 0.00489462091317 + 0.00489646295988 + 0.00489830500659 + 0.0049001470533 + 0.00490198910001 + 0.00490383114672 + 0.00490567319343 + 0.00490751524014 + 0.00490935728685 + 0.00491119933356 + 0.00491304138027 + 0.00491488342699 + 0.0049167254737 + 0.00491856752041 + 0.00492040956712 + 0.00492225161383 + 0.00492409366054 + 0.00492593570725 + 0.00492777775396 + 0.00492961980067 + 0.00493146184738 + 0.00493330389409 + 0.00493514594081 + 0.00493698798752 + 0.00493883003423 + 0.00494067208094 + 0.00494251412765 + 0.00494435617436 + 0.00494619822107 + 0.00494804026778 + 0.00494988231449 + 0.0049517243612 + 0.00495356640792 + 0.00495540845463 + 0.00495725050134 + 0.00495909254805 + 0.00496093459476 + 0.00496277664147 + 0.00496461868818 + 0.00496646073489 + 0.0049683027816 + 0.00497014482831 + 0.00497198687502 + 0.00497382892174 + 0.00497567096845 + 0.00497751301516 + 0.00497935506187 + 0.00498119710858 + 0.00498303915529 + 0.004984881202 + 0.00498672324871 + 0.00498856529542 + 0.00499040734213 + 0.00499224938884 + 0.00499409143556 + 0.00499593348227 + 0.00499777552898 + 0.00499961757569 + 0.00500145972391 + 0.00500330218855 + 0.00500514497663 + 0.00500698808821 + 0.00500883152334 + 0.00501067528209 + 0.00501251936449 + 0.00501436377063 + 0.00501620850054 + 0.00501805355429 + 0.00501989893194 + 0.00502174463354 + 0.00502359065914 + 0.00502543700881 + 0.00502728368261 + 0.00502913068058 + 0.00503097800279 + 0.00503282564929 + 0.00503467362014 + 0.0050365219154 + 0.00503837053512 + 0.00504021947936 + 0.00504206874818 + 0.00504391834163 + 0.00504576825978 + 0.00504761850267 + 0.00504946907037 + 0.00505131996294 + 0.00505317118042 + 0.00505502272288 + 0.00505687459037 + 0.00505872678295 + 0.00506057930068 + 0.00506243214362 + 0.00506428531181 + 0.00506613880533 + 0.00506799262422 + 0.00506984676855 + 0.00507170123837 + 0.00507355603373 + 0.0050754111547 + 0.00507726660133 + 0.00507912237368 + 0.00508097847181 + 0.00508283489577 + 0.00508469164562 + 0.00508654872141 + 0.00508840612322 + 0.00509026385108 + 0.00509212190507 + 0.00509398028523 + 0.00509583899162 + 0.00509769802431 + 0.00509955738335 + 0.00510141706879 + 0.00510327708069 + 0.00510513741912 + 0.00510699808412 + 0.00510885907576 + 0.00511072039409 + 0.00511258203917 + 0.00511444401106 + 0.00511630630981 + 0.00511816893548 + 0.00512003188813 + 0.00512189516782 + 0.00512375877461 + 0.00512562270854 + 0.00512748696969 + 0.0051293515581 + 0.00513121647383 + 0.00513308171695 + 0.0051349472875 + 0.00513681318556 + 0.00513867941116 + 0.00514054596438 + 0.00514241284526 + 0.00514428005387 + 0.00514614759027 + 0.00514801545451 + 0.00514988364664 + 0.00515175216673 + 0.00515362101484 + 0.00515549019102 + 0.00515735969532 + 0.00515922952782 + 0.00516109968856 + 0.0051629701776 + 0.005164840995 + 0.00516671214081 + 0.00516858361511 + 0.00517045541793 + 0.00517232754935 + 0.00517420000941 + 0.00517607279818 + 0.00517794591571 + 0.00517981936207 + 0.0051816931373 + 0.00518356724147 + 0.00518544167463 + 0.00518731643685 + 0.00518919152817 + 0.00519106694867 + 0.00519294269838 + 0.00519481877739 + 0.00519669518573 + 0.00519857192347 + 0.00520044899067 + 0.00520232638738 + 0.00520420411367 + 0.00520608216958 + 0.00520796055519 + 0.00520983927053 + 0.00521171831569 + 0.0052135976907 + 0.00521547739564 + 0.00521735743055 + 0.0052192377955 + 0.00522111849054 + 0.00522299951573 + 0.00522488087113 + 0.0052267625568 + 0.00522864457279 + 0.00523052691917 + 0.00523240959599 + 0.00523429260331 + 0.00523617594118 + 0.00523805960967 + 0.00523994360884 + 0.00524182793873 + 0.00524371259942 + 0.00524559759095 + 0.00524748291339 + 0.00524936856679 + 0.00525125455121 + 0.00525314086671 + 0.00525502751335 + 0.00525691449119 + 0.00525880180028 + 0.00526068944069 + 0.00526257741246 + 0.00526446571566 + 0.00526635435035 + 0.00526824331659 + 0.00527013261443 + 0.00527202224393 + 0.00527391220515 + 0.00527580249814 + 0.00527769312298 + 0.00527958407971 + 0.00528147536839 + 0.00528336698908 + 0.00528525894184 + 0.00528715122673 + 0.00528904384381 + 0.00529093679313 + 0.00529283007475 + 0.00529472368873 + 0.00529661763513 + 0.00529851191401 + 0.00530040652543 + 0.00530230146944 + 0.0053041967461 + 0.00530609235548 + 0.00530798829762 + 0.00530988457259 + 0.00531178118045 + 0.00531367812125 + 0.00531557539506 + 0.00531747300193 + 0.00531937094191 + 0.00532126921508 + 0.00532316782148 + 0.00532506676118 + 0.00532696603424 + 0.0053288656407 + 0.00533076558064 + 0.00533266585411 + 0.00533456646116 + 0.00533646740186 + 0.00533836867627 + 0.00534027028444 + 0.00534217222644 + 0.00534407450231 + 0.00534597711213 + 0.00534788005594 + 0.00534978333381 + 0.0053516869458 + 0.00535359089196 + 0.00535549517235 + 0.00535739978704 + 0.00535930473607 + 0.00536121001952 + 0.00536311563743 + 0.00536502158987 + 0.00536692787689 + 0.00536883449856 + 0.00537074145493 + 0.00537264874607 + 0.00537455637202 + 0.00537646433285 + 0.00537837262862 + 0.00538028125939 + 0.00538219022521 + 0.00538409952614 + 0.00538600916225 + 0.00538791913359 + 0.00538982944022 + 0.00539174008221 + 0.00539365105959 + 0.00539556237245 + 0.00539747402083 + 0.0053993860048 + 0.00540129832441 + 0.00540321097973 + 0.00540512397081 + 0.0054070372977 + 0.00540895096048 + 0.0054108649592 + 0.00541277929391 + 0.00541469396468 + 0.00541660897157 + 0.00541852431463 + 0.00542043999393 + 0.00542235600951 + 0.00542427236145 + 0.0054261890498 + 0.00542810607463 + 0.00543002343597 + 0.00543194113391 + 0.0054338591685 + 0.00543577753979 + 0.00543769624784 + 0.00543961529272 + 0.00544153467449 + 0.00544345439319 + 0.0054453744489 + 0.00544729484167 + 0.00544921557156 + 0.00545113663863 + 0.00545305804294 + 0.00545497978454 + 0.00545690186351 + 0.00545882427988 + 0.00546074703374 + 0.00546267012513 + 0.00546459355411 + 0.00546651732075 + 0.00546844142509 + 0.00547036586721 + 0.00547229064716 + 0.00547421576501 + 0.0054761412208 + 0.0054780670146 + 0.00547999314647 + 0.00548191961646 + 0.00548384642464 + 0.00548577357107 + 0.00548770105581 + 0.00548962887891 + 0.00549155704043 + 0.00549348554044 + 0.005495414379 + 0.00549734355615 + 0.00549927307197 + 0.00550120292651 + 0.00550313311983 + 0.00550506365199 + 0.00550699452305 + 0.00550892573307 + 0.00551085728211 + 0.00551278917023 + 0.00551472139749 + 0.00551665396394 + 0.00551858686965 + 0.00552052011468 + 0.00552245369908 + 0.00552438762293 + 0.00552632188626 + 0.00552825648915 + 0.00553019143166 + 0.00553212671384 + 0.00553406233575 + 0.00553599829746 + 0.00553793459902 + 0.0055398712405 + 0.00554180822195 + 0.00554374554342 + 0.005545683205 + 0.00554762120672 + 0.00554955954865 + 0.00555149823086 + 0.00555343725339 + 0.00555537661632 + 0.0055573163197 + 0.00555925636359 + 0.00556119674804 + 0.00556313747313 + 0.00556507853891 + 0.00556701994543 + 0.00556896169277 + 0.00557090378097 + 0.0055728462101 + 0.00557478898022 + 0.00557673209139 + 0.00557867554367 + 0.00558061933712 + 0.00558256347179 + 0.00558450794775 + 0.00558645276506 + 0.00558839792378 + 0.00559034342397 + 0.00559228926568 + 0.00559423544898 + 0.00559618197393 + 0.00559812884059 + 0.00560007604901 + 0.00560202359926 + 0.0056039714914 + 0.00560591972549 + 0.00560786830159 + 0.00560981721975 + 0.00561176648004 + 0.00561371608252 + 0.00561566602724 + 0.00561761631428 + 0.00561956694368 + 0.00562151791551 + 0.00562346922983 + 0.00562542088669 + 0.00562737288617 + 0.00562932522831 + 0.00563127791318 + 0.00563323094085 + 0.00563518431136 + 0.00563713802478 + 0.00563909208117 + 0.00564104648059 + 0.00564300122309 + 0.00564495630875 + 0.00564691173762 + 0.00564886750977 + 0.00565082362524 + 0.0056527800841 + 0.00565473688641 + 0.00565669403224 + 0.00565865152164 + 0.00566060935467 + 0.00566256753139 + 0.00566452605187 + 0.00566648491616 + 0.00566844412432 + 0.00567040367642 + 0.00567236357251 + 0.00567432381266 + 0.00567628439692 + 0.00567824532536 + 0.00568020659804 + 0.00568216821501 + 0.00568413017633 + 0.00568609248208 + 0.0056880551323 + 0.00569001812706 + 0.00569198146642 + 0.00569394515044 + 0.00569590917918 + 0.0056978735527 + 0.00569983827107 + 0.00570180333433 + 0.00570376874255 + 0.0057057344958 + 0.00570770059413 + 0.0057096670376 + 0.00571163382628 + 0.00571360096022 + 0.00571556843949 + 0.00571753626415 + 0.00571950443425 + 0.00572147294986 + 0.00572344181103 + 0.00572541101784 + 0.00572738057033 + 0.00572935046858 + 0.00573132071263 + 0.00573329130256 + 0.00573526223842 + 0.00573723352027 + 0.00573920514818 + 0.0057411771222 + 0.00574314944239 + 0.00574512210882 + 0.00574709512155 + 0.00574906848064 + 0.00575104218614 + 0.00575301623812 + 0.00575499063665 + 0.00575696538177 + 0.00575894047355 + 0.00576091591206 + 0.00576289169735 + 0.00576486782949 + 0.00576684430853 + 0.00576882113453 + 0.00577079830757 + 0.00577277582769 + 0.00577475369496 + 0.00577673190944 + 0.00577871047119 + 0.00578068938027 + 0.00578266863674 + 0.00578464824067 + 0.00578662819211 + 0.00578860849113 + 0.00579058913778 + 0.00579257013214 + 0.00579455147425 + 0.00579653316418 + 0.00579851520199 + 0.00580049758774 + 0.0058024803215 + 0.00580446340332 + 0.00580644683326 + 0.00580843061139 + 0.00581041473777 + 0.00581239921246 + 0.00581438403552 + 0.005816369207 + 0.00581835472698 + 0.00582034059551 + 0.00582232681266 + 0.00582431337848 + 0.00582630029304 + 0.0058282875564 + 0.00583027516861 + 0.00583226312975 + 0.00583425143987 + 0.00583624009903 + 0.00583822910729 + 0.00584021846472 + 0.00584220817138 + 0.00584419822733 + 0.00584618863262 + 0.00584817938733 + 0.0058501704915 + 0.00585216194522 + 0.00585415374852 + 0.00585614590148 + 0.00585813840416 + 0.00586013125662 + 0.00586212445892 + 0.00586411801112 + 0.00586611191328 + 0.00586810616547 + 0.00587010076774 + 0.00587209572017 + 0.0058740910228 + 0.0058760866757 + 0.00587808267893 + 0.00588007903256 + 0.00588207573664 + 0.00588407279123 + 0.00588607019641 + 0.00588806795223 + 0.00589006605874 + 0.00589206451602 + 0.00589406332412 + 0.00589606248311 + 0.00589806199305 + 0.00590006185399 + 0.00590206206601 + 0.00590406262916 + 0.0059060635435 + 0.0059080648091 + 0.00591006642601 + 0.00591206839431 + 0.00591407071404 + 0.00591607338528 + 0.00591807640808 + 0.0059200797825 + 0.00592208350862 + 0.00592408758648 + 0.00592609201615 + 0.0059280967977 + 0.00593010193118 + 0.00593210741666 + 0.00593411325419 + 0.00593611944385 + 0.00593812598568 + 0.00594013287976 + 0.00594214012615 + 0.0059441477249 + 0.00594615567608 + 0.00594816397975 + 0.00595017263598 + 0.00595218164482 + 0.00595419100633 + 0.00595620072059 + 0.00595821078764 + 0.00596022120756 + 0.0059622319804 + 0.00596424310623 + 0.0059662545851 + 0.00596826641709 + 0.00597027860225 + 0.00597229114064 + 0.00597430403233 + 0.00597631727737 + 0.00597833087584 + 0.00598034482779 + 0.00598235913328 + 0.00598437379238 + 0.00598638880515 + 0.00598840417164 + 0.00599041989193 + 0.00599243596608 + 0.00599445239414 + 0.00599646917618 + 0.00599848631226 + 0.00600050380245 + 0.0060025216468 + 0.00600453984538 + 0.00600655839825 + 0.00600857730547 + 0.0060105965671 + 0.00601261618321 + 0.00601463615386 + 0.00601665647911 + 0.00601867715902 + 0.00602069819366 + 0.00602271958309 + 0.00602474132737 + 0.00602676342655 + 0.00602878588072 + 0.00603080868992 + 0.00603283185421 + 0.00603485537367 + 0.00603687924836 + 0.00603890347833 + 0.00604092806365 + 0.00604295300438 + 0.00604497830058 + 0.00604700395232 + 0.00604902995965 + 0.00605105632265 + 0.00605308304137 + 0.00605511011588 + 0.00605713754623 + 0.0060591653325 + 0.00606119347473 + 0.00606322197301 + 0.00606525082738 + 0.00606728003791 + 0.00606930960466 + 0.0060713395277 + 0.00607336980708 + 0.00607540044288 + 0.00607743143515 + 0.00607946278396 + 0.00608149448936 + 0.00608352655143 + 0.00608555897022 + 0.00608759174579 + 0.00608962487821 + 0.00609165836755 + 0.00609369221386 + 0.0060957264172 + 0.00609776097765 + 0.00609979589525 + 0.00610183117008 + 0.0061038668022 + 0.00610590279167 + 0.00610793913855 + 0.00610997584291 + 0.00611201290481 + 0.00611405032431 + 0.00611608810147 + 0.00611812623635 + 0.00612016472903 + 0.00612220357956 + 0.00612424278801 + 0.00612628235443 + 0.00612832227889 + 0.00613036256146 + 0.00613240320219 + 0.00613444420116 + 0.00613648555841 + 0.00613852727402 + 0.00614056934805 + 0.00614261178056 + 0.00614465457162 + 0.00614669772128 + 0.00614874122961 + 0.00615078509667 + 0.00615282932253 + 0.00615487390725 + 0.00615691885089 + 0.00615896415351 + 0.00616100981519 + 0.00616305583597 + 0.00616510221593 + 0.00616714895512 + 0.00616919605361 + 0.00617124351147 + 0.00617329132875 + 0.00617533950553 + 0.00617738804185 + 0.00617943693779 + 0.00618148619341 + 0.00618353580877 + 0.00618558578394 + 0.00618763611897 + 0.00618968681394 + 0.00619173786889 + 0.00619378928391 + 0.00619584105905 + 0.00619789319437 + 0.00619994568994 + 0.00620199854582 + 0.00620405176207 + 0.00620610533876 + 0.00620815927595 + 0.00621021357371 + 0.00621226823209 + 0.00621432325116 + 0.00621637863099 + 0.00621843437163 + 0.00622049047315 + 0.00622254693561 + 0.00622460375909 + 0.00622666094363 + 0.0062287184893 + 0.00623077639618 + 0.00623283466431 + 0.00623489329377 + 0.00623695228461 + 0.00623901163691 + 0.00624107135072 + 0.00624313142611 + 0.00624519186313 + 0.00624725266187 + 0.00624931382237 + 0.0062513753447 + 0.00625343722893 + 0.00625549947511 + 0.00625756208332 + 0.00625962505362 + 0.00626168838606 + 0.00626375208072 + 0.00626581613765 + 0.00626788055692 + 0.0062699453386 + 0.00627201048275 + 0.00627407598942 + 0.00627614185869 + 0.00627820809062 + 0.00628027468527 + 0.0062823416427 + 0.00628440896299 + 0.00628647664619 + 0.00628854469236 + 0.00629061310158 + 0.00629268187389 + 0.00629475100938 + 0.0062968205081 + 0.00629889037011 + 0.00630096059549 + 0.00630303118428 + 0.00630510213656 + 0.0063071734524 + 0.00630924513184 + 0.00631131717497 + 0.00631338958184 + 0.00631546235251 + 0.00631753548705 + 0.00631960898553 + 0.006321682848 + 0.00632375707454 + 0.0063258316652 + 0.00632790662005 + 0.00632998193915 + 0.00633205762257 + 0.00633413367038 + 0.00633621008262 + 0.00633828685938 + 0.00634036400071 + 0.00634244150667 + 0.00634451937734 + 0.00634659761277 + 0.00634867621303 + 0.00635075517819 + 0.0063528345083 + 0.00635491420343 + 0.00635699426365 + 0.00635907468902 + 0.0063611554796 + 0.00636323663545 + 0.00636531815665 + 0.00636740004326 + 0.00636948229534 + 0.00637156491295 + 0.00637364789615 + 0.00637573124503 + 0.00637781495962 + 0.00637989904001 + 0.00638198348626 + 0.00638406829842 + 0.00638615347657 + 0.00638823902076 + 0.00639032493107 + 0.00639241120755 + 0.00639449785027 + 0.0063965848593 + 0.0063986722347 + 0.00640075997653 + 0.00640284808486 + 0.00640493655975 + 0.00640702540127 + 0.00640911460948 + 0.00641120418445 + 0.00641329412623 + 0.0064153844349 + 0.00641747511052 + 0.00641956615315 + 0.00642165756285 + 0.0064237493397 + 0.00642584148376 + 0.00642793399508 + 0.00643002687374 + 0.0064321201198 + 0.00643421373333 + 0.00643630771438 + 0.00643840206303 + 0.00644049677933 + 0.00644259186336 + 0.00644468731517 + 0.00644678313484 + 0.00644887932242 + 0.00645097587798 + 0.00645307280159 + 0.0064551700933 + 0.00645726775319 + 0.00645936578132 + 0.00646146417776 + 0.00646356294256 + 0.00646566207579 + 0.00646776157752 + 0.00646986144782 + 0.00647196168674 + 0.00647406229435 + 0.00647616327072 + 0.00647826461591 + 0.00648036632999 + 0.00648246841302 + 0.00648457086506 + 0.00648667368618 + 0.00648877687645 + 0.00649088043593 + 0.00649298436468 + 0.00649508866277 + 0.00649719333027 + 0.00649929836724 + 0.00650140377374 + 0.00650350954984 + 0.0065056156956 + 0.00650772221109 + 0.00650982909637 + 0.00651193635152 + 0.00651404397658 + 0.00651615197164 + 0.00651826033674 + 0.00652036907197 + 0.00652247817738 + 0.00652458765304 + 0.00652669749901 + 0.00652880771536 + 0.00653091830215 + 0.00653302925945 + 0.00653514058733 + 0.00653725228584 + 0.00653936435505 + 0.00654147679504 + 0.00654358960586 + 0.00654570278757 + 0.00654781634025 + 0.00654993026396 + 0.00655204455877 + 0.00655415922473 + 0.00655627426192 + 0.00655838967039 + 0.00656050545022 + 0.00656262160148 + 0.00656473812421 + 0.0065668550185 + 0.0065689722844 + 0.00657108992198 + 0.00657320793131 + 0.00657532631245 + 0.00657744506547 + 0.00657956419043 + 0.00658168368739 + 0.00658380355643 + 0.00658592379761 + 0.00658804441099 + 0.00659016539664 + 0.00659228675462 + 0.006594408485 + 0.00659653058784 + 0.00659865306322 + 0.00660077591119 + 0.00660289913182 + 0.00660502272517 + 0.00660714669132 + 0.00660927103033 + 0.00661139574226 + 0.00661352082717 + 0.00661564628514 + 0.00661777211623 + 0.0066198983205 + 0.00662202489802 + 0.00662415184886 + 0.00662627917308 + 0.00662840687075 + 0.00663053494192 + 0.00663266338668 + 0.00663479220508 + 0.00663692139718 + 0.00663905096306 + 0.00664118090278 + 0.00664331121641 + 0.00664544190401 + 0.00664757296564 + 0.00664970440138 + 0.00665183621129 + 0.00665396839543 + 0.00665610095387 + 0.00665823388667 + 0.00666036719391 + 0.00666250087564 + 0.00666463493194 + 0.00666676936286 + 0.00666890416848 + 0.00667103934885 + 0.00667317490406 + 0.00667531083415 + 0.0066774471392 + 0.00667958381928 + 0.00668172087444 + 0.00668385830476 + 0.0066859961103 + 0.00668813429112 + 0.0066902728473 + 0.0066924117789 + 0.00669455108598 + 0.00669669076861 + 0.00669883082685 + 0.00670097126078 + 0.00670311207046 + 0.00670525325595 + 0.00670739481732 + 0.00670953675463 + 0.00671167906796 + 0.00671382175736 + 0.00671596482291 + 0.00671810826467 + 0.00672025208271 + 0.00672239627708 + 0.00672454084787 + 0.00672668579513 + 0.00672883111892 + 0.00673097681933 + 0.00673312289641 + 0.00673526935022 + 0.00673741618084 + 0.00673956338833 + 0.00674171097276 + 0.00674385893419 + 0.00674600727269 + 0.00674815598833 + 0.00675030508117 + 0.00675245455127 + 0.00675460439871 + 0.00675675462355 + 0.00675890522586 + 0.0067610562057 + 0.00676320756314 + 0.00676535929824 + 0.00676751141108 + 0.00676966390171 + 0.00677181677021 + 0.00677397001664 + 0.00677612364107 + 0.00677827764356 + 0.00678043202418 + 0.00678258678299 + 0.00678474192007 + 0.00678689743548 + 0.00678905332928 + 0.00679120960155 + 0.00679336625234 + 0.00679552328173 + 0.00679768068978 + 0.00679983847655 + 0.00680199664212 + 0.00680415518655 + 0.00680631410991 + 0.00680847341226 + 0.00681063309368 + 0.00681279315421 + 0.00681495359395 + 0.00681711441294 + 0.00681927561126 + 0.00682143718897 + 0.00682359914614 + 0.00682576148284 + 0.00682792419913 + 0.00683008729507 + 0.00683225077075 + 0.00683441462622 + 0.00683657886155 + 0.0068387434768 + 0.00684090847205 + 0.00684307384735 + 0.00684523960279 + 0.00684740573841 + 0.0068495722543 + 0.00685173915051 + 0.00685390642711 + 0.00685607408418 + 0.00685824212177 + 0.00686041053996 + 0.0068625793388 + 0.00686474851837 + 0.00686691807874 + 0.00686908801997 + 0.00687125834213 + 0.00687342904528 + 0.00687560012949 + 0.00687777159483 + 0.00687994344137 + 0.00688211566916 + 0.00688428827829 + 0.00688646126882 + 0.0068886346408 + 0.00689080839432 + 0.00689298252943 + 0.00689515704621 + 0.00689733194472 + 0.00689950722503 + 0.0069016828872 + 0.0069038589313 + 0.00690603535741 + 0.00690821216558 + 0.00691038935588 + 0.00691256692838 + 0.00691474488315 + 0.00691692322026 + 0.00691910193976 + 0.00692128104174 + 0.00692346052625 + 0.00692564039337 + 0.00692782064315 + 0.00693000127567 + 0.006932182291 + 0.0069343636892 + 0.00693654547034 + 0.00693872763448 + 0.0069409101817 + 0.00694309311206 + 0.00694527642562 + 0.00694746012247 + 0.00694964420265 + 0.00695182866624 + 0.00695401351332 + 0.00695619874393 + 0.00695838435816 + 0.00696057035607 + 0.00696275673772 + 0.00696494350319 + 0.00696713065253 + 0.00696931818583 + 0.00697150610314 + 0.00697369440454 + 0.00697588309009 + 0.00697807215985 + 0.00698026161391 + 0.00698245145231 + 0.00698464167514 + 0.00698683228245 + 0.00698902327432 + 0.00699121465081 + 0.00699340641199 + 0.00699559855794 + 0.0069977910887 + 0.00699998400436 + 0.00700217730498 + 0.00700437099063 + 0.00700656506138 + 0.00700875951729 + 0.00701095435843 + 0.00701314958487 + 0.00701534519668 + 0.00701754119392 + 0.00701973757666 + 0.00702193434497 + 0.00702413149892 + 0.00702632903858 + 0.007028526964 + 0.00703072527527 + 0.00703292397245 + 0.0070351230556 + 0.00703732252479 + 0.0070395223801 + 0.00704172262158 + 0.00704392324932 + 0.00704612426336 + 0.00704832566379 + 0.00705052745067 + 0.00705272962407 + 0.00705493218405 + 0.00705713513069 + 0.00705933846405 + 0.0070615421842 + 0.00706374629121 + 0.00706595078514 + 0.00706815566607 + 0.00707036093406 + 0.00707256658917 + 0.00707477263149 + 0.00707697906107 + 0.00707918587798 + 0.00708139308229 + 0.00708360067408 + 0.0070858086534 + 0.00708801702032 + 0.00709022577492 + 0.00709243491726 + 0.00709464444741 + 0.00709685436544 + 0.00709906467141 + 0.0071012753654 + 0.00710348644747 + 0.00710569791769 + 0.00710790977612 + 0.00711012202285 + 0.00711233465792 + 0.00711454768142 + 0.00711676109342 + 0.00711897489397 + 0.00712118908314 + 0.00712340366101 + 0.00712561862765 + 0.00712783398312 + 0.00713004972749 + 0.00713226586082 + 0.0071344823832 + 0.00713669929468 + 0.00713891659533 + 0.00714113428522 + 0.00714335236442 + 0.007145570833 + 0.00714778969103 + 0.00715000893858 + 0.0071522285757 + 0.00715444860248 + 0.00715666901898 + 0.00715888982527 + 0.00716111102141 + 0.00716333260748 + 0.00716555458354 + 0.00716777694967 + 0.00716999970593 + 0.00717222285238 + 0.00717444638911 + 0.00717667031617 + 0.00717889463363 + 0.00718111934157 + 0.00718334444005 + 0.00718556992914 + 0.00718779580891 + 0.00719002207943 + 0.00719224874077 + 0.00719447579299 + 0.00719670323616 + 0.00719893107035 + 0.00720115929564 + 0.00720338791208 + 0.00720561691976 + 0.00720784631873 + 0.00721007610906 + 0.00721230629083 + 0.0072145368641 + 0.00721676782895 + 0.00721899918543 + 0.00722123093362 + 0.0072234630736 + 0.00722569560541 + 0.00722792852915 + 0.00723016184486 + 0.00723239555263 + 0.00723462965253 + 0.00723686414461 + 0.00723909902895 + 0.00724133430562 + 0.00724356997469 + 0.00724580603623 + 0.0072480424903 + 0.00725027933697 + 0.00725251657632 + 0.0072547542084 + 0.0072569922333 + 0.00725923065108 + 0.00726146946181 + 0.00726370866555 + 0.00726594826239 + 0.00726818825237 + 0.00727042863559 + 0.00727266941209 + 0.00727491058196 + 0.00727715214526 + 0.00727939410206 + 0.00728163645243 + 0.00728387919644 + 0.00728612233416 + 0.00728836586566 + 0.007290609791 + 0.00729285411026 + 0.0072950988235 + 0.00729734393079 + 0.00729958943221 + 0.00730183532782 + 0.0073040816177 + 0.0073063283019 + 0.0073085753805 + 0.00731082285358 + 0.00731307072119 + 0.0073153189834 + 0.0073175676403 + 0.00731981669194 + 0.0073220661384 + 0.00732431597974 + 0.00732656621603 + 0.00732881684735 + 0.00733106787376 + 0.00733331929534 + 0.00733557111214 + 0.00733782332425 + 0.00734007593172 + 0.00734232893464 + 0.00734458233307 + 0.00734683612707 + 0.00734909031672 + 0.00735134490209 + 0.00735359988325 + 0.00735585526026 + 0.00735811103319 + 0.00736036720213 + 0.00736262376713 + 0.00736488072826 + 0.0073671380856 + 0.0073693958392 + 0.00737165398916 + 0.00737391253552 + 0.00737617147837 + 0.00737843081777 + 0.00738069055379 + 0.0073829506865 + 0.00738521121598 + 0.00738747214228 + 0.00738973346548 + 0.00739199518566 + 0.00739425730287 + 0.00739651981719 + 0.00739878272869 + 0.00740104603744 + 0.0074033097435 + 0.00740557384696 + 0.00740783834787 + 0.00741010324631 + 0.00741236854235 + 0.00741463423605 + 0.00741690032749 + 0.00741916681674 + 0.00742143370387 + 0.00742370098894 + 0.00742596867202 + 0.0074282367532 + 0.00743050523253 + 0.00743277411008 + 0.00743504338593 + 0.00743731306015 + 0.0074395831328 + 0.00744185360396 + 0.0074441244737 + 0.00744639574208 + 0.00744866740917 + 0.00745093947505 + 0.00745321193979 + 0.00745548480345 + 0.0074577580661 + 0.00746003172783 + 0.00746230578869 + 0.00746458024875 + 0.00746685510809 + 0.00746913036678 + 0.00747140602488 + 0.00747368208247 + 0.00747595853961 + 0.00747823539638 + 0.00748051265285 + 0.00748279030908 + 0.00748506836515 + 0.00748734682113 + 0.00748962567709 + 0.00749190493309 + 0.00749418458921 + 0.00749646464552 + 0.00749874510208 + 0.00750102595898 + 0.00750330721627 + 0.00750558887404 + 0.00750787093234 + 0.00751015339125 + 0.00751243625084 + 0.00751471951119 + 0.00751700317235 + 0.0075192872344 + 0.00752157169742 + 0.00752385656147 + 0.00752614182662 + 0.00752842749294 + 0.0075307135605 + 0.00753300002938 + 0.00753528689964 + 0.00753757417136 + 0.0075398618446 + 0.00754214991944 + 0.00754443839594 + 0.00754672727418 + 0.00754901655423 + 0.00755130623615 + 0.00755359632003 + 0.00755588680592 + 0.0075581776939 + 0.00756046898404 + 0.00756276067641 + 0.00756505277108 + 0.00756734526812 + 0.0075696381676 + 0.0075719314696 + 0.00757422517418 + 0.00757651928141 + 0.00757881379137 + 0.00758110870413 + 0.00758340401975 + 0.00758569973831 + 0.00758799585987 + 0.00759029238452 + 0.00759258931231 + 0.00759488664333 + 0.00759718437763 + 0.0075994825153 + 0.00760178105639 + 0.007604080001 + 0.00760637934917 + 0.00760867910099 + 0.00761097925653 + 0.00761327981585 + 0.00761558077903 + 0.00761788214614 + 0.00762018391725 + 0.00762248609243 + 0.00762478867174 + 0.00762709165528 + 0.00762939504309 + 0.00763169883526 + 0.00763400303185 + 0.00763630763294 + 0.0076386126386 + 0.00764091804889 + 0.0076432238639 + 0.00764553008368 + 0.00764783670831 + 0.00765014373787 + 0.00765245117242 + 0.00765475901204 + 0.00765706725679 + 0.00765937590674 + 0.00766168496198 + 0.00766399442256 + 0.00766630428856 + 0.00766861456006 + 0.00767092523712 + 0.00767323631981 + 0.0076755478082 + 0.00767785970237 + 0.00768017200239 + 0.00768248470833 + 0.00768479782026 + 0.00768711133825 + 0.00768942526237 + 0.00769173959269 + 0.00769405432929 + 0.00769636947224 + 0.0076986850216 + 0.00770100097745 + 0.00770331733987 + 0.00770563410891 + 0.00770795128466 + 0.00771026886718 + 0.00771258685655 + 0.00771490525283 + 0.0077172240561 + 0.00771954326644 + 0.0077218628839 + 0.00772418290857 + 0.00772650334052 + 0.0077288241798 + 0.00773114542651 + 0.00773346708071 + 0.00773578914246 + 0.00773811161185 + 0.00774043448894 + 0.00774275777381 + 0.00774508146653 + 0.00774740556716 + 0.00774973007578 + 0.00775205499247 + 0.00775438031729 + 0.00775670605031 + 0.00775903219161 + 0.00776135874126 + 0.00776368569933 + 0.00776601306589 + 0.00776834084101 + 0.00777066902477 + 0.00777299761723 + 0.00777532661848 + 0.00777765602857 + 0.00777998584759 + 0.0077823160756 + 0.00778464671268 + 0.00778697775889 + 0.00778930921431 + 0.00779164107902 + 0.00779397335307 + 0.00779630603656 + 0.00779863912954 + 0.00780097263208 + 0.00780330654427 + 0.00780564086617 + 0.00780797559786 + 0.0078103107394 + 0.00781264629087 + 0.00781498225234 + 0.00781731862388 + 0.00781965540557 + 0.00782199259747 + 0.00782433019967 + 0.00782666821222 + 0.0078290066352 + 0.00783134546869 + 0.00783368471275 + 0.00783602436747 + 0.0078383644329 + 0.00784070490913 + 0.00784304579622 + 0.00784538709425 + 0.00784772880328 + 0.0078500709234 + 0.00785241345467 + 0.00785475639717 + 0.00785709975097 + 0.00785944351613 + 0.00786178769274 + 0.00786413228086 + 0.00786647728057 + 0.00786882269194 + 0.00787116851504 + 0.00787351474994 + 0.00787586139671 + 0.00787820845544 + 0.00788055592619 + 0.00788290380902 + 0.00788525210403 + 0.00788760081127 + 0.00788994993082 + 0.00789229946275 + 0.00789464940714 + 0.00789699976405 + 0.00789935053357 + 0.00790170171575 + 0.00790405331068 + 0.00790640531843 + 0.00790875773906 + 0.00791111057266 + 0.00791346381929 + 0.00791581747903 + 0.00791817155194 + 0.00792052603811 + 0.0079228809376 + 0.00792523625049 + 0.00792759197685 + 0.00792994811675 + 0.00793230467027 + 0.00793466163747 + 0.00793701901843 + 0.00793937681323 + 0.00794173502193 + 0.0079440936446 + 0.00794645268133 + 0.00794881213218 + 0.00795117199723 + 0.00795353227654 + 0.0079558929702 + 0.00795825407827 + 0.00796061560082 + 0.00796297753794 + 0.00796533988969 + 0.00796770265614 + 0.00797006583737 + 0.00797242943345 + 0.00797479344446 + 0.00797715787046 + 0.00797952271153 + 0.00798188796774 + 0.00798425363917 + 0.00798661972588 + 0.00798898622796 + 0.00799135314547 + 0.00799372047848 + 0.00799608822708 + 0.00799845639132 + 0.0080008249713 + 0.00800319396707 + 0.00800556337871 + 0.0080079332063 + 0.0080103034499 + 0.0080126741096 + 0.00801504518545 + 0.00801741667755 + 0.00801978858595 + 0.00802216091074 + 0.00802453365198 + 0.00802690680975 + 0.00802928038413 + 0.00803165437517 + 0.00803402878297 + 0.00803640360759 + 0.0080387788491 + 0.00804115450758 + 0.0080435305831 + 0.00804590707574 + 0.00804828398556 + 0.00805066131264 + 0.00805303905706 + 0.00805541721888 + 0.00805779579819 + 0.00806017479505 + 0.00806255420953 + 0.00806493404172 + 0.00806731429168 + 0.00806969495948 + 0.00807207604521 + 0.00807445754893 + 0.00807683947072 + 0.00807922181065 + 0.00808160456879 + 0.00808398774522 + 0.00808637134001 + 0.00808875535323 + 0.00809113978496 + 0.00809352463528 + 0.00809590990424 + 0.00809829559194 + 0.00810068169844 + 0.00810306822381 + 0.00810545516813 + 0.00810784253147 + 0.00811023031391 + 0.00811261851552 + 0.00811500713637 + 0.00811739617653 + 0.00811978563609 + 0.00812217551511 + 0.00812456581367 + 0.00812695653184 + 0.00812934766969 + 0.0081317392273 + 0.00813413120475 + 0.0081365236021 + 0.00813891641943 + 0.00814130965681 + 0.00814370331432 + 0.00814609739203 + 0.00814849189001 + 0.00815088680835 + 0.0081532821471 + 0.00815567790635 + 0.00815807408617 + 0.00816047068663 + 0.00816286770781 + 0.00816526514978 + 0.00816766301262 + 0.0081700612964 + 0.00817246000119 + 0.00817485912706 + 0.0081772586741 + 0.00817965864237 + 0.00818205903194 + 0.0081844598429 + 0.00818686107532 + 0.00818926272927 + 0.00819166480482 + 0.00819406730205 + 0.00819647022104 + 0.00819887356185 + 0.00820127732456 + 0.00820368150924 + 0.00820608611597 + 0.00820849114483 + 0.00821089659588 + 0.00821330246921 + 0.00821570876487 + 0.00821811548296 + 0.00822052262354 + 0.00822293018669 + 0.00822533817248 + 0.00822774658099 + 0.00823015541229 + 0.00823256466645 + 0.00823497434355 + 0.00823738444366 + 0.00823979496686 + 0.00824220591322 + 0.00824461728282 + 0.00824702907573 + 0.00824944129202 + 0.00825185393177 + 0.00825426699505 + 0.00825668048194 + 0.00825909439251 + 0.00826150872684 + 0.008263923485 + 0.00826633866706 + 0.0082687542731 + 0.0082711703032 + 0.00827358675742 + 0.00827600363584 + 0.00827842093855 + 0.0082808386656 + 0.00828325681708 + 0.00828567539306 + 0.00828809439362 + 0.00829051381883 + 0.00829293366876 + 0.00829535394348 + 0.00829777464309 + 0.00830019576764 + 0.00830261731721 + 0.00830503929188 + 0.00830746169172 + 0.0083098845168 + 0.00831230776721 + 0.00831473144302 + 0.00831715554429 + 0.00831958007111 + 0.00832200502355 + 0.00832443040168 + 0.00832685620558 + 0.00832928243533 + 0.00833170909099 + 0.00833413617265 + 0.00833656368037 + 0.00833899161424 + 0.00834141997433 + 0.00834384876071 + 0.00834627797345 + 0.00834870761264 + 0.00835113767835 + 0.00835356817065 + 0.00835599908961 + 0.00835843043532 + 0.00836086220784 + 0.00836329440726 + 0.00836572703364 + 0.00836816008706 + 0.0083705935676 + 0.00837302747533 + 0.00837546181033 + 0.00837789657267 + 0.00838033176243 + 0.00838276737967 + 0.00838520342449 + 0.00838763989694 + 0.00839007679711 + 0.00839251412508 + 0.00839495188091 + 0.00839739006468 + 0.00839982867647 + 0.00840226771635 + 0.0084047071844 + 0.00840714708069 + 0.0084095874053 + 0.00841202815831 + 0.00841446933978 + 0.00841691094979 + 0.00841935298842 + 0.00842179545575 + 0.00842423835184 + 0.00842668167678 + 0.00842912543064 + 0.0084315696135 + 0.00843401422542 + 0.00843645926649 + 0.00843890473679 + 0.00844135063637 + 0.00844379696533 + 0.00844624372374 + 0.00844869091167 + 0.00845113852919 + 0.00845358657639 + 0.00845603505334 + 0.00845848396011 + 0.00846093329678 + 0.00846338306343 + 0.00846583326013 + 0.00846828388695 + 0.00847073494397 + 0.00847318643128 + 0.00847563834893 + 0.00847809069701 + 0.0084805434756 + 0.00848299668476 + 0.00848545032458 + 0.00848790439513 + 0.00849035889649 + 0.00849281382872 + 0.00849526919192 + 0.00849772498615 + 0.00850018121148 + 0.008502637868 + 0.00850509495578 + 0.0085075524749 + 0.00851001042543 + 0.00851246880744 + 0.00851492762102 + 0.00851738686624 + 0.00851984654317 + 0.00852230665189 + 0.00852476719248 + 0.008527228165 + 0.00852968956955 + 0.00853215140619 + 0.008534613675 + 0.00853707637605 + 0.00853953950943 + 0.0085420030752 + 0.00854446707345 + 0.00854693150424 + 0.00854939636766 + 0.00855186166378 + 0.00855432739267 + 0.00855679355442 + 0.0085592601491 + 0.00856172717678 + 0.00856419463754 + 0.00856666253146 + 0.00856913085861 + 0.00857159961907 + 0.00857406881292 + 0.00857653844022 + 0.00857900850107 + 0.00858147899552 + 0.00858394992367 + 0.00858642128558 + 0.00858889308133 + 0.008591365311 + 0.00859383797466 + 0.00859631107239 + 0.00859878460427 + 0.00860125857037 + 0.00860373297078 + 0.00860620780555 + 0.00860868307478 + 0.00861115877853 + 0.00861363491689 + 0.00861611148992 + 0.00861858849772 + 0.00862106594034 + 0.00862354381788 + 0.0086260221304 + 0.00862850087798 + 0.0086309800607 + 0.00863345967864 + 0.00863593973186 + 0.00863842022045 + 0.00864090114449 + 0.00864338250404 + 0.0086458642992 + 0.00864834653002 + 0.0086508291966 + 0.008653312299 + 0.0086557958373 + 0.00865827981158 + 0.00866076422192 + 0.00866324906839 + 0.00866573435107 + 0.00866822007003 + 0.00867070622536 + 0.00867319281712 + 0.0086756798454 + 0.00867816731027 + 0.00868065521181 + 0.00868314355009 + 0.0086856323252 + 0.0086881215372 + 0.00869061118618 + 0.00869310127221 + 0.00869559179537 + 0.00869808275573 + 0.00870057415338 + 0.00870306598838 + 0.00870555826082 + 0.00870805097078 + 0.00871054411832 + 0.00871303770353 + 0.00871553172648 + 0.00871802618725 + 0.00872052108591 + 0.00872301642255 + 0.00872551219724 + 0.00872800841006 + 0.00873050506108 + 0.00873300215038 + 0.00873549967804 + 0.00873799764413 + 0.00874049604874 + 0.00874299489193 + 0.00874549417379 + 0.00874799389439 + 0.00875049405381 + 0.00875299465213 + 0.00875549568943 + 0.00875799716577 + 0.00876049908124 + 0.00876300143592 + 0.00876550422988 + 0.0087680074632 + 0.00877051113595 + 0.00877301524822 + 0.00877551980008 + 0.00877802479161 + 0.00878053022288 + 0.00878303609397 + 0.00878554240497 + 0.00878804915594 + 0.00879055634696 + 0.00879306397812 + 0.00879557204948 + 0.00879808056113 + 0.00880058951314 + 0.0088030989056 + 0.00880560873857 + 0.00880811901213 + 0.00881062972637 + 0.00881314088136 + 0.00881565247717 + 0.00881816451389 + 0.00882067699159 + 0.00882318991035 + 0.00882570327025 + 0.00882821707136 + 0.00883073131376 + 0.00883324599753 + 0.00883576112275 + 0.00883827668949 + 0.00884079269784 + 0.00884330914786 + 0.00884582603964 + 0.00884834337325 + 0.00885086114877 + 0.00885337936629 + 0.00885589802587 + 0.00885841712759 + 0.00886093667154 + 0.00886345665779 + 0.00886597708641 + 0.00886849795749 + 0.0088710192711 + 0.00887354102733 + 0.00887606322624 + 0.00887858586791 + 0.00888110895243 + 0.00888363247987 + 0.00888615645031 + 0.00888868086383 + 0.0088912057205 + 0.0088937310204 + 0.00889625676362 + 0.00889878295022 + 0.00890130958029 + 0.0089038366539 + 0.00890636417113 + 0.00890889213206 + 0.00891142053677 + 0.00891394938533 + 0.00891647867783 + 0.00891900841434 + 0.00892153859494 + 0.0089240692197 + 0.00892660028871 + 0.00892913180204 + 0.00893166375978 + 0.00893419616199 + 0.00893672900876 + 0.00893926230016 + 0.00894179603628 + 0.00894433021718 + 0.00894686484296 + 0.00894939991369 + 0.00895193542944 + 0.00895447139029 + 0.00895700779632 + 0.00895954464762 + 0.00896208194425 + 0.0089646196863 + 0.00896715787384 + 0.00896969650696 + 0.00897223558572 + 0.00897477511022 + 0.00897731508052 + 0.00897985549671 + 0.00898239635886 + 0.00898493766706 + 0.00898747942137 + 0.00899002162188 + 0.00899256426867 + 0.00899510736182 + 0.0089976509014 + 0.00900019488749 + 0.00900273932017 + 0.00900528419952 + 0.00900782952562 + 0.00901037529854 + 0.00901292151837 + 0.00901546818518 + 0.00901801529905 + 0.00902056286006 + 0.00902311086829 + 0.00902565932381 + 0.00902820822671 + 0.00903075757707 + 0.00903330737495 + 0.00903585762045 + 0.00903840831363 + 0.00904095945459 + 0.00904351104339 + 0.00904606308011 + 0.00904861556484 + 0.00905116849765 + 0.00905372187862 + 0.00905627570784 + 0.00905882998537 + 0.00906138471129 + 0.0090639398857 + 0.00906649550865 + 0.00906905158025 + 0.00907160810055 + 0.00907416506964 + 0.00907672248761 + 0.00907928035452 + 0.00908183867046 + 0.0090843974355 + 0.00908695664973 + 0.00908951631322 + 0.00909207642606 + 0.00909463698832 + 0.00909719800008 + 0.00909975946141 + 0.00910232137241 + 0.00910488373314 + 0.00910744654369 + 0.00911000980413 + 0.00911257351455 + 0.00911513767502 + 0.00911770228562 + 0.00912026734644 + 0.00912283285754 + 0.00912539881901 + 0.00912796523094 + 0.00913053209338 + 0.00913309940644 + 0.00913566717018 + 0.00913823538468 + 0.00914080405003 + 0.0091433731663 + 0.00914594273358 + 0.00914851275193 + 0.00915108322144 + 0.0091536541422 + 0.00915622551427 + 0.00915879733774 + 0.00916136961269 + 0.0091639423392 + 0.00916651551734 + 0.00916908914719 + 0.00917166322884 + 0.00917423776236 + 0.00917681274784 + 0.00917938818535 + 0.00918196407497 + 0.00918454041678 + 0.00918711721086 + 0.00918969445729 + 0.00919227215616 + 0.00919485030753 + 0.00919742891148 + 0.00920000796811 + 0.00920258747748 + 0.00920516743968 + 0.00920774785478 + 0.00921032872287 + 0.00921291004403 + 0.00921549181833 + 0.00921807404585 + 0.00922065672668 + 0.00922323986089 + 0.00922582344856 + 0.00922840748978 + 0.00923099198462 + 0.00923357693316 + 0.00923616233548 + 0.00923874819166 + 0.00924133450178 + 0.00924392126592 + 0.00924650848417 + 0.00924909615659 + 0.00925168428327 + 0.00925427286429 + 0.00925686189973 + 0.00925945138967 + 0.00926204133419 + 0.00926463173336 + 0.00926722258728 + 0.00926981389601 + 0.00927240565964 + 0.00927499787824 + 0.00927759055191 + 0.00928018368071 + 0.00928277726473 + 0.00928537130405 + 0.00928796579874 + 0.00929056074889 + 0.00929315615458 + 0.00929575201589 + 0.00929834833289 + 0.00930094510567 + 0.0093035423343 + 0.00930614001888 + 0.00930873815947 + 0.00931133675616 + 0.00931393580902 + 0.00931653531814 + 0.0093191352836 + 0.00932173570548 + 0.00932433658385 + 0.00932693791881 + 0.00932953971042 + 0.00933214195876 + 0.00933474466393 + 0.009337347826 + 0.00933995144504 + 0.00934255552114 + 0.00934516005438 + 0.00934776504484 + 0.0093503704926 + 0.00935297639775 + 0.00935558276035 + 0.00935818958049 + 0.00936079685825 + 0.00936340459371 + 0.00936601278696 + 0.00936862143806 + 0.00937123054711 + 0.00937384011418 + 0.00937645013936 + 0.00937906062271 + 0.00938167156434 + 0.0093842829643 + 0.00938689482269 + 0.00938950713959 + 0.00939211991507 + 0.00939473314922 + 0.00939734684211 + 0.00939996099383 + 0.00940257560446 + 0.00940519067408 + 0.00940780620277 + 0.00941042219061 + 0.00941303863767 + 0.00941565554405 + 0.00941827290982 + 0.00942089073506 + 0.00942350901986 + 0.00942612776428 + 0.00942874696843 + 0.00943136663236 + 0.00943398675617 + 0.00943660733994 + 0.00943922838375 + 0.00944184988767 + 0.00944447185179 + 0.00944709427619 + 0.00944971716095 + 0.00945234050615 + 0.00945496431188 + 0.0094575885782 + 0.00946021330521 + 0.00946283849299 + 0.00946546414161 + 0.00946809025115 + 0.0094707168217 + 0.00947334385334 + 0.00947597134615 + 0.00947859930021 + 0.0094812277156 + 0.0094838565924 + 0.00948648593069 + 0.00948911573056 + 0.00949174599209 + 0.00949437671534 + 0.00949700790042 + 0.00949963954739 + 0.00950227165635 + 0.00950490422736 + 0.00950753726051 + 0.00951017075589 + 0.00951280471357 + 0.00951543913364 + 0.00951807401617 + 0.00952070936124 + 0.00952334516895 + 0.00952598143937 + 0.00952861817257 + 0.00953125536865 + 0.00953389302768 + 0.00953653114975 + 0.00953916973493 + 0.00954180878331 + 0.00954444829497 + 0.00954708826999 + 0.00954972870844 + 0.00955236961042 + 0.00955501097601 + 0.00955765280528 + 0.00956029509832 + 0.0095629378552 + 0.00956558107601 + 0.00956822476084 + 0.00957086890975 + 0.00957351352285 + 0.00957615860019 + 0.00957880414187 + 0.00958145014798 + 0.00958409661858 + 0.00958674355376 + 0.0095893909536 + 0.00959203881819 + 0.00959468714761 + 0.00959733594193 + 0.00959998520124 + 0.00960263492563 + 0.00960528511516 + 0.00960793576993 + 0.00961058689002 + 0.0096132384755 + 0.00961589052647 + 0.00961854304299 + 0.00962119602516 + 0.00962384947305 + 0.00962650338674 + 0.00962915776633 + 0.00963181261188 + 0.00963446792349 + 0.00963712370123 + 0.00963977994519 + 0.00964243665544 + 0.00964509383207 + 0.00964775147516 + 0.00965040958479 + 0.00965306816105 + 0.00965572720402 + 0.00965838671377 + 0.0096610466904 + 0.00966370713397 + 0.00966636804458 + 0.00966902942231 + 0.00967169126724 + 0.00967435357944 + 0.00967701635901 + 0.00967967960602 + 0.00968234332056 + 0.00968500750271 + 0.00968767215254 + 0.00969033727015 + 0.00969300285562 + 0.00969566890902 + 0.00969833543044 + 0.00970100241997 + 0.00970366987767 + 0.00970633780364 + 0.00970900619796 + 0.00971167506071 + 0.00971434439197 + 0.00971701419183 + 0.00971968446036 + 0.00972235519765 + 0.00972502640378 + 0.00972769807884 + 0.0097303702229 + 0.00973304283605 + 0.00973571591837 + 0.00973838946995 + 0.00974106349086 + 0.00974373798119 + 0.00974641294101 + 0.00974908837042 + 0.0097517642695 + 0.00975444063832 + 0.00975711747697 + 0.00975979478554 + 0.0097624725641 + 0.00976515081273 + 0.00976782953153 + 0.00977050872057 + 0.00977318837993 + 0.00977586850971 + 0.00977854910997 + 0.0097812301808 + 0.00978391172229 + 0.00978659373452 + 0.00978927621757 + 0.00979195917152 + 0.00979464259646 + 0.00979732649247 + 0.00980001085962 + 0.00980269569802 + 0.00980538100772 + 0.00980806678883 + 0.00981075304142 + 0.00981343976558 + 0.00981612696138 + 0.00981881462891 + 0.00982150276826 + 0.0098241913795 + 0.00982688046272 + 0.00982957001801 + 0.00983226004544 + 0.00983495054509 + 0.00983764151706 + 0.00984033296142 + 0.00984302487826 + 0.00984571726765 + 0.00984841012969 + 0.00985110346445 + 0.00985379727203 + 0.00985649155249 + 0.00985918630593 + 0.00986188153242 + 0.00986457723206 + 0.00986727340491 + 0.00986997005108 + 0.00987266717063 + 0.00987536476366 + 0.00987806283024 + 0.00988076137046 + 0.00988346038441 + 0.00988615987216 + 0.00988885983379 + 0.0098915602694 + 0.00989426117907 + 0.00989696256287 + 0.00989966442089 + 0.00990236675322 + 0.00990506955993 + 0.00990777284112 + 0.00991047659686 + 0.00991318082724 + 0.00991588553234 + 0.00991859071224 + 0.00992129636703 + 0.00992400249679 + 0.00992670910161 + 0.00992941618156 + 0.00993212373674 + 0.00993483176722 + 0.00993754027308 + 0.00994024925442 + 0.00994295871132 + 0.00994566864385 + 0.0099483790521 + 0.00995108993616 + 0.00995380129611 + 0.00995651313203 + 0.00995922544401 + 0.00996193823213 + 0.00996465149647 + 0.00996736523712 + 0.00997007945415 + 0.00997279414766 + 0.00997550931773 + 0.00997822496445 + 0.00998094108788 + 0.00998365768813 + 0.00998637476526 + 0.00998909231938 + 0.00999181035055 + 0.00999452885887 + 0.00999724784441 + 0.00999996730726 + 0.0100026872475 + 0.0100054076652 + 0.0100081285605 + 0.0100108499335 + 0.0100135717841 + 0.0100162941126 + 0.010019016919 + 0.0100217402034 + 0.0100244639658 + 0.0100271882064 + 0.0100299129252 + 0.0100326381223 + 0.0100353637978 + 0.0100380899519 + 0.0100408165844 + 0.0100435436957 + 0.0100462712857 + 0.0100489993545 + 0.0100517279022 + 0.0100544569289 + 0.0100571864346 + 0.0100599164196 + 0.0100626468837 + 0.0100653778272 + 0.0100681092501 + 0.0100708411525 + 0.0100735735345 + 0.0100763063961 + 0.0100790397375 + 0.0100817735587 + 0.0100845078599 + 0.010087242641 + 0.0100899779022 + 0.0100927136436 + 0.0100954498653 + 0.0100981865672 + 0.0101009237496 + 0.0101036614125 + 0.010106399556 + 0.0101091381802 + 0.0101118772851 + 0.0101146168709 + 0.0101173569376 + 0.0101200974853 + 0.0101228385141 + 0.0101255800241 + 0.0101283220153 + 0.0101310644879 + 0.010133807442 + 0.0101365508775 + 0.0101392947947 + 0.0101420391935 + 0.0101447840741 + 0.0101475294366 + 0.010150275281 + 0.0101530216075 + 0.010155768416 + 0.0101585157068 + 0.0101612634798 + 0.0101640117352 + 0.010166760473 + 0.0101695096934 + 0.0101722593964 + 0.0101750095821 + 0.0101777602506 + 0.010180511402 + 0.0101832630363 + 0.0101860151536 + 0.0101887677541 + 0.0101915208378 + 0.0101942744048 + 0.0101970284552 + 0.0101997829891 + 0.0102025380065 + 0.0102052935075 + 0.0102080494922 + 0.0102108059608 + 0.0102135629133 + 0.0102163203497 + 0.0102190782702 + 0.0102218366748 + 0.0102245955637 + 0.0102273549369 + 0.0102301147945 + 0.0102328751365 + 0.0102356359632 + 0.0102383972745 + 0.0102411590705 + 0.0102439213514 + 0.0102466841171 + 0.0102494473679 + 0.0102522111038 + 0.0102549753248 + 0.0102577400311 + 0.0102605052227 + 0.0102632708997 + 0.0102660370623 + 0.0102688037104 + 0.0102715708442 + 0.0102743384638 + 0.0102771065692 + 0.0102798751606 + 0.010282644238 + 0.0102854138014 + 0.0102881838511 + 0.0102909543871 + 0.0102937254094 + 0.0102964969181 + 0.0102992689134 + 0.0103020413953 + 0.0103048143639 + 0.0103075878193 + 0.0103103617616 + 0.0103131361908 + 0.0103159111071 + 0.0103186865105 + 0.0103214624011 + 0.010324238779 + 0.0103270156443 + 0.0103297929971 + 0.0103325708374 + 0.0103353491654 + 0.0103381279811 + 0.0103409072846 + 0.010343687076 + 0.0103464673555 + 0.0103492481229 + 0.0103520293786 + 0.0103548111224 + 0.0103575933546 + 0.0103603760752 + 0.0103631592844 + 0.0103659429821 + 0.0103687271684 + 0.0103715118436 + 0.0103742970075 + 0.0103770826604 + 0.0103798688024 + 0.0103826554334 + 0.0103854425536 + 0.010388230163 + 0.0103910182619 + 0.0103938068502 + 0.010396595928 + 0.0103993854954 + 0.0104021755525 + 0.0104049660994 + 0.0104077571362 + 0.0104105486629 + 0.0104133406797 + 0.0104161331866 + 0.0104189261838 + 0.0104217196712 + 0.0104245136491 + 0.0104273081174 + 0.0104301030762 + 0.0104328985258 + 0.010435694466 + 0.0104384908971 + 0.0104412878191 + 0.010444085232 + 0.0104468831361 + 0.0104496815313 + 0.0104524804178 + 0.0104552797956 + 0.0104580796648 + 0.0104608800255 + 0.0104636808779 + 0.0104664822219 + 0.0104692840577 + 0.0104720863853 + 0.0104748892049 + 0.0104776925165 + 0.0104804963202 + 0.0104833006162 + 0.0104861054044 + 0.010488910685 + 0.010491716458 + 0.0104945227236 + 0.0104973294818 + 0.0105001367328 + 0.0105029444765 + 0.0105057527132 + 0.0105085614428 + 0.0105113706655 + 0.0105141803813 + 0.0105169905904 + 0.0105198012928 + 0.0105226124886 + 0.0105254241779 + 0.0105282363608 + 0.0105310490374 + 0.0105338622077 + 0.0105366758719 + 0.01053949003 + 0.0105423046822 + 0.0105451198284 + 0.0105479354688 + 0.0105507516035 + 0.0105535682326 + 0.0105563853561 + 0.0105592029742 + 0.0105620210868 + 0.0105648396942 + 0.0105676587964 + 0.0105704783935 + 0.0105732984856 + 0.0105761190727 + 0.010578940155 + 0.0105817617325 + 0.0105845838053 + 0.0105874063735 + 0.0105902294372 + 0.0105930529965 + 0.0105958770515 + 0.0105987016022 + 0.0106015266488 + 0.0106043521913 + 0.0106071782298 + 0.0106100047644 + 0.0106128317953 + 0.0106156593223 + 0.0106184873458 + 0.0106213158657 + 0.0106241448822 + 0.0106269743952 + 0.010629804405 + 0.0106326349116 + 0.0106354659151 + 0.0106382974155 + 0.0106411294131 + 0.0106439619077 + 0.0106467948996 + 0.0106496283889 + 0.0106524623755 + 0.0106552968596 + 0.0106581318414 + 0.0106609673208 + 0.0106638032979 + 0.010666639773 + 0.0106694767459 + 0.0106723142169 + 0.010675152186 + 0.0106779906532 + 0.0106808296188 + 0.0106836690827 + 0.0106865090451 + 0.0106893495061 + 0.0106921904657 + 0.010695031924 + 0.0106978738811 + 0.0107007163371 + 0.0107035592921 + 0.0107064027462 + 0.0107092466994 + 0.0107120911519 + 0.0107149361038 + 0.010717781555 + 0.0107206275058 + 0.0107234739561 + 0.0107263209062 + 0.010729168356 + 0.0107320163057 + 0.0107348647553 + 0.010737713705 + 0.0107405631548 + 0.0107434131048 + 0.0107462635551 + 0.0107491145058 + 0.010751965957 + 0.0107548179088 + 0.0107576703612 + 0.0107605233143 + 0.0107633767683 + 0.0107662307232 + 0.0107690851791 + 0.010771940136 + 0.0107747955942 + 0.0107776515536 + 0.0107805080144 + 0.0107833649767 + 0.0107862224404 + 0.0107890804058 + 0.0107919388729 + 0.0107947978418 + 0.0107976573126 + 0.0108005172854 + 0.0108033777602 + 0.0108062387371 + 0.0108091002163 + 0.0108119621979 + 0.0108148246818 + 0.0108176876682 + 0.0108205511573 + 0.010823415149 + 0.0108262796435 + 0.0108291446408 + 0.0108320101411 + 0.0108348761444 + 0.0108377426508 + 0.0108406096604 + 0.0108434771734 + 0.0108463451897 + 0.0108492137095 + 0.0108520827328 + 0.0108549522598 + 0.0108578222906 + 0.0108606928251 + 0.0108635638636 + 0.0108664354061 + 0.0108693074527 + 0.0108721800034 + 0.0108750530584 + 0.0108779266178 + 0.0108808006817 + 0.01088367525 + 0.010886550323 + 0.0108894259007 + 0.0108923019832 + 0.0108951785706 + 0.010898055663 + 0.0109009332604 + 0.010903811363 + 0.0109066899708 + 0.010909569084 + 0.0109124487026 + 0.0109153288267 + 0.0109182094564 + 0.0109210905917 + 0.0109239722329 + 0.0109268543799 + 0.0109297370329 + 0.0109326201919 + 0.0109355038571 + 0.0109383880284 + 0.0109412727061 + 0.0109441578902 + 0.0109470435808 + 0.0109499297779 + 0.0109528164817 + 0.0109557036923 + 0.0109585914097 + 0.010961479634 + 0.0109643683654 + 0.0109672576038 + 0.0109701473495 + 0.0109730376024 + 0.0109759283628 + 0.0109788196306 + 0.0109817114059 + 0.0109846036889 + 0.0109874964796 + 0.0109903897782 + 0.0109932835846 + 0.0109961778991 + 0.0109990727216 + 0.0110019680524 + 0.0110048638914 + 0.0110077602387 + 0.0110106570945 + 0.0110135544589 + 0.0110164523318 + 0.0110193507135 + 0.011022249604 + 0.0110251490033 + 0.0110280489117 + 0.0110309493291 + 0.0110338502557 + 0.0110367516915 + 0.0110396536367 + 0.0110425560913 + 0.0110454590555 + 0.0110483625292 + 0.0110512665126 + 0.0110541710058 + 0.0110570760089 + 0.011059981522 + 0.0110628875451 + 0.0110657940784 + 0.0110687011219 + 0.0110716086757 + 0.0110745167399 + 0.0110774253147 + 0.0110803344 + 0.011083243996 + 0.0110861541028 + 0.0110890647204 + 0.011091975849 + 0.0110948874887 + 0.0110977996395 + 0.0111007123014 + 0.0111036254748 + 0.0111065391595 + 0.0111094533557 + 0.0111123680634 + 0.0111152832829 + 0.0111181990141 + 0.0111211152571 + 0.0111240320121 + 0.0111269492791 + 0.0111298670583 + 0.0111327853496 + 0.0111357041533 + 0.0111386234693 + 0.0111415432978 + 0.0111444636389 + 0.0111473844927 + 0.0111503058591 + 0.0111532277385 + 0.0111561501307 + 0.011159073036 + 0.0111619964544 + 0.011164920386 + 0.0111678448309 + 0.0111707697891 + 0.0111736952608 + 0.0111766212461 + 0.011179547745 + 0.0111824747577 + 0.0111854022842 + 0.0111883303246 + 0.0111912588791 + 0.0111941879476 + 0.0111971175303 + 0.0112000476273 + 0.0112029782387 + 0.0112059093645 + 0.0112088410049 + 0.01121177316 + 0.0112147058297 + 0.0112176390143 + 0.0112205727138 + 0.0112235069283 + 0.0112264416579 + 0.0112293769027 + 0.0112323126627 + 0.0112352489382 + 0.011238185729 + 0.0112411230355 + 0.0112440608575 + 0.0112469991953 + 0.0112499380489 + 0.0112528774184 + 0.0112558173039 + 0.0112587577055 + 0.0112616986233 + 0.0112646400574 + 0.0112675820078 + 0.0112705244747 + 0.0112734674581 + 0.0112764109581 + 0.0112793549749 + 0.0112822995085 + 0.0112852445589 + 0.0112881901264 + 0.011291136211 + 0.0112940828127 + 0.0112970299318 + 0.0112999775681 + 0.011302925722 + 0.0113058743933 + 0.0113088235823 + 0.0113117732891 + 0.0113147235136 + 0.011317674256 + 0.0113206255165 + 0.011323577295 + 0.0113265295917 + 0.0113294824067 + 0.01133243574 + 0.0113353895918 + 0.0113383439621 + 0.0113412988511 + 0.0113442542587 + 0.0113472101852 + 0.0113501666306 + 0.011353123595 + 0.0113560810785 + 0.0113590390811 + 0.0113619976031 + 0.0113649566444 + 0.0113679162051 + 0.0113708762854 + 0.0113738368853 + 0.011376798005 + 0.0113797596444 + 0.0113827218038 + 0.0113856844832 + 0.0113886476826 + 0.0113916114023 + 0.0113945756422 + 0.0113975404025 + 0.0114005056832 + 0.0114034714845 + 0.0114064378064 + 0.0114094046491 + 0.0114123720126 + 0.011415339897 + 0.0114183083024 + 0.0114212772289 + 0.0114242466766 + 0.0114272166455 + 0.0114301871358 + 0.0114331581476 + 0.011436129681 + 0.011439101736 + 0.0114420743127 + 0.0114450474113 + 0.0114480210317 + 0.0114509951742 + 0.0114539698388 + 0.0114569450256 + 0.0114599207347 + 0.0114628969661 + 0.0114658737201 + 0.0114688509966 + 0.0114718287957 + 0.0114748071176 + 0.0114777859623 + 0.01148076533 + 0.0114837452206 + 0.0114867256344 + 0.0114897065714 + 0.0114926880317 + 0.0114956700153 + 0.0114986525225 + 0.0115016355532 + 0.0115046191076 + 0.0115076031858 + 0.0115105877877 + 0.0115135729137 + 0.0115165585636 + 0.0115195447377 + 0.011522531436 + 0.0115255186586 + 0.0115285064056 + 0.0115314946771 + 0.0115344834732 + 0.011537472794 + 0.0115404626395 + 0.0115434530099 + 0.0115464439052 + 0.0115494353256 + 0.0115524272711 + 0.0115554197419 + 0.0115584127379 + 0.0115614062594 + 0.0115644003064 + 0.011567394879 + 0.0115703899772 + 0.0115733856013 + 0.0115763817512 + 0.0115793784271 + 0.0115823756291 + 0.0115853733572 + 0.0115883716115 + 0.0115913703922 + 0.0115943696993 + 0.011597369533 + 0.0116003698932 + 0.0116033707802 + 0.0116063721939 + 0.0116093741346 + 0.0116123766022 + 0.0116153795969 + 0.0116183831188 + 0.0116213871679 + 0.0116243917444 + 0.0116273968483 + 0.0116304024798 + 0.0116334086389 + 0.0116364153257 + 0.0116394225404 + 0.0116424302829 + 0.0116454385535 + 0.0116484473521 + 0.0116514566789 + 0.0116544665341 + 0.0116574769175 + 0.0116604878295 + 0.01166349927 + 0.0116665112392 + 0.0116695237371 + 0.0116725367638 + 0.0116755503195 + 0.0116785644042 + 0.011681579018 + 0.011684594161 + 0.0116876098333 + 0.011690626035 + 0.0116936427662 + 0.011696660027 + 0.0116996778175 + 0.0117026961377 + 0.0117057149877 + 0.0117087343678 + 0.0117117542778 + 0.011714774718 + 0.0117177956885 + 0.0117208171892 + 0.0117238392204 + 0.0117268617821 + 0.0117298848744 + 0.0117329084974 + 0.0117359326512 + 0.0117389573358 + 0.0117419825515 + 0.0117450082982 + 0.011748034576 + 0.0117510613852 + 0.0117540887256 + 0.0117571165976 + 0.011760145001 + 0.0117631739361 + 0.0117662034029 + 0.0117692334015 + 0.011772263932 + 0.0117752949946 + 0.0117783265892 + 0.011781358716 + 0.0117843913751 + 0.0117874245666 + 0.0117904582905 + 0.011793492547 + 0.0117965273361 + 0.0117995626581 + 0.0118025985128 + 0.0118056349005 + 0.0118086718212 + 0.0118117092751 + 0.0118147472621 + 0.0118177857825 + 0.0118208248363 + 0.0118238644235 + 0.0118269045444 + 0.011829945199 + 0.0118329863873 + 0.0118360281095 + 0.0118390703657 + 0.0118421131559 + 0.0118451564803 + 0.0118482003389 + 0.0118512447319 + 0.0118542896593 + 0.0118573351212 + 0.0118603811178 + 0.0118634276491 + 0.0118664747152 + 0.0118695223162 + 0.0118725704522 + 0.0118756191232 + 0.0118786683295 + 0.0118817180711 + 0.011884768348 + 0.0118878191604 + 0.0118908705084 + 0.011893922392 + 0.0118969748114 + 0.0119000277666 + 0.0119030812577 + 0.0119061352849 + 0.0119091898482 + 0.0119122449477 + 0.0119153005836 + 0.0119183567558 + 0.0119214134646 + 0.01192447071 + 0.011927528492 + 0.0119305868109 + 0.0119336456666 + 0.0119367050593 + 0.011939764989 + 0.0119428254559 + 0.0119458864601 + 0.0119489480017 + 0.0119520100806 + 0.0119550726971 + 0.0119581358513 + 0.0119611995432 + 0.0119642637729 + 0.0119673285405 + 0.0119703938461 + 0.0119734596899 + 0.0119765260718 + 0.0119795929921 + 0.0119826604507 + 0.0119857284478 + 0.0119887969835 + 0.0119918660579 + 0.011994935671 + 0.011998005823 + 0.012001076514 + 0.012004147744 + 0.0120072195131 + 0.0120102918215 + 0.0120133646693 + 0.0120164380564 + 0.0120195119831 + 0.0120225864494 + 0.0120256614554 + 0.0120287370013 + 0.012031813087 + 0.0120348897128 + 0.0120379668786 + 0.0120410445846 + 0.0120441228309 + 0.0120472016176 + 0.0120502809448 + 0.0120533608125 + 0.0120564412209 + 0.01205952217 + 0.01206260366 + 0.012065685691 + 0.0120687682629 + 0.0120718513761 + 0.0120749350304 + 0.0120780192261 + 0.0120811039632 + 0.0120841892419 + 0.0120872750621 + 0.012090361424 + 0.0120934483278 + 0.0120965357735 + 0.0120996237611 + 0.0121027122908 + 0.0121058013627 + 0.0121088909769 + 0.0121119811335 + 0.0121150718326 + 0.0121181630742 + 0.0121212548584 + 0.0121243471854 + 0.0121274400553 + 0.0121305334681 + 0.012133627424 + 0.012136721923 + 0.0121398169652 + 0.0121429125507 + 0.0121460086797 + 0.0121491053522 + 0.0121522025683 + 0.0121553003281 + 0.0121583986317 + 0.0121614974793 + 0.0121645968708 + 0.0121676968064 + 0.0121707972862 + 0.0121738983102 + 0.0121769998787 + 0.0121801019916 + 0.0121832046491 + 0.0121863078512 + 0.0121894115981 + 0.0121925158899 + 0.0121956207266 + 0.0121987261084 + 0.0122018320353 + 0.0122049385074 + 0.0122080455249 + 0.0122111530878 + 0.0122142611962 + 0.0122173698503 + 0.0122204790501 + 0.0122235887956 + 0.0122266990871 + 0.0122298099246 + 0.0122329213082 + 0.012236033238 + 0.0122391457141 + 0.0122422587365 + 0.0122453723055 + 0.012248486421 + 0.0122516010832 + 0.0122547162922 + 0.012257832048 + 0.0122609483509 + 0.0122640652007 + 0.0122671825977 + 0.012270300542 + 0.0122734190336 + 0.0122765380727 + 0.0122796576593 + 0.0122827777935 + 0.0122858984755 + 0.0122890197053 + 0.012292141483 + 0.0122952638088 + 0.0122983866826 + 0.0123015101047 + 0.0123046340751 + 0.0123077585939 + 0.0123108836611 + 0.012314009277 + 0.0123171354416 + 0.012320262155 + 0.0123233894172 + 0.0123265172285 + 0.0123296455888 + 0.0123327744983 + 0.0123359039571 + 0.0123390339652 + 0.0123421645228 + 0.01234529563 + 0.0123484272868 + 0.0123515594933 + 0.0123546922498 + 0.0123578255561 + 0.0123609594126 + 0.0123640938191 + 0.0123672287759 + 0.0123703642831 + 0.0123735003406 + 0.0123766369487 + 0.0123797741074 + 0.0123829118168 + 0.0123860500771 + 0.0123891888883 + 0.0123923282504 + 0.0123954681637 + 0.0123986086282 + 0.012401749644 + 0.0124048912112 + 0.0124080333298 + 0.0124111760001 + 0.0124143192221 + 0.0124174629958 + 0.0124206073214 + 0.012423752199 + 0.0124268976287 + 0.0124300436106 + 0.0124331901447 + 0.0124363372312 + 0.0124394848701 + 0.0124426330616 + 0.0124457818058 + 0.0124489311027 + 0.0124520809525 + 0.0124552313552 + 0.012458382311 + 0.0124615338199 + 0.012464685882 + 0.0124678384975 + 0.0124709916664 + 0.0124741453889 + 0.0124772996649 + 0.0124804544947 + 0.0124836098784 + 0.0124867658159 + 0.0124899223075 + 0.0124930793531 + 0.012496236953 + 0.0124993951072 + 0.0125025538158 + 0.0125057130789 + 0.0125088728966 + 0.012512033269 + 0.0125151941962 + 0.0125183556783 + 0.0125215177154 + 0.0125246803076 + 0.0125278434549 + 0.0125310071576 + 0.0125341714156 + 0.0125373362291 + 0.0125405015982 + 0.0125436675229 + 0.0125468340034 + 0.0125500010398 + 0.0125531686322 + 0.0125563367806 + 0.0125595054851 + 0.012562674746 + 0.0125658445631 + 0.0125690149368 + 0.012572185867 + 0.0125753573538 + 0.0125785293974 + 0.0125817019978 + 0.0125848751552 + 0.0125880488696 + 0.0125912231412 + 0.01259439797 + 0.0125975733561 + 0.0126007492996 + 0.0126039258007 + 0.0126071028594 + 0.0126102804758 + 0.0126134586501 + 0.0126166373823 + 0.0126198166725 + 0.0126229965208 + 0.0126261769273 + 0.0126293578921 + 0.0126325394154 + 0.0126357214971 + 0.0126389041375 + 0.0126420873366 + 0.0126452710944 + 0.0126484554112 + 0.012651640287 + 0.0126548257218 + 0.0126580117159 + 0.0126611982692 + 0.012664385382 + 0.0126675730542 + 0.012670761286 + 0.0126739500776 + 0.0126771394288 + 0.01268032934 + 0.0126835198112 + 0.0126867108424 + 0.0126899024338 + 0.0126930945855 + 0.0126962872976 + 0.0126994805701 + 0.0127026744032 + 0.012705868797 + 0.0127090637516 + 0.012712259267 + 0.0127154553433 + 0.0127186519808 + 0.0127218491794 + 0.0127250469393 + 0.0127282452605 + 0.0127314441432 + 0.0127346435874 + 0.0127378435933 + 0.0127410441609 + 0.0127442452904 + 0.0127474469819 + 0.0127506492353 + 0.012753852051 + 0.0127570554289 + 0.0127602593691 + 0.0127634638718 + 0.012766668937 + 0.0127698745649 + 0.0127730807555 + 0.0127762875089 + 0.0127794948253 + 0.0127827027047 + 0.0127859111472 + 0.012789120153 + 0.0127923297221 + 0.0127955398547 + 0.0127987505508 + 0.0128019618105 + 0.0128051736339 + 0.0128083860212 + 0.0128115989724 + 0.0128148124876 + 0.0128180265669 + 0.0128212412105 + 0.0128244564184 + 0.0128276721907 + 0.0128308885275 + 0.0128341054289 + 0.0128373228951 + 0.0128405409261 + 0.012843759522 + 0.0128469786829 + 0.012850198409 + 0.0128534187002 + 0.0128566395568 + 0.0128598609788 + 0.0128630829663 + 0.0128663055194 + 0.0128695286382 + 0.0128727523228 + 0.0128759765733 + 0.0128792013899 + 0.0128824267725 + 0.0128856527214 + 0.0128888792366 + 0.0128921063181 + 0.0128953339662 + 0.0128985621809 + 0.0129017909623 + 0.0129050203105 + 0.0129082502256 + 0.0129114807077 + 0.0129147117569 + 0.0129179433733 + 0.012921175557 + 0.0129244083081 + 0.0129276416267 + 0.012930875513 + 0.0129341099669 + 0.0129373449886 + 0.0129405805782 + 0.0129438167358 + 0.0129470534615 + 0.0129502907555 + 0.0129535286177 + 0.0129567670483 + 0.0129600060474 + 0.0129632456151 + 0.0129664857515 + 0.0129697264567 + 0.0129729677308 + 0.0129762095739 + 0.0129794519861 + 0.0129826949675 + 0.0129859385182 + 0.0129891826383 + 0.0129924273279 + 0.0129956725871 + 0.012998918416 + 0.0130021648146 + 0.0130054117832 + 0.0130086593218 + 0.0130119074305 + 0.0130151561093 + 0.0130184053585 + 0.0130216551781 + 0.0130249055681 + 0.0130281565288 + 0.0130314080601 + 0.0130346601623 + 0.0130379128354 + 0.0130411660794 + 0.0130444198946 + 0.0130476742809 + 0.0130509292386 + 0.0130541847676 + 0.0130574408682 + 0.0130606975403 + 0.0130639547842 + 0.0130672125998 + 0.0130704709874 + 0.0130737299469 + 0.0130769894786 + 0.0130802495825 + 0.0130835102586 + 0.0130867715072 + 0.0130900333283 + 0.0130932957219 + 0.0130965586883 + 0.0130998222275 + 0.0131030863396 + 0.0131063510247 + 0.0131096162829 + 0.0131128821143 + 0.013116148519 + 0.0131194154972 + 0.0131226830488 + 0.0131259511741 + 0.013129219873 + 0.0131324891458 + 0.0131357589925 + 0.0131390294132 + 0.013142300408 + 0.0131455719771 + 0.0131488441204 + 0.0131521168382 + 0.0131553901305 + 0.0131586639974 + 0.013161938439 + 0.0131652134554 + 0.0131684890468 + 0.0131717652132 + 0.0131750419547 + 0.0131783192714 + 0.0131815971635 + 0.0131848756309 + 0.0131881546739 + 0.0131914342926 + 0.0131947144869 + 0.0131979952571 + 0.0132012766033 + 0.0132045585254 + 0.0132078410237 + 0.0132111240982 + 0.0132144077491 + 0.0132176919764 + 0.0132209767802 + 0.0132242621607 + 0.0132275481179 + 0.013230834652 + 0.013234121763 + 0.013237409451 + 0.0132406977162 + 0.0132439865587 + 0.0132472759784 + 0.0132505659757 + 0.0132538565505 + 0.0132571477029 + 0.0132604394331 + 0.0132637317411 + 0.0132670246271 + 0.0132703180912 + 0.0132736121334 + 0.0132769067539 + 0.0132802019527 + 0.01328349773 + 0.0132867940859 + 0.0132900910205 + 0.0132933885338 + 0.0132966866259 + 0.0132999852971 + 0.0133032845473 + 0.0133065843767 + 0.0133098847854 + 0.0133131857734 + 0.013316487341 + 0.0133197894881 + 0.0133230922149 + 0.0133263955215 + 0.013329699408 + 0.0133330038744 + 0.013336308921 + 0.0133396145477 + 0.0133429207548 + 0.0133462275422 + 0.0133495349101 + 0.0133528428587 + 0.0133561513879 + 0.0133594604979 + 0.0133627701889 + 0.0133660804609 + 0.0133693913139 + 0.0133727027482 + 0.0133760147638 + 0.0133793273608 + 0.0133826405393 + 0.0133859542995 + 0.0133892686413 + 0.013392583565 + 0.0133958990707 + 0.0133992151583 + 0.0134025318281 + 0.0134058490801 + 0.0134091669144 + 0.0134124853312 + 0.0134158043306 + 0.0134191239125 + 0.0134224440772 + 0.0134257648248 + 0.0134290861553 + 0.0134324080689 + 0.0134357305656 + 0.0134390536455 + 0.0134423773089 + 0.0134457015557 + 0.013449026386 + 0.0134523518 + 0.0134556777978 + 0.0134590043795 + 0.0134623315451 + 0.0134656592948 + 0.0134689876287 + 0.0134723165469 + 0.0134756460494 + 0.0134789761364 + 0.0134823068081 + 0.0134856380644 + 0.0134889699055 + 0.0134923023315 + 0.0134956353425 + 0.0134989689386 + 0.0135023031199 + 0.0135056378865 + 0.0135089732385 + 0.0135123091761 + 0.0135156456992 + 0.0135189828081 + 0.0135223205028 + 0.0135256587834 + 0.0135289976501 + 0.0135323371028 + 0.0135356771418 + 0.0135390177672 + 0.013542358979 + 0.0135457007773 + 0.0135490431623 + 0.013552386134 + 0.0135557296925 + 0.0135590738381 + 0.0135624185706 + 0.0135657638904 + 0.0135691097974 + 0.0135724562917 + 0.0135758033736 + 0.013579151043 + 0.0135824993 + 0.0135858481449 + 0.0135891975776 + 0.0135925475984 + 0.0135958982072 + 0.0135992494042 + 0.0136026011895 + 0.0136059535632 + 0.0136093065254 + 0.0136126600762 + 0.0136160142157 + 0.013619368944 + 0.0136227242612 + 0.0136260801675 + 0.0136294366628 + 0.0136327937474 + 0.0136361514213 + 0.0136395096847 + 0.0136428685376 + 0.0136462279801 + 0.0136495880124 + 0.0136529486345 + 0.0136563098466 + 0.0136596716487 + 0.0136630340409 + 0.0136663970235 + 0.0136697605964 + 0.0136731247597 + 0.0136764895137 + 0.0136798548583 + 0.0136832207936 + 0.0136865873199 + 0.0136899544372 + 0.0136933221455 + 0.013696690445 + 0.0137000593359 + 0.0137034288181 + 0.0137067988918 + 0.0137101695572 + 0.0137135408142 + 0.0137169126631 + 0.0137202851039 + 0.0137236581367 + 0.0137270317616 + 0.0137304059788 + 0.0137337807883 + 0.0137371561903 + 0.0137405321847 + 0.0137439087719 + 0.0137472859518 + 0.0137506637245 + 0.0137540420902 + 0.013757421049 + 0.0137608006009 + 0.0137641807461 + 0.0137675614847 + 0.0137709428168 + 0.0137743247424 + 0.0137777072618 + 0.0137810903749 + 0.0137844740819 + 0.013787858383 + 0.0137912432781 + 0.0137946287674 + 0.0137980148511 + 0.0138014015292 + 0.0138047888018 + 0.013808176669 + 0.013811565131 + 0.0138149541877 + 0.0138183438395 + 0.0138217340863 + 0.0138251249282 + 0.0138285163654 + 0.0138319083979 + 0.0138353010259 + 0.0138386942495 + 0.0138420880687 + 0.0138454824838 + 0.0138488774947 + 0.0138522731016 + 0.0138556693045 + 0.0138590661037 + 0.0138624634992 + 0.0138658614911 + 0.0138692600794 + 0.0138726592644 + 0.0138760590462 + 0.0138794594247 + 0.0138828604002 + 0.0138862619727 + 0.0138896641423 + 0.0138930669092 + 0.0138964702734 + 0.0138998742351 + 0.0139032787944 + 0.0139066839513 + 0.0139100897059 + 0.0139134960585 + 0.013916903009 + 0.0139203105576 + 0.0139237187044 + 0.0139271274494 + 0.0139305367929 + 0.0139339467349 + 0.0139373572755 + 0.0139407684148 + 0.0139441801529 + 0.0139475924899 + 0.013951005426 + 0.0139544189612 + 0.0139578330956 + 0.0139612478294 + 0.0139646631626 + 0.0139680790954 + 0.0139714956278 + 0.01397491276 + 0.0139783304921 + 0.0139817488241 + 0.0139851677562 + 0.0139885872885 + 0.0139920074211 + 0.0139954281541 + 0.0139988494876 + 0.0140022714217 + 0.0140056939565 + 0.0140091170921 + 0.0140125408287 + 0.0140159651663 + 0.014019390105 + 0.0140228156449 + 0.0140262417862 + 0.014029668529 + 0.0140330958733 + 0.0140365238193 + 0.014039952367 + 0.0140433815166 + 0.0140468112682 + 0.0140502416219 + 0.0140536725777 + 0.0140571041359 + 0.0140605362964 + 0.0140639690595 + 0.0140674024252 + 0.0140708363936 + 0.0140742709648 + 0.014077706139 + 0.0140811419162 + 0.0140845782965 + 0.0140880152801 + 0.014091452867 + 0.0140948910574 + 0.0140983298513 + 0.014101769249 + 0.0141052092504 + 0.0141086498557 + 0.014112091065 + 0.0141155328783 + 0.0141189752959 + 0.0141224183178 + 0.0141258619441 + 0.0141293061749 + 0.0141327510104 + 0.0141361964506 + 0.0141396424956 + 0.0141430891455 + 0.0141465364005 + 0.0141499842607 + 0.0141534327262 + 0.014156881797 + 0.0141603314732 + 0.0141637817551 + 0.0141672326426 + 0.014170684136 + 0.0141741362352 + 0.0141775889405 + 0.0141810422519 + 0.0141844961694 + 0.0141879506934 + 0.0141914058237 + 0.0141948615606 + 0.0141983179041 + 0.0142017748544 + 0.0142052324116 + 0.0142086905757 + 0.0142121493468 + 0.0142156087252 + 0.0142190687109 + 0.0142225293039 + 0.0142259905044 + 0.0142294523126 + 0.0142329147284 + 0.0142363777521 + 0.0142398413837 + 0.0142433056233 + 0.0142467704711 + 0.0142502359271 + 0.0142537019915 + 0.0142571686643 + 0.0142606359457 + 0.0142641038357 + 0.0142675723346 + 0.0142710414423 + 0.014274511159 + 0.0142779814849 + 0.0142814524199 + 0.0142849239642 + 0.014288396118 + 0.0142918688813 + 0.0142953422542 + 0.0142988162369 + 0.0143022908294 + 0.0143057660319 + 0.0143092418444 + 0.0143127182671 + 0.0143161953001 + 0.0143196729435 + 0.0143231511973 + 0.0143266300618 + 0.014330109537 + 0.014333589623 + 0.0143370703199 + 0.0143405516278 + 0.0143440335468 + 0.0143475160771 + 0.0143509992188 + 0.0143544829719 + 0.0143579673366 + 0.0143614523129 + 0.0143649379011 + 0.0143684241011 + 0.0143719109131 + 0.0143753983372 + 0.0143788863735 + 0.0143823750221 + 0.0143858642832 + 0.0143893541568 + 0.014392844643 + 0.014396335742 + 0.0143998274538 + 0.0144033197786 + 0.0144068127164 + 0.0144103062675 + 0.0144138004318 + 0.0144172952095 + 0.0144207906007 + 0.0144242866055 + 0.0144277832241 + 0.0144312804564 + 0.0144347783027 + 0.014438276763 + 0.0144417758375 + 0.0144452755262 + 0.0144487758293 + 0.0144522767468 + 0.014455778279 + 0.0144592804258 + 0.0144627831874 + 0.0144662865639 + 0.0144697905554 + 0.0144732951621 + 0.0144768003839 + 0.0144803062211 + 0.0144838126738 + 0.0144873197419 + 0.0144908274258 + 0.0144943357254 + 0.0144978446409 + 0.0145013541723 + 0.0145048643199 + 0.0145083750836 + 0.0145118864637 + 0.0145153984601 + 0.0145189110731 + 0.0145224243028 + 0.0145259381491 + 0.0145294526123 + 0.0145329676925 + 0.0145364833897 + 0.0145399997041 + 0.0145435166358 + 0.0145470341849 + 0.0145505523514 + 0.0145540711356 + 0.0145575905375 + 0.0145611105572 + 0.0145646311948 + 0.0145681524505 + 0.0145716743243 + 0.0145751968164 + 0.0145787199268 + 0.0145822436557 + 0.0145857680032 + 0.0145892929694 + 0.0145928185544 + 0.0145963447583 + 0.0145998715812 + 0.0146033990233 + 0.0146069270845 + 0.0146104557652 + 0.0146139850652 + 0.0146175149848 + 0.0146210455241 + 0.0146245766832 + 0.0146281084622 + 0.0146316408611 + 0.0146351738802 + 0.0146387075194 + 0.014642241779 + 0.014645776659 + 0.0146493121596 + 0.0146528482808 + 0.0146563850228 + 0.0146599223856 + 0.0146634603694 + 0.0146669989743 + 0.0146705382004 + 0.0146740780478 + 0.0146776185166 + 0.0146811596069 + 0.0146847013189 + 0.0146882436525 + 0.0146917866081 + 0.0146953301856 + 0.0146988743851 + 0.0147024192069 + 0.0147059646509 + 0.0147095107173 + 0.0147130574062 + 0.0147166047177 + 0.014720152652 + 0.0147237012091 + 0.0147272503891 + 0.0147308001922 + 0.0147343506184 + 0.0147379016679 + 0.0147414533408 + 0.0147450056371 + 0.0147485585571 + 0.0147521121008 + 0.0147556662682 + 0.0147592210596 + 0.0147627764751 + 0.0147663325147 + 0.0147698891785 + 0.0147734464667 + 0.0147770043794 + 0.0147805629167 + 0.0147841220786 + 0.0147876818654 + 0.014791242277 + 0.0147948033137 + 0.0147983649755 + 0.0148019272626 + 0.014805490175 + 0.0148090537129 + 0.0148126178763 + 0.0148161826655 + 0.0148197480804 + 0.0148233141212 + 0.014826880788 + 0.0148304480809 + 0.0148340160001 + 0.0148375845456 + 0.0148411537176 + 0.0148447235161 + 0.0148482939413 + 0.0148518649933 + 0.0148554366721 + 0.014859008978 + 0.0148625819109 + 0.0148661554711 + 0.0148697296586 + 0.0148733044736 + 0.0148768799161 + 0.0148804559862 + 0.0148840326842 + 0.01488761001 + 0.0148911879638 + 0.0148947665457 + 0.0148983457558 + 0.0149019255943 + 0.0149055060611 + 0.0149090871565 + 0.0149126688806 + 0.0149162512334 + 0.0149198342151 + 0.0149234178258 + 0.0149270020656 + 0.0149305869346 + 0.0149341724329 + 0.0149377585606 + 0.0149413453179 + 0.0149449327048 + 0.0149485207214 + 0.014952109368 + 0.0149556986445 + 0.0149592885511 + 0.0149628790879 + 0.014966470255 + 0.0149700620525 + 0.0149736544805 + 0.0149772475392 + 0.0149808412287 + 0.014984435549 + 0.0149880305003 + 0.0149916260827 + 0.0149952222962 + 0.0149988191411 + 0.0150024166174 + 0.0150060147252 + 0.0150096134647 + 0.0150132128359 + 0.015016812839 + 0.015020413474 + 0.0150240147411 + 0.0150276166404 + 0.0150312191721 + 0.0150348223361 + 0.0150384261327 + 0.0150420305619 + 0.0150456356238 + 0.0150492413186 + 0.0150528476464 + 0.0150564546073 + 0.0150600622013 + 0.0150636704287 + 0.0150672792895 + 0.0150708887838 + 0.0150744989117 + 0.0150781096734 + 0.0150817210689 + 0.0150853330985 + 0.0150889457621 + 0.0150925590599 + 0.015096172992 + 0.0150997875585 + 0.0151034027595 + 0.0151070185952 + 0.0151106350656 + 0.0151142521709 + 0.0151178699112 + 0.0151214882866 + 0.0151251072971 + 0.015128726943 + 0.0151323472243 + 0.0151359681411 + 0.0151395896936 + 0.0151432118818 + 0.0151468347059 + 0.0151504581659 + 0.0151540822621 + 0.0151577069944 + 0.0151613323631 + 0.0151649583682 + 0.0151685850098 + 0.015172212288 + 0.0151758402031 + 0.015179468755 + 0.0151830979439 + 0.0151867277698 + 0.015190358233 + 0.0151939893335 + 0.0151976210715 + 0.0152012534469 + 0.0152048864601 + 0.015208520111 + 0.0152121543998 + 0.0152157893265 + 0.0152194248914 + 0.0152230610945 + 0.0152266979359 + 0.0152303354157 + 0.0152339735341 + 0.0152376122912 + 0.015241251687 + 0.0152448917218 + 0.0152485323955 + 0.0152521737083 + 0.0152558156604 + 0.0152594582518 + 0.0152631014826 + 0.015266745353 + 0.0152703898631 + 0.0152740350129 + 0.0152776808027 + 0.0152813272325 + 0.0152849743024 + 0.0152886220125 + 0.0152922703629 + 0.0152959193539 + 0.0152995689854 + 0.0153032192575 + 0.0153068701705 + 0.0153105217244 + 0.0153141739193 + 0.0153178267554 + 0.0153214802326 + 0.0153251343513 + 0.0153287891114 + 0.0153324445131 + 0.0153361005565 + 0.0153397572417 + 0.0153434145689 + 0.015347072538 + 0.0153507311493 + 0.0153543904029 + 0.0153580502988 + 0.0153617108373 + 0.0153653720183 + 0.015369033842 + 0.0153726963086 + 0.0153763594181 + 0.0153800231707 + 0.0153836875664 + 0.0153873526054 + 0.0153910182877 + 0.0153946846136 + 0.0153983515831 + 0.0154020191963 + 0.0154056874534 + 0.0154093563544 + 0.0154130258995 + 0.0154166960888 + 0.0154203669223 + 0.0154240384003 + 0.0154277105228 + 0.0154313832899 + 0.0154350567017 + 0.0154387307584 + 0.0154424054601 + 0.0154460808069 + 0.0154497567989 + 0.0154534334361 + 0.0154571107188 + 0.0154607886471 + 0.015464467221 + 0.0154681464406 + 0.0154718263062 + 0.0154755068177 + 0.0154791879753 + 0.0154828697792 + 0.0154865522294 + 0.015490235326 + 0.0154939190692 + 0.015497603459 + 0.0155012884957 + 0.0155049741792 + 0.0155086605098 + 0.0155123474874 + 0.0155160351124 + 0.0155197233846 + 0.0155234123044 + 0.0155271018717 + 0.0155307920867 + 0.0155344829495 + 0.0155381744603 + 0.0155418666191 + 0.015545559426 + 0.0155492528812 + 0.0155529469848 + 0.0155566417368 + 0.0155603371375 + 0.0155640331869 + 0.0155677298851 + 0.0155714272322 + 0.0155751252285 + 0.0155788238739 + 0.0155825231685 + 0.0155862231126 + 0.0155899237062 + 0.0155936249495 + 0.0155973268424 + 0.0156010293853 + 0.0156047325781 + 0.015608436421 + 0.0156121409141 + 0.0156158460575 + 0.0156195518513 + 0.0156232582957 + 0.0156269653907 + 0.0156306731365 + 0.0156343815332 + 0.0156380905809 + 0.0156418002797 + 0.0156455106298 + 0.0156492216312 + 0.015652933284 + 0.0156566455884 + 0.0156603585445 + 0.0156640721524 + 0.0156677864122 + 0.015671501324 + 0.015675216888 + 0.0156789331043 + 0.0156826499729 + 0.015686367494 + 0.0156900856677 + 0.0156938044941 + 0.0156975239733 + 0.0157012441055 + 0.0157049648908 + 0.0157086863292 + 0.0157124084209 + 0.015716131166 + 0.0157198545647 + 0.015723578617 + 0.015727303323 + 0.0157310286829 + 0.0157347546967 + 0.0157384813647 + 0.0157422086868 + 0.0157459366633 + 0.0157496652942 + 0.0157533945797 + 0.0157571245198 + 0.0157608551148 + 0.0157645863646 + 0.0157683182694 + 0.0157720508294 + 0.0157757840446 + 0.0157795179151 + 0.0157832524411 + 0.0157869876228 + 0.0157907234601 + 0.0157944599532 + 0.0157981971023 + 0.0158019349074 + 0.0158056733687 + 0.0158094124862 + 0.0158131522601 + 0.0158168926906 + 0.0158206337777 + 0.0158243755215 + 0.0158281179222 + 0.0158318609798 + 0.0158356046945 + 0.0158393490664 + 0.0158430940957 + 0.0158468397823 + 0.0158505861265 + 0.0158543331284 + 0.0158580807881 + 0.0158618291056 + 0.0158655780812 + 0.0158693277148 + 0.0158730780068 + 0.015876828957 + 0.0158805805658 + 0.0158843328331 + 0.0158880857591 + 0.0158918393439 + 0.0158955935877 + 0.0158993484905 + 0.0159031040525 + 0.0159068602738 + 0.0159106171545 + 0.0159143746946 + 0.0159181328944 + 0.015921891754 + 0.0159256512734 + 0.0159294114527 + 0.0159331722922 + 0.0159369337919 + 0.0159406959519 + 0.0159444587723 + 0.0159482222533 + 0.0159519863949 + 0.0159557511974 + 0.0159595166607 + 0.0159632827851 + 0.0159670495706 + 0.0159708170173 + 0.0159745851254 + 0.015978353895 + 0.0159821233262 + 0.0159858934191 + 0.0159896641738 + 0.0159934355905 + 0.0159972076693 + 0.0160009804102 + 0.0160047538134 + 0.016008527879 + 0.0160123026072 + 0.016016077998 + 0.0160198540516 + 0.016023630768 + 0.0160274081474 + 0.01603118619 + 0.0160349648957 + 0.0160387442648 + 0.0160425242974 + 0.0160463049936 + 0.0160500863534 + 0.016053868377 + 0.0160576510646 + 0.0160614344162 + 0.016065218432 + 0.016069003112 + 0.0160727884565 + 0.0160765744654 + 0.016080361139 + 0.0160841484773 + 0.0160879364804 + 0.0160917251486 + 0.0160955144818 + 0.0160993044803 + 0.016103095144 + 0.0161068864732 + 0.016110678468 + 0.0161144711284 + 0.0161182644547 + 0.0161220584468 + 0.016125853105 + 0.0161296484293 + 0.0161334444198 + 0.0161372410768 + 0.0161410384002 + 0.0161448363903 + 0.0161486350471 + 0.0161524343707 + 0.0161562343613 + 0.0161600350189 + 0.0161638363438 + 0.016167638336 + 0.0161714409956 + 0.0161752443227 + 0.0161790483175 + 0.0161828529801 + 0.0161866583106 + 0.0161904643091 + 0.0161942709758 + 0.0161980783107 + 0.0162018863139 + 0.0162056949857 + 0.016209504326 + 0.0162133143351 + 0.016217125013 + 0.0162209363599 + 0.0162247483758 + 0.016228561061 + 0.0162323744154 + 0.0162361884393 + 0.0162400031327 + 0.0162438184957 + 0.0162476345286 + 0.0162514512313 + 0.0162552686041 + 0.0162590866469 + 0.0162629053601 + 0.0162667247436 + 0.0162705447975 + 0.0162743655221 + 0.0162781869174 + 0.0162820089835 + 0.0162858317206 + 0.0162896551288 + 0.0162934792081 + 0.0162973039588 + 0.0163011293809 + 0.0163049554745 + 0.0163087822398 + 0.0163126096768 + 0.0163164377858 + 0.0163202665668 + 0.0163240960199 + 0.0163279261453 + 0.016331756943 + 0.0163355884132 + 0.016339420556 + 0.0163432533716 + 0.01634708686 + 0.0163509210213 + 0.0163547558557 + 0.0163585913634 + 0.0163624275443 + 0.0163662643987 + 0.0163701019266 + 0.0163739401282 + 0.0163777790035 + 0.0163816185528 + 0.0163854587761 + 0.0163892996735 + 0.0163931412452 + 0.0163969834913 + 0.0164008264119 + 0.0164046700071 + 0.016408514277 + 0.0164123592218 + 0.0164162048415 + 0.0164200511364 + 0.0164238981064 + 0.0164277457518 + 0.0164315940726 + 0.016435443069 + 0.016439292741 + 0.0164431430889 + 0.0164469941127 + 0.0164508458125 + 0.0164546981885 + 0.0164585512407 + 0.0164624049694 + 0.0164662593745 + 0.0164701144563 + 0.0164739702148 + 0.0164778266502 + 0.0164816837626 + 0.0164855415521 + 0.0164894000189 + 0.0164932591629 + 0.0164971189845 + 0.0165009794836 + 0.0165048406604 + 0.016508702515 + 0.0165125650476 + 0.0165164282582 + 0.016520292147 + 0.0165241567141 + 0.0165280219597 + 0.0165318878837 + 0.0165357544864 + 0.0165396217679 + 0.0165434897283 + 0.0165473583677 + 0.0165512276862 + 0.0165550976839 + 0.0165589683611 + 0.0165628397177 + 0.0165667117539 + 0.0165705844699 + 0.0165744578657 + 0.0165783319414 + 0.0165822066973 + 0.0165860821333 + 0.0165899582497 + 0.0165938350465 + 0.0165977125239 + 0.0166015906819 + 0.0166054695208 + 0.0166093490406 + 0.0166132292414 + 0.0166171101234 + 0.0166209916867 + 0.0166248739313 + 0.0166287568575 + 0.0166326404653 + 0.0166365247549 + 0.0166404097263 + 0.0166442953798 + 0.0166481817153 + 0.0166520687331 + 0.0166559564333 + 0.0166598448159 + 0.0166637338812 + 0.0166676236291 + 0.0166715140599 + 0.0166754051736 + 0.0166792969704 + 0.0166831894505 + 0.0166870826138 + 0.0166909764605 + 0.0166948709908 + 0.0166987662048 + 0.0167026621026 + 0.0167065586843 + 0.01671045595 + 0.0167143538999 + 0.0167182525341 + 0.0167221518527 + 0.0167260518557 + 0.0167299525434 + 0.0167338539159 + 0.0167377559733 + 0.0167416587156 + 0.0167455621431 + 0.0167494662558 + 0.0167533710538 + 0.0167572765373 + 0.0167611827065 + 0.0167650895613 + 0.016768997102 + 0.0167729053286 + 0.0167768142414 + 0.0167807238403 + 0.0167846341255 + 0.0167885450972 + 0.0167924567554 + 0.0167963691004 + 0.0168002821321 + 0.0168041958508 + 0.0168081102565 + 0.0168120253493 + 0.0168159411295 + 0.016819857597 + 0.0168237747521 + 0.0168276925948 + 0.0168316111253 + 0.0168355303437 + 0.0168394502501 + 0.0168433708446 + 0.0168472921274 + 0.0168512140985 + 0.0168551367581 + 0.0168590601064 + 0.0168629841434 + 0.0168669088692 + 0.016870834284 + 0.0168747603879 + 0.016878687181 + 0.0168826146635 + 0.0168865428354 + 0.0168904716969 + 0.0168944012481 + 0.0168983314892 + 0.0169022624201 + 0.0169061940412 + 0.0169101263524 + 0.0169140593539 + 0.0169179930459 + 0.0169219274284 + 0.0169258625016 + 0.0169297982656 + 0.0169337347205 + 0.0169376718664 + 0.0169416097035 + 0.0169455482318 + 0.0169494874516 + 0.0169534273628 + 0.0169573679658 + 0.0169613092604 + 0.016965251247 + 0.0169691939256 + 0.0169731372963 + 0.0169770813592 + 0.0169810261145 + 0.0169849715624 + 0.0169889177028 + 0.0169928645359 + 0.016996812062 + 0.017000760281 + 0.017004709193 + 0.0170086587984 + 0.017012609097 + 0.0170165600891 + 0.0170205117749 + 0.0170244641543 + 0.0170284172275 + 0.0170323709947 + 0.017036325456 + 0.0170402806115 + 0.0170442364613 + 0.0170481930055 + 0.0170521502443 + 0.0170561081778 + 0.017060066806 + 0.0170640261293 + 0.0170679861475 + 0.0170719468609 + 0.0170759082697 + 0.0170798703738 + 0.0170838331735 + 0.0170877966688 + 0.0170917608599 + 0.0170957257469 + 0.01709969133 + 0.0171036576092 + 0.0171076245847 + 0.0171115922565 + 0.0171155606249 + 0.0171195296899 + 0.0171234994517 + 0.0171274699103 + 0.017131441066 + 0.0171354129188 + 0.0171393854688 + 0.0171433587162 + 0.0171473326611 + 0.0171513073036 + 0.0171552826438 + 0.017159258682 + 0.0171632354181 + 0.0171672128523 + 0.0171711909847 + 0.0171751698155 + 0.0171791493447 + 0.0171831295726 + 0.0171871104991 + 0.0171910921246 + 0.0171950744489 + 0.0171990574724 + 0.0172030411951 + 0.0172070256171 + 0.0172110107385 + 0.0172149965596 + 0.0172189830803 + 0.0172229703009 + 0.0172269582214 + 0.017230946842 + 0.0172349361628 + 0.0172389261838 + 0.0172429169054 + 0.0172469083275 + 0.0172509004502 + 0.0172548932738 + 0.0172588867983 + 0.0172628810239 + 0.0172668759506 + 0.0172708715787 + 0.0172748679081 + 0.0172788649391 + 0.0172828626718 + 0.0172868611063 + 0.0172908602427 + 0.0172948600811 + 0.0172988606217 + 0.0173028618646 + 0.0173068638098 + 0.0173108664576 + 0.0173148698081 + 0.0173188738614 + 0.0173228786175 + 0.0173268840767 + 0.017330890239 + 0.0173348971046 + 0.0173389046736 + 0.0173429129461 + 0.0173469219222 + 0.0173509316021 + 0.0173549419859 + 0.0173589530737 + 0.0173629648657 + 0.0173669773619 + 0.0173709905625 + 0.0173750044676 + 0.0173790190773 + 0.0173830343918 + 0.0173870504112 + 0.0173910671355 + 0.017395084565 + 0.0173991026998 + 0.0174031215399 + 0.0174071410855 + 0.0174111613368 + 0.0174151822937 + 0.0174192039566 + 0.0174232263254 + 0.0174272494004 + 0.0174312731816 + 0.0174352976692 + 0.0174393228632 + 0.0174433487639 + 0.0174473753713 + 0.0174514026856 + 0.0174554307068 + 0.0174594594352 + 0.0174634888708 + 0.0174675190137 + 0.0174715498641 + 0.0174755814222 + 0.017479613688 + 0.0174836466616 + 0.0174876803432 + 0.0174917147329 + 0.0174957498308 + 0.0174997856371 + 0.0175038221518 + 0.0175078593752 + 0.0175118973073 + 0.0175159359482 + 0.0175199752981 + 0.0175240153571 + 0.0175280561254 + 0.0175320976029 + 0.01753613979 + 0.0175401826866 + 0.017544226293 + 0.0175482706092 + 0.0175523156353 + 0.0175563613716 + 0.0175604078181 + 0.0175644549749 + 0.0175685028422 + 0.0175725514201 + 0.0175766007087 + 0.0175806507082 + 0.0175847014186 + 0.0175887528401 + 0.0175928049729 + 0.0175968578169 + 0.0176009113725 + 0.0176049656396 + 0.0176090206184 + 0.0176130763091 + 0.0176171327118 + 0.0176211898265 + 0.0176252476535 + 0.0176293061928 + 0.0176333654446 + 0.0176374254089 + 0.017641486086 + 0.0176455474759 + 0.0176496095788 + 0.0176536723948 + 0.017657735924 + 0.0176618001665 + 0.0176658651225 + 0.0176699307921 + 0.0176739971755 + 0.0176780642726 + 0.0176821320837 + 0.017686200609 + 0.0176902698484 + 0.0176943398022 + 0.0176984104705 + 0.0177024818533 + 0.0177065539509 + 0.0177106267633 + 0.0177147002907 + 0.0177187745332 + 0.0177228494909 + 0.017726925164 + 0.0177310015525 + 0.0177350786567 + 0.0177391564765 + 0.0177432350122 + 0.0177473142639 + 0.0177513942317 + 0.0177554749157 + 0.0177595563161 + 0.017763638433 + 0.0177677212664 + 0.0177718048166 + 0.0177758890837 + 0.0177799740677 + 0.0177840597689 + 0.0177881461872 + 0.017792233323 + 0.0177963211762 + 0.017800409747 + 0.0178044990356 + 0.0178085890421 + 0.0178126797665 + 0.017816771209 + 0.0178208633698 + 0.017824956249 + 0.0178290498466 + 0.0178331441629 + 0.0178372391979 + 0.0178413349518 + 0.0178454314247 + 0.0178495286167 + 0.017853626528 + 0.0178577251586 + 0.0178618245088 + 0.0178659245786 + 0.0178700253681 + 0.0178741268775 + 0.017878229107 + 0.0178823320566 + 0.0178864357264 + 0.0178905401166 + 0.0178946452273 + 0.0178987510587 + 0.0179028576109 + 0.0179069648839 + 0.017911072878 + 0.0179151815932 + 0.0179192910297 + 0.0179234011876 + 0.017927512067 + 0.0179316236681 + 0.0179357359909 + 0.0179398490357 + 0.0179439628025 + 0.0179480772914 + 0.0179521925027 + 0.0179563084363 + 0.0179604250925 + 0.0179645424714 + 0.0179686605731 + 0.0179727793977 + 0.0179768989453 + 0.0179810192161 + 0.0179851402102 + 0.0179892619278 + 0.0179933843689 + 0.0179975075337 + 0.0180016314223 + 0.0180057560348 + 0.0180098813714 + 0.0180140074322 + 0.0180181342174 + 0.0180222617269 + 0.0180263899611 + 0.0180305189199 + 0.0180346486036 + 0.0180387790122 + 0.0180429101459 + 0.0180470420048 + 0.0180511745891 + 0.0180553078988 + 0.0180594419341 + 0.0180635766952 + 0.018067712182 + 0.0180718483949 + 0.0180759853338 + 0.018080122999 + 0.0180842613906 + 0.0180884005086 + 0.0180925403532 + 0.0180966809246 + 0.0181008222229 + 0.0181049642481 + 0.0181091070005 + 0.0181132504801 + 0.0181173946871 + 0.0181215396216 + 0.0181256852837 + 0.0181298316736 + 0.0181339787914 + 0.0181381266371 + 0.0181422752111 + 0.0181464245133 + 0.0181505745439 + 0.018154725303 + 0.0181588767908 + 0.0181630290074 + 0.0181671819529 + 0.0181713356274 + 0.0181754900311 + 0.0181796451641 + 0.0181838010265 + 0.0181879576185 + 0.0181921149401 + 0.0181962729916 + 0.018200431773 + 0.0182045912844 + 0.018208751526 + 0.018212912498 + 0.0182170742004 + 0.0182212366334 + 0.0182253997971 + 0.0182295636916 + 0.0182337283171 + 0.0182378936737 + 0.0182420597615 + 0.0182462265806 + 0.0182503941312 + 0.0182545624134 + 0.0182587314274 + 0.0182629011732 + 0.018267071651 + 0.0182712428609 + 0.0182754148031 + 0.0182795874776 + 0.0182837608846 + 0.0182879350243 + 0.0182921098967 + 0.0182962855021 + 0.0183004618404 + 0.0183046389119 + 0.0183088167166 + 0.0183129952548 + 0.0183171745265 + 0.0183213545318 + 0.018325535271 + 0.018329716744 + 0.0183338989511 + 0.0183380818924 + 0.018342265568 + 0.018346449978 + 0.0183506351226 + 0.0183548210019 + 0.018359007616 + 0.018363194965 + 0.0183673830491 + 0.0183715718685 + 0.0183757614231 + 0.0183799517133 + 0.018384142739 + 0.0183883345005 + 0.0183925269978 + 0.0183967202311 + 0.0184009142005 + 0.0184051089061 + 0.0184093043481 + 0.0184135005266 + 0.0184176974418 + 0.0184218950937 + 0.0184260934825 + 0.0184302926083 + 0.0184344924712 + 0.0184386930714 + 0.0184428944091 + 0.0184470964842 + 0.0184512992971 + 0.0184555028477 + 0.0184597071362 + 0.0184639121628 + 0.0184681179276 + 0.0184723244307 + 0.0184765316722 + 0.0184807396523 + 0.0184849483711 + 0.0184891578288 + 0.0184933680253 + 0.018497578961 + 0.0185017906359 + 0.0185060030502 + 0.0185102162039 + 0.0185144300972 + 0.0185186447303 + 0.0185228601033 + 0.0185270762162 + 0.0185312930693 + 0.0185355106626 + 0.0185397289963 + 0.0185439480706 + 0.0185481678854 + 0.0185523884411 + 0.0185566097377 + 0.0185608317753 + 0.0185650545541 + 0.0185692780741 + 0.0185735023356 + 0.0185777273387 + 0.0185819530835 + 0.01858617957 + 0.0185904067985 + 0.0185946347691 + 0.0185988634819 + 0.0186030929371 + 0.0186073231347 + 0.0186115540749 + 0.0186157857579 + 0.0186200181837 + 0.0186242513525 + 0.0186284852644 + 0.0186327199196 + 0.0186369553182 + 0.0186411914602 + 0.018645428346 + 0.0186496659755 + 0.0186539043488 + 0.0186581434663 + 0.0186623833279 + 0.0186666239338 + 0.0186708652841 + 0.018675107379 + 0.0186793502186 + 0.018683593803 + 0.0186878381323 + 0.0186920832067 + 0.0186963290264 + 0.0187005755914 + 0.0187048229018 + 0.0187090709579 + 0.0187133197597 + 0.0187175693073 + 0.018721819601 + 0.0187260706408 + 0.0187303224268 + 0.0187345749593 + 0.0187388282382 + 0.0187430822639 + 0.0187473370363 + 0.0187515925556 + 0.0187558488219 + 0.0187601058355 + 0.0187643635963 + 0.0187686221046 + 0.0187728813604 + 0.018777141364 + 0.0187814021154 + 0.0187856636147 + 0.0187899258622 + 0.0187941888579 + 0.0187984526019 + 0.0188027170944 + 0.0188069823356 + 0.0188112483255 + 0.0188155150642 + 0.018819782552 + 0.018824050789 + 0.0188283197752 + 0.0188325895108 + 0.018836859996 + 0.0188411312308 + 0.0188454032155 + 0.0188496759501 + 0.0188539494347 + 0.0188582236696 + 0.0188624986548 + 0.0188667743904 + 0.0188710508767 + 0.0188753281136 + 0.0188796061015 + 0.0188838848403 + 0.0188881643302 + 0.0188924445714 + 0.018896725564 + 0.0189010073081 + 0.0189052898038 + 0.0189095730514 + 0.0189138570508 + 0.0189181418023 + 0.018922427306 + 0.0189267135619 + 0.0189310005704 + 0.0189352883313 + 0.018939576845 + 0.0189438661116 + 0.0189481561311 + 0.0189524469037 + 0.0189567384295 + 0.0189610307087 + 0.0189653237414 + 0.0189696175278 + 0.0189739120679 + 0.0189782073619 + 0.0189825034099 + 0.0189868002121 + 0.0189910977686 + 0.0189953960795 + 0.0189996951449 + 0.0190039949651 + 0.0190082955401 + 0.01901259687 + 0.019016898955 + 0.0190212017952 + 0.0190255053908 + 0.0190298097419 + 0.0190341148486 + 0.0190384207111 + 0.0190427273294 + 0.0190470347037 + 0.0190513428342 + 0.019055651721 + 0.0190599613642 + 0.0190642717639 + 0.0190685829203 + 0.0190728948336 + 0.0190772075038 + 0.019081520931 + 0.0190858351155 + 0.0190901500573 + 0.0190944657566 + 0.0190987822135 + 0.0191030994281 + 0.0191074174006 + 0.0191117361312 + 0.0191160556198 + 0.0191203758668 + 0.0191246968721 + 0.019129018636 + 0.0191333411586 + 0.01913766444 + 0.0191419884803 + 0.0191463132797 + 0.0191506388383 + 0.0191549651562 + 0.0191592922336 + 0.0191636200707 + 0.0191679486674 + 0.0191722780241 + 0.0191766081407 + 0.0191809390175 + 0.0191852706546 + 0.0191896030521 + 0.0191939362101 + 0.0191982701288 + 0.0192026048083 + 0.0192069402487 + 0.0192112764502 + 0.0192156134129 + 0.019219951137 + 0.0192242896225 + 0.0192286288697 + 0.0192329688786 + 0.0192373096494 + 0.0192416511822 + 0.0192459934771 + 0.0192503365343 + 0.0192546803539 + 0.0192590249361 + 0.019263370281 + 0.0192677163886 + 0.0192720632593 + 0.019276410893 + 0.0192807592899 + 0.0192851084501 + 0.0192894583739 + 0.0192938090613 + 0.0192981605124 + 0.0193025127274 + 0.0193068657064 + 0.0193112194496 + 0.0193155739571 + 0.019319929229 + 0.0193242852654 + 0.0193286420666 + 0.0193329996325 + 0.0193373579635 + 0.0193417170595 + 0.0193460769207 + 0.0193504375473 + 0.0193547989395 + 0.0193591610972 + 0.0193635240207 + 0.0193678877101 + 0.0193722521656 + 0.0193766173872 + 0.0193809833751 + 0.0193853501294 + 0.0193897176504 + 0.019394085938 + 0.0193984549925 + 0.0194028248139 + 0.0194071954025 + 0.0194115667583 + 0.0194159388815 + 0.0194203117722 + 0.0194246854306 + 0.0194290598567 + 0.0194334350508 + 0.0194378110129 + 0.0194421877432 + 0.0194465652418 + 0.0194509435089 + 0.0194553225446 + 0.019459702349 + 0.0194640829223 + 0.0194684642646 + 0.019472846376 + 0.0194772292567 + 0.0194816129067 + 0.0194859973264 + 0.0194903825157 + 0.0194947684748 + 0.0194991552038 + 0.0195035427029 + 0.0195079309723 + 0.019512320012 + 0.0195167098221 + 0.0195211004029 + 0.0195254917545 + 0.0195298838769 + 0.0195342767704 + 0.019538670435 + 0.019543064871 + 0.0195474600783 + 0.0195518560572 + 0.0195562528079 + 0.0195606503303 + 0.0195650486248 + 0.0195694476913 + 0.0195738475301 + 0.0195782481413 + 0.019582649525 + 0.0195870516814 + 0.0195914546105 + 0.0195958583126 + 0.0196002627877 + 0.019604668036 + 0.0196090740576 + 0.0196134808527 + 0.0196178884215 + 0.0196222967639 + 0.0196267058802 + 0.0196311157706 + 0.019635526435 + 0.0196399378738 + 0.019644350087 + 0.0196487630747 + 0.0196531768371 + 0.0196575913744 + 0.0196620066866 + 0.0196664227739 + 0.0196708396364 + 0.0196752572743 + 0.0196796756877 + 0.0196840948768 + 0.0196885148416 + 0.0196929355823 + 0.0196973570991 + 0.0197017793921 + 0.0197062024614 + 0.0197106263072 + 0.0197150509295 + 0.0197194763286 + 0.0197239025045 + 0.0197283294575 + 0.0197327571876 + 0.019737185695 + 0.0197416149798 + 0.0197460450421 + 0.0197504758821 + 0.0197549075 + 0.0197593398958 + 0.0197637730697 + 0.0197682070218 + 0.0197726417523 + 0.0197770772614 + 0.019781513549 + 0.0197859506154 + 0.0197903884608 + 0.0197948270852 + 0.0197992664888 + 0.0198037066717 + 0.0198081476341 + 0.0198125893761 + 0.0198170318978 + 0.0198214751994 + 0.019825919281 + 0.0198303641427 + 0.0198348097848 + 0.0198392562072 + 0.0198437034102 + 0.0198481513939 + 0.0198526001585 + 0.019857049704 + 0.0198615000306 + 0.0198659511385 + 0.0198704030277 + 0.0198748556985 + 0.0198793091509 + 0.0198837633851 + 0.0198882184013 + 0.0198926741995 + 0.0198971307799 + 0.0199015881426 + 0.0199060462879 + 0.0199105052157 + 0.0199149649263 + 0.0199194254198 + 0.0199238866963 + 0.019928348756 + 0.019932811599 + 0.0199372752254 + 0.0199417396354 + 0.0199462048292 + 0.0199506708067 + 0.0199551375683 + 0.019959605114 + 0.019964073444 + 0.0199685425583 + 0.0199730124573 + 0.0199774831409 + 0.0199819546093 + 0.0199864268626 + 0.0199908999011 + 0.0199953737248 + 0.0199998483338 + 0.0200043237284 + 0.0200087999086 + 0.0200132768746 + 0.0200177546265 + 0.0200222331645 + 0.0200267124886 + 0.0200311925991 + 0.0200356734961 + 0.0200401551797 + 0.02004463765 + 0.0200491209072 + 0.0200536049515 + 0.0200580897829 + 0.0200625754016 + 0.0200670618077 + 0.0200715490015 + 0.0200760369829 + 0.0200805257522 + 0.0200850153095 + 0.0200895056549 + 0.0200939967886 + 0.0200984887107 + 0.0201029814213 + 0.0201074749206 + 0.0201119692088 + 0.0201164642859 + 0.0201209601521 + 0.0201254568075 + 0.0201299542524 + 0.0201344524867 + 0.0201389515107 + 0.0201434513245 + 0.0201479519282 + 0.020152453322 + 0.0201569555059 + 0.0201614584803 + 0.0201659622451 + 0.0201704668006 + 0.0201749721468 + 0.0201794782839 + 0.020183985212 + 0.0201884929314 + 0.020193001442 + 0.0201975107441 + 0.0202020208379 + 0.0202065317233 + 0.0202110434006 + 0.02021555587 + 0.0202200691314 + 0.0202245831852 + 0.0202290980314 + 0.0202336136702 + 0.0202381301017 + 0.020242647326 + 0.0202471653434 + 0.0202516841538 + 0.0202562037575 + 0.0202607241547 + 0.0202652453453 + 0.0202697673297 + 0.0202742901079 + 0.02027881368 + 0.0202833380462 + 0.0202878632067 + 0.0202923891616 + 0.0202969159109 + 0.020301443455 + 0.0203059717938 + 0.0203105009276 + 0.0203150308565 + 0.0203195615805 + 0.0203240931 + 0.0203286254149 + 0.0203331585255 + 0.0203376924318 + 0.0203422271341 + 0.0203467626324 + 0.0203512989269 + 0.0203558360177 + 0.020360373905 + 0.020364912589 + 0.0203694520697 + 0.0203739923473 + 0.0203785334219 + 0.0203830752937 + 0.0203876179628 + 0.0203921614293 + 0.0203967056935 + 0.0204012507554 + 0.0204057966151 + 0.0204103432729 + 0.0204148907289 + 0.0204194389831 + 0.0204239880357 + 0.020428537887 + 0.0204330885369 + 0.0204376399857 + 0.0204421922335 + 0.0204467452805 + 0.0204512991267 + 0.0204558537723 + 0.0204604092175 + 0.0204649654624 + 0.0204695225071 + 0.0204740803518 + 0.0204786389966 + 0.0204831984417 + 0.0204877586872 + 0.0204923197332 + 0.0204968815799 + 0.0205014442274 + 0.0205060076759 + 0.0205105719255 + 0.0205151369763 + 0.0205197028285 + 0.0205242694822 + 0.0205288369376 + 0.0205334051948 + 0.020537974254 + 0.0205425441152 + 0.0205471147787 + 0.0205516862445 + 0.0205562585129 + 0.0205608315839 + 0.0205654054576 + 0.0205699801343 + 0.0205745556141 + 0.0205791318971 + 0.0205837089835 + 0.0205882868733 + 0.0205928655668 + 0.0205974450641 + 0.0206020253653 + 0.0206066064705 + 0.02061118838 + 0.0206157710938 + 0.0206203546121 + 0.020624938935 + 0.0206295240626 + 0.0206341099952 + 0.0206386967328 + 0.0206432842757 + 0.0206478726238 + 0.0206524617774 + 0.0206570517367 + 0.0206616425017 + 0.0206662340725 + 0.0206708264495 + 0.0206754196326 + 0.020680013622 + 0.0206846084179 + 0.0206892040204 + 0.0206938004296 + 0.0206983976458 + 0.0207029956689 + 0.0207075944993 + 0.0207121941369 + 0.020716794582 + 0.0207213958347 + 0.0207259978952 + 0.0207306007635 + 0.0207352044398 + 0.0207398089243 + 0.0207444142171 + 0.0207490203184 + 0.0207536272282 + 0.0207582349468 + 0.0207628434743 + 0.0207674528107 + 0.0207720629564 + 0.0207766739113 + 0.0207812856757 + 0.0207858982496 + 0.0207905116333 + 0.0207951258268 + 0.0207997408304 + 0.0208043566441 + 0.0208089732681 + 0.0208135907025 + 0.0208182089476 + 0.0208228280033 + 0.0208274478699 + 0.0208320685475 + 0.0208366900363 + 0.0208413123363 + 0.0208459354478 + 0.0208505593709 + 0.0208551841056 + 0.0208598096523 + 0.0208644360109 + 0.0208690631817 + 0.0208736911648 + 0.0208783199603 + 0.0208829495684 + 0.0208875799892 + 0.0208922112228 + 0.0208968432695 + 0.0209014761293 + 0.0209061098024 + 0.0209107442889 + 0.020915379589 + 0.0209200157028 + 0.0209246526304 + 0.0209292903721 + 0.0209339289279 + 0.020938568298 + 0.0209432084825 + 0.0209478494816 + 0.0209524912955 + 0.0209571339241 + 0.0209617773678 + 0.0209664216266 + 0.0209710667007 + 0.0209757125903 + 0.0209803592954 + 0.0209850068162 + 0.0209896551529 + 0.0209943043056 + 0.0209989542744 + 0.0210036050596 + 0.0210082566611 + 0.0210129090793 + 0.0210175623142 + 0.0210222163659 + 0.0210268712346 + 0.0210315269205 + 0.0210361834237 + 0.0210408407443 + 0.0210454988825 + 0.0210501578384 + 0.0210548176122 + 0.021059478204 + 0.021064139614 + 0.0210688018423 + 0.021073464889 + 0.0210781287542 + 0.0210827934383 + 0.0210874589412 + 0.0210921252631 + 0.0210967924041 + 0.0211014603645 + 0.0211061291443 + 0.0211107987437 + 0.0211154691629 + 0.0211201404019 + 0.021124812461 + 0.0211294853402 + 0.0211341590398 + 0.0211388335598 + 0.0211435089003 + 0.0211481850617 + 0.0211528620439 + 0.0211575398472 + 0.0211622184716 + 0.0211668979174 + 0.0211715781846 + 0.0211762592734 + 0.021180941184 + 0.0211856239165 + 0.021190307471 + 0.0211949918477 + 0.0211996770468 + 0.0212043630683 + 0.0212090499124 + 0.0212137375793 + 0.0212184260692 + 0.021223115382 + 0.0212278055181 + 0.0212324964775 + 0.0212371882604 + 0.0212418808669 + 0.0212465742972 + 0.0212512685514 + 0.0212559636297 + 0.0212606595322 + 0.021265356259 + 0.0212700538104 + 0.0212747521863 + 0.0212794513871 + 0.0212841514128 + 0.0212888522636 + 0.0212935539396 + 0.021298256441 + 0.0213029597679 + 0.0213076639204 + 0.0213123688988 + 0.0213170747031 + 0.0213217813334 + 0.0213264887901 + 0.0213311970731 + 0.0213359061826 + 0.0213406161188 + 0.0213453268818 + 0.0213500384718 + 0.0213547508889 + 0.0213594641333 + 0.021364178205 + 0.0213688931043 + 0.0213736088313 + 0.0213783253861 + 0.0213830427689 + 0.0213877609798 + 0.021392480019 + 0.0213971998866 + 0.0214019205828 + 0.0214066421076 + 0.0214113644613 + 0.0214160876441 + 0.0214208116559 + 0.0214255364971 + 0.0214302621677 + 0.0214349886678 + 0.0214397159977 + 0.0214444441575 + 0.0214491731473 + 0.0214539029672 + 0.0214586336175 + 0.0214633650982 + 0.0214680974095 + 0.0214728305515 + 0.0214775645244 + 0.0214822993284 + 0.0214870349636 + 0.0214917714301 + 0.021496508728 + 0.0215012468576 + 0.021505985819 + 0.0215107256122 + 0.0215154662376 + 0.0215202076951 + 0.021524949985 + 0.0215296931073 + 0.0215344370624 + 0.0215391818502 + 0.0215439274709 + 0.0215486739247 + 0.0215534212118 + 0.0215581693322 + 0.0215629182862 + 0.0215676680738 + 0.0215724186952 + 0.0215771701506 + 0.0215819224401 + 0.0215866755639 + 0.021591429522 + 0.0215961843147 + 0.0216009399421 + 0.0216056964043 + 0.0216104537015 + 0.0216152118339 + 0.0216199708015 + 0.0216247306045 + 0.0216294912432 + 0.0216342527175 + 0.0216390150277 + 0.0216437781739 + 0.0216485421563 + 0.0216533069749 + 0.0216580726301 + 0.0216628391218 + 0.0216676064503 + 0.0216723746156 + 0.021677143618 + 0.0216819134576 + 0.0216866841346 + 0.021691455649 + 0.021696228001 + 0.0217010011908 + 0.0217057752185 + 0.0217105500843 + 0.0217153257883 + 0.0217201023307 + 0.0217248797116 + 0.0217296579312 + 0.0217344369895 + 0.0217392168868 + 0.0217439976232 + 0.0217487791989 + 0.0217535616139 + 0.0217583448685 + 0.0217631289627 + 0.0217679138968 + 0.0217726996709 + 0.0217774862852 + 0.0217822737397 + 0.0217870620346 + 0.0217918511701 + 0.0217966411463 + 0.0218014319634 + 0.0218062236215 + 0.0218110161207 + 0.0218158094613 + 0.0218206036434 + 0.021825398667 + 0.0218301945324 + 0.0218349912397 + 0.0218397887891 + 0.0218445871806 + 0.0218493864145 + 0.0218541864909 + 0.0218589874099 + 0.0218637891717 + 0.0218685917765 + 0.0218733952243 + 0.0218781995154 + 0.0218830046499 + 0.0218878106278 + 0.0218926174495 + 0.021897425115 + 0.0219022336245 + 0.021907042978 + 0.0219118531759 + 0.0219166642182 + 0.021921476105 + 0.0219262888366 + 0.021931102413 + 0.0219359168344 + 0.021940732101 + 0.0219455482129 + 0.0219503651702 + 0.0219551829732 + 0.0219600016219 + 0.0219648211165 + 0.0219696414572 + 0.021974462644 + 0.0219792846772 + 0.021984107557 + 0.0219889312833 + 0.0219937558564 + 0.0219985812765 + 0.0220034075437 + 0.0220082346581 + 0.0220130626199 + 0.0220178914293 + 0.0220227210863 + 0.0220275515911 + 0.022032382944 + 0.022037215145 + 0.0220420481942 + 0.0220468820919 + 0.0220517168382 + 0.0220565524332 + 0.022061388877 + 0.0220662261699 + 0.022071064312 + 0.0220759033034 + 0.0220807431442 + 0.0220855838347 + 0.022090425375 + 0.0220952677652 + 0.0221001110054 + 0.0221049550959 + 0.0221098000367 + 0.0221146458281 + 0.0221194924701 + 0.0221243399629 + 0.0221291883067 + 0.0221340375016 + 0.0221388875478 + 0.0221437384454 + 0.0221485901946 + 0.0221534427954 + 0.0221582962482 + 0.0221631505529 + 0.0221680057098 + 0.022172861719 + 0.0221777185807 + 0.022182576295 + 0.022187434862 + 0.022192294282 + 0.022197154555 + 0.0222020156812 + 0.0222068776608 + 0.0222117404939 + 0.0222166041806 + 0.0222214687212 + 0.0222263341157 + 0.0222312003643 + 0.0222360674672 + 0.0222409354245 + 0.0222458042363 + 0.0222506739029 + 0.0222555444243 + 0.0222604158007 + 0.0222652880323 + 0.0222701611192 + 0.0222750350615 + 0.0222799098595 + 0.0222847855132 + 0.0222896620228 + 0.0222945393885 + 0.0222994176104 + 0.0223042966886 + 0.0223091766234 + 0.0223140574148 + 0.022318939063 + 0.0223238215682 + 0.0223287049305 + 0.0223335891501 + 0.0223384742271 + 0.0223433601616 + 0.0223482469539 + 0.022353134604 + 0.0223580231121 + 0.0223629124784 + 0.022367802703 + 0.0223726937861 + 0.0223775857278 + 0.0223824785283 + 0.0223873721876 + 0.0223922667061 + 0.0223971620838 + 0.0224020583208 + 0.0224069554174 + 0.0224118533736 + 0.0224167521897 + 0.0224216518657 + 0.0224265524019 + 0.0224314537984 + 0.0224363560552 + 0.0224412591727 + 0.0224461631509 + 0.0224510679899 + 0.02245597369 + 0.0224608802513 + 0.0224657876739 + 0.022470695958 + 0.0224756051038 + 0.0224805151113 + 0.0224854259807 + 0.0224903377123 + 0.0224952503061 + 0.0225001637623 + 0.022505078081 + 0.0225099932625 + 0.0225149093067 + 0.022519826214 + 0.0225247439845 + 0.0225296626182 + 0.0225345821154 + 0.0225395024762 + 0.0225444237007 + 0.0225493457892 + 0.0225542687417 + 0.0225591925584 + 0.0225641172395 + 0.0225690427851 + 0.0225739691954 + 0.0225788964705 + 0.0225838246106 + 0.0225887536158 + 0.0225936834862 + 0.0225986142221 + 0.0226035458236 + 0.0226084782908 + 0.0226134116239 + 0.022618345823 + 0.0226232808883 + 0.0226282168199 + 0.0226331536181 + 0.0226380912829 + 0.0226430298144 + 0.0226479692129 + 0.0226529094786 + 0.0226578506114 + 0.0226627926117 + 0.0226677354795 + 0.0226726792151 + 0.0226776238185 + 0.0226825692899 + 0.0226875156294 + 0.0226924628373 + 0.0226974109137 + 0.0227023598587 + 0.0227073096724 + 0.0227122603551 + 0.0227172119069 + 0.0227221643279 + 0.0227271176183 + 0.0227320717782 + 0.0227370268078 + 0.0227419827073 + 0.0227469394767 + 0.0227518971163 + 0.0227568556262 + 0.0227618150066 + 0.0227667752576 + 0.0227717363793 + 0.0227766983719 + 0.0227816612356 + 0.0227866249705 + 0.0227915895768 + 0.0227965550546 + 0.0228015214041 + 0.0228064886255 + 0.0228114567188 + 0.0228164256842 + 0.0228213955219 + 0.0228263662321 + 0.0228313378149 + 0.0228363102704 + 0.0228412835988 + 0.0228462578003 + 0.022851232875 + 0.022856208823 + 0.0228611856446 + 0.0228661633398 + 0.0228711419089 + 0.0228761213519 + 0.0228811016691 + 0.0228860828605 + 0.0228910649264 + 0.0228960478669 + 0.0229010316821 + 0.0229060163722 + 0.0229110019373 + 0.0229159883777 + 0.0229209756934 + 0.0229259638846 + 0.0229309529515 + 0.0229359428942 + 0.0229409337129 + 0.0229459254077 + 0.0229509179788 + 0.0229559114263 + 0.0229609057505 + 0.0229659009513 + 0.0229708970291 + 0.0229758939838 + 0.0229808918158 + 0.0229858905252 + 0.0229908901121 + 0.0229958905766 + 0.0230008919189 + 0.0230058941393 + 0.0230108972377 + 0.0230159012144 + 0.0230209060696 + 0.0230259118034 + 0.0230309184159 + 0.0230359259073 + 0.0230409342777 + 0.0230459435274 + 0.0230509536564 + 0.0230559646649 + 0.0230609765531 + 0.0230659893212 + 0.0230710029692 + 0.0230760174973 + 0.0230810329058 + 0.0230860491946 + 0.0230910663641 + 0.0230960844143 + 0.0231011033455 + 0.0231061231577 + 0.0231111438511 + 0.0231161654258 + 0.0231211878821 + 0.0231262112201 + 0.0231312354399 + 0.0231362605417 + 0.0231412865257 + 0.0231463133919 + 0.0231513411406 + 0.0231563697719 + 0.023161399286 + 0.023166429683 + 0.0231714609631 + 0.0231764931264 + 0.0231815261731 + 0.0231865601033 + 0.0231915949172 + 0.0231966306149 + 0.0232016671967 + 0.0232067046626 + 0.0232117430129 + 0.0232167822476 + 0.0232218223669 + 0.023226863371 + 0.0232319052601 + 0.0232369480342 + 0.0232419916936 + 0.0232470362384 + 0.0232520816687 + 0.0232571279848 + 0.0232621751867 + 0.0232672232747 + 0.0232722722488 + 0.0232773221093 + 0.0232823728562 + 0.0232874244898 + 0.0232924770103 + 0.0232975304176 + 0.0233025847121 + 0.0233076398938 + 0.023312695963 + 0.0233177529198 + 0.0233228107642 + 0.0233278694966 + 0.023332929117 + 0.0233379896257 + 0.0233430510227 + 0.0233481133082 + 0.0233531764823 + 0.0233582405453 + 0.0233633054973 + 0.0233683713385 + 0.0233734380689 + 0.0233785056888 + 0.0233835741982 + 0.0233886435975 + 0.0233937138867 + 0.0233987850659 + 0.0234038571354 + 0.0234089300952 + 0.0234140039457 + 0.0234190786868 + 0.0234241543187 + 0.0234292308417 + 0.0234343082559 + 0.0234393865614 + 0.0234444657583 + 0.023449545847 + 0.0234546268274 + 0.0234597086997 + 0.0234647914642 + 0.0234698751209 + 0.0234749596701 + 0.0234800451118 + 0.0234851314463 + 0.0234902186737 + 0.0234953067941 + 0.0235003958077 + 0.0235054857147 + 0.0235105765152 + 0.0235156682094 + 0.0235207607975 + 0.0235258542795 + 0.0235309486556 + 0.0235360439261 + 0.023541140091 + 0.0235462371506 + 0.0235513351049 + 0.0235564339542 + 0.0235615336985 + 0.0235666343381 + 0.0235717358731 + 0.0235768383037 + 0.02358194163 + 0.0235870458521 + 0.0235921509703 + 0.0235972569847 + 0.0236023638954 + 0.0236074717027 + 0.0236125804066 + 0.0236176900073 + 0.023622800505 + 0.0236279118998 + 0.0236330241919 + 0.0236381373815 + 0.0236432514687 + 0.0236483664536 + 0.0236534823365 + 0.0236585991175 + 0.0236637167967 + 0.0236688353742 + 0.0236739548504 + 0.0236790752252 + 0.0236841964989 + 0.0236893186717 + 0.0236944417436 + 0.0236995657149 + 0.0237046905857 + 0.0237098163561 + 0.0237149430264 + 0.0237200705966 + 0.0237251990669 + 0.0237303284376 + 0.0237354587087 + 0.0237405898804 + 0.0237457219528 + 0.0237508549262 + 0.0237559888007 + 0.0237611235764 + 0.0237662592535 + 0.0237713958322 + 0.0237765333125 + 0.0237816716948 + 0.0237868109791 + 0.0237919511655 + 0.0237970922543 + 0.0238022342457 + 0.0238073771396 + 0.0238125209364 + 0.0238176656362 + 0.0238228112392 + 0.0238279577454 + 0.0238331051551 + 0.0238382534683 + 0.0238434026854 + 0.0238485528064 + 0.0238537038315 + 0.0238588557608 + 0.0238640085946 + 0.0238691623329 + 0.0238743169759 + 0.0238794725239 + 0.0238846289768 + 0.023889786335 + 0.0238949445985 + 0.0239001037676 + 0.0239052638423 + 0.0239104248229 + 0.0239155867095 + 0.0239207495022 + 0.0239259132012 + 0.0239310778067 + 0.0239362433189 + 0.0239414097378 + 0.0239465770637 + 0.0239517452967 + 0.023956914437 + 0.0239620844847 + 0.02396725544 + 0.023972427303 + 0.023977600074 + 0.023982773753 + 0.0239879483403 + 0.0239931238359 + 0.0239983002401 + 0.0240034775529 + 0.0240086557747 + 0.0240138349055 + 0.0240190149454 + 0.0240241958947 + 0.0240293777535 + 0.024034560522 + 0.0240397442002 + 0.0240449287885 + 0.0240501142869 + 0.0240553006956 + 0.0240604880148 + 0.0240656762446 + 0.0240708653851 + 0.0240760554367 + 0.0240812463993 + 0.0240864382731 + 0.0240916310584 + 0.0240968247553 + 0.0241020193639 + 0.0241072148844 + 0.024112411317 + 0.0241176086618 + 0.024122806919 + 0.0241280060887 + 0.0241332061711 + 0.0241384071664 + 0.0241436090747 + 0.0241488118962 + 0.024154015631 + 0.0241592202794 + 0.0241644258413 + 0.0241696323172 + 0.024174839707 + 0.0241800480109 + 0.0241852572292 + 0.0241904673619 + 0.0241956784092 + 0.0242008903713 + 0.0242061032484 + 0.0242113170406 + 0.0242165317481 + 0.0242217473709 + 0.0242269639094 + 0.0242321813636 + 0.0242373997338 + 0.02424261902 + 0.0242478392224 + 0.0242530603412 + 0.0242582823766 + 0.0242635053287 + 0.0242687291977 + 0.0242739539837 + 0.0242791796869 + 0.0242844063075 + 0.0242896338456 + 0.0242948623013 + 0.0243000916749 + 0.0243053219666 + 0.0243105531763 + 0.0243157853045 + 0.0243210183511 + 0.0243262523163 + 0.0243314872004 + 0.0243367230034 + 0.0243419597255 + 0.024347197367 + 0.0243524359279 + 0.0243576754084 + 0.0243629158087 + 0.0243681571289 + 0.0243733993693 + 0.0243786425299 + 0.0243838866109 + 0.0243891316125 + 0.0243943775349 + 0.0243996243781 + 0.0244048721425 + 0.0244101208281 + 0.024415370435 + 0.0244206209635 + 0.0244258724138 + 0.0244311247859 + 0.02443637808 + 0.0244416322964 + 0.0244468874351 + 0.0244521434964 + 0.0244574004803 + 0.0244626583871 + 0.0244679172169 + 0.0244731769699 + 0.0244784376462 + 0.024483699246 + 0.0244889617695 + 0.0244942252168 + 0.024499489588 + 0.0245047548835 + 0.0245100211032 + 0.0245152882474 + 0.0245205563163 + 0.0245258253099 + 0.0245310952285 + 0.0245363660722 + 0.0245416378412 + 0.0245469105357 + 0.0245521841557 + 0.0245574587015 + 0.0245627341733 + 0.0245680105712 + 0.0245732878953 + 0.0245785661458 + 0.0245838453229 + 0.0245891254268 + 0.0245944064576 + 0.0245996884154 + 0.0246049713005 + 0.024610255113 + 0.024615539853 + 0.0246208255208 + 0.0246261121164 + 0.0246313996401 + 0.024636688092 + 0.0246419774723 + 0.0246472677812 + 0.0246525590187 + 0.0246578511851 + 0.0246631442805 + 0.0246684383051 + 0.024673733259 + 0.0246790291425 + 0.0246843259557 + 0.0246896236986 + 0.0246949223716 + 0.0247002219748 + 0.0247055225083 + 0.0247108239723 + 0.024716126367 + 0.0247214296924 + 0.0247267339489 + 0.0247320391365 + 0.0247373452554 + 0.0247426523058 + 0.0247479602879 + 0.0247532692017 + 0.0247585790475 + 0.0247638898255 + 0.0247692015357 + 0.0247745141784 + 0.0247798277537 + 0.0247851422618 + 0.0247904577028 + 0.024795774077 + 0.0248010913844 + 0.0248064096253 + 0.0248117287998 + 0.024817048908 + 0.0248223699502 + 0.0248276919265 + 0.024833014837 + 0.024838338682 + 0.0248436634615 + 0.0248489891758 + 0.024854315825 + 0.0248596434093 + 0.0248649719289 + 0.0248703013838 + 0.0248756317743 + 0.0248809631006 + 0.0248862953627 + 0.024891628561 + 0.0248969626954 + 0.0249022977662 + 0.0249076337737 + 0.0249129707178 + 0.0249183085988 + 0.0249236474169 + 0.0249289871721 + 0.0249343278648 + 0.024939669495 + 0.0249450120629 + 0.0249503555687 + 0.0249557000126 + 0.0249610453946 + 0.024966391715 + 0.0249717389739 + 0.0249770871716 + 0.0249824363081 + 0.0249877863836 + 0.0249931373983 + 0.0249984893524 + 0.025003842246 + 0.0250091960793 + 0.0250145508524 + 0.0250199065656 + 0.0250252632189 + 0.0250306208126 + 0.0250359793468 + 0.0250413388216 + 0.0250466992374 + 0.0250520605941 + 0.025057422892 + 0.0250627861312 + 0.025068150312 + 0.0250735154344 + 0.0250788814986 + 0.0250842485048 + 0.0250896164532 + 0.025094985344 + 0.0251003551772 + 0.0251057259531 + 0.0251110976718 + 0.0251164703335 + 0.0251218439384 + 0.0251272184866 + 0.0251325939783 + 0.0251379704136 + 0.0251433477927 + 0.0251487261159 + 0.0251541053832 + 0.0251594855948 + 0.0251648667509 + 0.0251702488516 + 0.0251756318972 + 0.0251810158877 + 0.0251864008234 + 0.0251917867044 + 0.0251971735308 + 0.0252025613029 + 0.0252079500209 + 0.0252133396848 + 0.0252187302948 + 0.0252241218512 + 0.025229514354 + 0.0252349078034 + 0.0252403021997 + 0.025245697543 + 0.0252510938333 + 0.025256491071 + 0.0252618892562 + 0.025267288389 + 0.0252726884696 + 0.0252780894982 + 0.0252834914749 + 0.0252888943999 + 0.0252942982734 + 0.0252997030955 + 0.0253051088664 + 0.0253105155863 + 0.0253159232553 + 0.0253213318737 + 0.0253267414415 + 0.0253321519589 + 0.0253375634261 + 0.0253429758434 + 0.0253483892107 + 0.0253538035284 + 0.0253592187965 + 0.0253646350152 + 0.0253700521848 + 0.0253754703053 + 0.025380889377 + 0.0253863094 + 0.0253917303744 + 0.0253971523005 + 0.0254025751784 + 0.0254079990083 + 0.0254134237903 + 0.0254188495246 + 0.0254242762113 + 0.0254297038508 + 0.025435132443 + 0.0254405619882 + 0.0254459924866 + 0.0254514239382 + 0.0254568563434 + 0.0254622897022 + 0.0254677240148 + 0.0254731592813 + 0.0254785955021 + 0.0254840326771 + 0.0254894708066 + 0.0254949098908 + 0.0255003499298 + 0.0255057909238 + 0.0255112328729 + 0.0255166757774 + 0.0255221196373 + 0.0255275644529 + 0.0255330102243 + 0.0255384569517 + 0.0255439046353 + 0.0255493532752 + 0.0255548028716 + 0.0255602534246 + 0.0255657049345 + 0.0255711574014 + 0.0255766108255 + 0.0255820652069 + 0.0255875205458 + 0.0255929768423 + 0.0255984340967 + 0.0256038923091 + 0.0256093514797 + 0.0256148116086 + 0.0256202726961 + 0.0256257347422 + 0.0256311977472 + 0.0256366617112 + 0.0256421266343 + 0.0256475925169 + 0.0256530593589 + 0.0256585271607 + 0.0256639959223 + 0.0256694656439 + 0.0256749363257 + 0.0256804079679 + 0.0256858805706 + 0.025691354134 + 0.0256968286583 + 0.0257023041437 + 0.0257077805902 + 0.0257132579981 + 0.0257187363676 + 0.0257242156987 + 0.0257296959918 + 0.0257351772469 + 0.0257406594642 + 0.025746142644 + 0.0257516267862 + 0.0257571118912 + 0.0257625979591 + 0.0257680849901 + 0.0257735729843 + 0.0257790619419 + 0.0257845518631 + 0.025790042748 + 0.0257955345969 + 0.0258010274098 + 0.0258065211869 + 0.0258120159285 + 0.0258175116347 + 0.0258230083056 + 0.0258285059415 + 0.0258340045424 + 0.0258395041086 + 0.0258450046403 + 0.0258505061376 + 0.0258560086006 + 0.0258615120296 + 0.0258670164247 + 0.025872521786 + 0.0258780281139 + 0.0258835354083 + 0.0258890436695 + 0.0258945528977 + 0.0259000630931 + 0.0259055742557 + 0.0259110863858 + 0.0259165994835 + 0.0259221135491 + 0.0259276285826 + 0.0259331445843 + 0.0259386615543 + 0.0259441794928 + 0.0259496984 + 0.025955218276 + 0.025960739121 + 0.0259662609351 + 0.0259717837186 + 0.0259773074716 + 0.0259828321943 + 0.0259883578869 + 0.0259938845494 + 0.0259994121822 + 0.0260049407853 + 0.0260104703589 + 0.0260160009033 + 0.0260215324185 + 0.0260270649048 + 0.0260325983623 + 0.0260381327912 + 0.0260436681916 + 0.0260492045637 + 0.0260547419078 + 0.0260602802239 + 0.0260658195122 + 0.026071359773 + 0.0260769010063 + 0.0260824432124 + 0.0260879863914 + 0.0260935305435 + 0.0260990756689 + 0.0261046217677 + 0.0261101688401 + 0.0261157168863 + 0.0261212659064 + 0.0261268159006 + 0.0261323668692 + 0.0261379188121 + 0.0261434717298 + 0.0261490256222 + 0.0261545804896 + 0.0261601363321 + 0.0261656931499 + 0.0261712509433 + 0.0261768097123 + 0.0261823694571 + 0.0261879301779 + 0.0261934918749 + 0.0261990545482 + 0.026204618198 + 0.0262101828246 + 0.0262157484279 + 0.0262213150084 + 0.026226882566 + 0.0262324511009 + 0.0262380206135 + 0.0262435911037 + 0.0262491625718 + 0.026254735018 + 0.0262603084424 + 0.0262658828452 + 0.0262714582266 + 0.0262770345867 + 0.0262826119258 + 0.0262881902439 + 0.0262937695413 + 0.0262993498181 + 0.0263049310745 + 0.0263105133107 + 0.0263160965269 + 0.0263216807232 + 0.0263272658997 + 0.0263328520568 + 0.0263384391944 + 0.0263440273129 + 0.0263496164123 + 0.0263552064929 + 0.0263607975549 + 0.0263663895983 + 0.0263719826234 + 0.0263775766303 + 0.0263831716193 + 0.0263887675904 + 0.0263943645439 + 0.0263999624799 + 0.0264055613987 + 0.0264111613003 + 0.0264167621849 + 0.0264223640528 + 0.0264279669041 + 0.0264335707389 + 0.0264391755575 + 0.02644478136 + 0.0264503881465 + 0.0264559959174 + 0.0264616046726 + 0.0264672144125 + 0.0264728251371 + 0.0264784368467 + 0.0264840495414 + 0.0264896632214 + 0.0264952778869 + 0.026500893538 + 0.0265065101749 + 0.0265121277979 + 0.0265177464069 + 0.0265233660023 + 0.0265289865843 + 0.0265346081528 + 0.0265402307083 + 0.0265458542508 + 0.0265514787804 + 0.0265571042975 + 0.0265627308021 + 0.0265683582944 + 0.0265739867746 + 0.0265796162428 + 0.0265852466993 + 0.0265908781442 + 0.0265965105777 + 0.026602144 + 0.0266077784112 + 0.0266134138115 + 0.0266190502011 + 0.0266246875801 + 0.0266303259488 + 0.0266359653072 + 0.0266416056557 + 0.0266472469943 + 0.0266528893232 + 0.0266585326426 + 0.0266641769527 + 0.0266698222536 + 0.0266754685455 + 0.0266811158287 + 0.0266867641032 + 0.0266924133692 + 0.026698063627 + 0.0267037148766 + 0.0267093671183 + 0.0267150203523 + 0.0267206745786 + 0.0267263297976 + 0.0267319860093 + 0.0267376432139 + 0.0267433014117 + 0.0267489606027 + 0.0267546207872 + 0.0267602819653 + 0.0267659441372 + 0.0267716073031 + 0.0267772714632 + 0.0267829366176 + 0.0267886027665 + 0.02679426991 + 0.0267999380484 + 0.0268056071819 + 0.0268112773105 + 0.0268169484346 + 0.0268226205542 + 0.0268282936695 + 0.0268339677807 + 0.026839642888 + 0.0268453189915 + 0.0268509960914 + 0.026856674188 + 0.0268623532813 + 0.0268680333716 + 0.026873714459 + 0.0268793965438 + 0.026885079626 + 0.0268907637058 + 0.0268964487835 + 0.0269021348591 + 0.026907821933 + 0.0269135100052 + 0.0269191990759 + 0.0269248891453 + 0.0269305802136 + 0.026936272281 + 0.0269419653476 + 0.0269476594136 + 0.0269533544791 + 0.0269590505445 + 0.0269647476097 + 0.0269704456751 + 0.0269761447407 + 0.0269818448068 + 0.0269875458735 + 0.0269932479411 + 0.0269989510096 + 0.0270046550793 + 0.0270103601503 + 0.0270160662228 + 0.027021773297 + 0.0270274813731 + 0.0270331904512 + 0.0270389005315 + 0.0270446116143 + 0.0270503236996 + 0.0270560367876 + 0.0270617508785 + 0.0270674659726 + 0.0270731820699 + 0.0270788991706 + 0.027084617275 + 0.0270903363832 + 0.0270960564954 + 0.0271017776117 + 0.0271074997323 + 0.0271132228574 + 0.0271189469873 + 0.0271246721219 + 0.0271303982617 + 0.0271361254066 + 0.0271418535569 + 0.0271475827127 + 0.0271533128744 + 0.0271590440419 + 0.0271647762155 + 0.0271705093954 + 0.0271762435817 + 0.0271819787747 + 0.0271877149744 + 0.0271934521811 + 0.027199190395 + 0.0272049296162 + 0.0272106698449 + 0.0272164110813 + 0.0272221533256 + 0.0272278965779 + 0.0272336408384 + 0.0272393861073 + 0.0272451323848 + 0.027250879671 + 0.0272566279661 + 0.0272623772703 + 0.0272681275838 + 0.0272738789068 + 0.0272796312394 + 0.0272853845818 + 0.0272911389342 + 0.0272968942967 + 0.0273026506696 + 0.027308408053 + 0.0273141664471 + 0.0273199258521 + 0.0273256862681 + 0.0273314476953 + 0.027337210134 + 0.0273429735842 + 0.0273487380462 + 0.0273545035201 + 0.0273602700062 + 0.0273660375045 + 0.0273718060153 + 0.0273775755388 + 0.027383346075 + 0.0273891176243 + 0.0273948901868 + 0.0274006637626 + 0.027406438352 + 0.027412213955 + 0.027417990572 + 0.027423768203 + 0.0274295468483 + 0.027435326508 + 0.0274411071824 + 0.0274468888715 + 0.0274526715755 + 0.0274584552947 + 0.0274642400292 + 0.0274700257793 + 0.0274758125449 + 0.0274816003265 + 0.0274873891241 + 0.0274931789378 + 0.027498969768 + 0.0275047616147 + 0.0275105544782 + 0.0275163483586 + 0.0275221432561 + 0.0275279391709 + 0.0275337361031 + 0.027539534053 + 0.0275453330207 + 0.0275511330064 + 0.0275569340103 + 0.0275627360325 + 0.0275685390732 + 0.0275743431327 + 0.027580148211 + 0.0275859543084 + 0.0275917614251 + 0.0275975695611 + 0.0276033787168 + 0.0276091888923 + 0.0276150000877 + 0.0276208123033 + 0.0276266255392 + 0.0276324397956 + 0.0276382550726 + 0.0276440713706 + 0.0276498886895 + 0.0276557070297 + 0.0276615263913 + 0.0276673467744 + 0.0276731681793 + 0.0276789906061 + 0.0276848140551 + 0.0276906385263 + 0.02769646402 + 0.0277022905364 + 0.0277081180756 + 0.0277139466378 + 0.0277197762232 + 0.0277256068319 + 0.0277314384642 + 0.0277372711203 + 0.0277431048002 + 0.0277489395043 + 0.0277547752326 + 0.0277606119853 + 0.0277664497627 + 0.0277722885649 + 0.027778128392 + 0.0277839692444 + 0.0277898111221 + 0.0277956540253 + 0.0278014979542 + 0.027807342909 + 0.0278131888899 + 0.027819035897 + 0.0278248839305 + 0.0278307329907 + 0.0278365830776 + 0.0278424341916 + 0.0278482863326 + 0.027854139501 + 0.0278599936969 + 0.0278658489205 + 0.027871705172 + 0.0278775624515 + 0.0278834207592 + 0.0278892800954 + 0.0278951404601 + 0.0279010018536 + 0.0279068642761 + 0.0279127277277 + 0.0279185922086 + 0.027924457719 + 0.0279303242591 + 0.027936191829 + 0.027942060429 + 0.0279479300592 + 0.0279538007198 + 0.027959672411 + 0.0279655451329 + 0.0279714188858 + 0.0279772936698 + 0.0279831694851 + 0.0279890463319 + 0.0279949242104 + 0.0280008031207 + 0.028006683063 + 0.0280125640376 + 0.0280184460445 + 0.028024329084 + 0.0280302131563 + 0.0280360982615 + 0.0280419843998 + 0.0280478715714 + 0.0280537597765 + 0.0280596490152 + 0.0280655392878 + 0.0280714305944 + 0.0280773229352 + 0.0280832163104 + 0.0280891107202 + 0.0280950061647 + 0.0281009026441 + 0.0281068001587 + 0.0281126987085 + 0.0281185982939 + 0.0281244989149 + 0.0281304005717 + 0.0281363032645 + 0.0281422069936 + 0.028148111759 + 0.028154017561 + 0.0281599243998 + 0.0281658322754 + 0.0281717411882 + 0.0281776511383 + 0.0281835621259 + 0.0281894741511 + 0.0281953872142 + 0.0282013013153 + 0.0282072164546 + 0.0282131326322 + 0.0282190498485 + 0.0282249681035 + 0.0282308873974 + 0.0282368077305 + 0.0282427291029 + 0.0282486515147 + 0.0282545749662 + 0.0282604994576 + 0.0282664249889 + 0.0282723515605 + 0.0282782791725 + 0.0282842078251 + 0.0282901375184 + 0.0282960682527 + 0.0283020000281 + 0.0283079328448 + 0.028313866703 + 0.0283198016028 + 0.0283257375446 + 0.0283316745283 + 0.0283376125543 + 0.0283435516227 + 0.0283494917337 + 0.0283554328875 + 0.0283613750842 + 0.028367318324 + 0.0283732626072 + 0.0283792079339 + 0.0283851543042 + 0.0283911017185 + 0.0283970501767 + 0.0284029996793 + 0.0284089502262 + 0.0284149018178 + 0.0284208544541 + 0.0284268081354 + 0.0284327628618 + 0.0284387186336 + 0.028444675451 + 0.028450633314 + 0.0284565922229 + 0.0284625521779 + 0.0284685131791 + 0.0284744752268 + 0.0284804383211 + 0.0284864024622 + 0.0284923676503 + 0.0284983338855 + 0.0285043011682 + 0.0285102694983 + 0.0285162388762 + 0.028522209302 + 0.0285281807759 + 0.0285341532981 + 0.0285401268687 + 0.028546101488 + 0.0285520771561 + 0.0285580538733 + 0.0285640316396 + 0.0285700104553 + 0.0285759903205 + 0.0285819712356 + 0.0285879532005 + 0.0285939362156 + 0.028599920281 + 0.0286059053968 + 0.0286118915634 + 0.0286178787808 + 0.0286238670492 + 0.0286298563689 + 0.0286358467399 + 0.0286418381626 + 0.0286478306371 + 0.0286538241635 + 0.028659818742 + 0.0286658143729 + 0.0286718110563 + 0.0286778087924 + 0.0286838075814 + 0.0286898074235 + 0.0286958083188 + 0.0287018102676 + 0.02870781327 + 0.0287138173262 + 0.0287198224364 + 0.0287258286008 + 0.0287318358196 + 0.0287378440929 + 0.0287438534209 + 0.0287498638039 + 0.028755875242 + 0.0287618877354 + 0.0287679012842 + 0.0287739158887 + 0.0287799315491 + 0.0287859482655 + 0.0287919660381 + 0.0287979848671 + 0.0288040047528 + 0.0288100256951 + 0.0288160476945 + 0.028822070751 + 0.0288280948648 + 0.0288341200362 + 0.0288401462652 + 0.0288461735522 + 0.0288522018972 + 0.0288582313005 + 0.0288642617622 + 0.0288702932825 + 0.0288763258617 + 0.0288823594999 + 0.0288883941973 + 0.028894429954 + 0.0289004667703 + 0.0289065046464 + 0.0289125435824 + 0.0289185835785 + 0.0289246246349 + 0.0289306667518 + 0.0289367099294 + 0.0289427541678 + 0.0289487994673 + 0.0289548458281 + 0.0289608932503 + 0.028966941734 + 0.0289729912796 + 0.0289790418872 + 0.0289850935569 + 0.028991146289 + 0.0289972000836 + 0.0290032549409 + 0.0290093108612 + 0.0290153678446 + 0.0290214258912 + 0.0290274850013 + 0.0290335451751 + 0.0290396064128 + 0.0290456687145 + 0.0290517320803 + 0.0290577965107 + 0.0290638620056 + 0.0290699285652 + 0.0290759961899 + 0.0290820648797 + 0.0290881346349 + 0.0290942054555 + 0.029100277342 + 0.0291063502943 + 0.0291124243127 + 0.0291184993973 + 0.0291245755485 + 0.0291306527663 + 0.0291367310509 + 0.0291428104026 + 0.0291488908215 + 0.0291549723077 + 0.0291610548616 + 0.0291671384833 + 0.0291732231729 + 0.0291793089306 + 0.0291853957567 + 0.0291914836514 + 0.0291975726147 + 0.029203662647 + 0.0292097537483 + 0.0292158459189 + 0.029221939159 + 0.0292280334688 + 0.0292341288483 + 0.0292402252979 + 0.0292463228178 + 0.029252421408 + 0.0292585210688 + 0.0292646218004 + 0.029270723603 + 0.0292768264767 + 0.0292829304218 + 0.0292890354384 + 0.0292951415267 + 0.0293012486869 + 0.0293073569193 + 0.0293134662239 + 0.029319576601 + 0.0293256880507 + 0.0293318005733 + 0.0293379141689 + 0.0293440288378 + 0.0293501445801 + 0.029356261396 + 0.0293623792856 + 0.0293684982493 + 0.0293746182871 + 0.0293807393993 + 0.029386861586 + 0.0293929848475 + 0.0293991091839 + 0.0294052345954 + 0.0294113610822 + 0.0294174886444 + 0.0294236172824 + 0.0294297469962 + 0.0294358777861 + 0.0294420096523 + 0.0294481425948 + 0.029454276614 + 0.02946041171 + 0.029466547883 + 0.0294726851332 + 0.0294788234608 + 0.0294849628659 + 0.0294911033488 + 0.0294972449097 + 0.0295033875486 + 0.0295095312659 + 0.0295156760618 + 0.0295218219363 + 0.0295279688897 + 0.0295341169222 + 0.029540266034 + 0.0295464162252 + 0.0295525674961 + 0.0295587198468 + 0.0295648732775 + 0.0295710277885 + 0.0295771833799 + 0.0295833400519 + 0.0295894978046 + 0.0295956566384 + 0.0296018165533 + 0.0296079775496 + 0.0296141396274 + 0.029620302787 + 0.0296264670284 + 0.029632632352 + 0.0296387987579 + 0.0296449662464 + 0.0296511348174 + 0.0296573044714 + 0.0296634752085 + 0.0296696470288 + 0.0296758199325 + 0.0296819939199 + 0.0296881689911 + 0.0296943451463 + 0.0297005223857 + 0.0297067007096 + 0.029712880118 + 0.0297190606112 + 0.0297252421894 + 0.0297314248527 + 0.0297376086014 + 0.0297437934356 + 0.0297499793556 + 0.0297561663615 + 0.0297623544535 + 0.0297685436318 + 0.0297747338966 + 0.0297809252481 + 0.0297871176864 + 0.0297933112119 + 0.0297995058245 + 0.0298057015247 + 0.0298118983124 + 0.029818096188 + 0.0298242951517 + 0.0298304952035 + 0.0298366963437 + 0.0298428985726 + 0.0298491018902 + 0.0298553062968 + 0.0298615117926 + 0.0298677183777 + 0.0298739260524 + 0.0298801348168 + 0.0298863446711 + 0.0298925556156 + 0.0298987676504 + 0.0299049807757 + 0.0299111949917 + 0.0299174102986 + 0.0299236266966 + 0.0299298441858 + 0.0299360627665 + 0.0299422824389 + 0.0299485032031 + 0.0299547250594 + 0.0299609480078 + 0.0299671720488 + 0.0299733971823 + 0.0299796234086 + 0.0299858507279 + 0.0299920791405 + 0.0299983086464 + 0.0300045392458 + 0.0300107709391 + 0.0300170037263 + 0.0300232376076 + 0.0300294725833 + 0.0300357086535 + 0.0300419458185 + 0.0300481840784 + 0.0300544234334 + 0.0300606638836 + 0.0300669054294 + 0.0300731480709 + 0.0300793918082 + 0.0300856366417 + 0.0300918825714 + 0.0300981295975 + 0.0301043777203 + 0.0301106269399 + 0.0301168772566 + 0.0301231286705 + 0.0301293811818 + 0.0301356347908 + 0.0301418894975 + 0.0301481453022 + 0.0301544022052 + 0.0301606602065 + 0.0301669193064 + 0.030173179505 + 0.0301794408026 + 0.0301857031994 + 0.0301919666955 + 0.0301982312912 + 0.0302044969866 + 0.0302107637819 + 0.0302170316774 + 0.0302233006731 + 0.0302295707694 + 0.0302358419664 + 0.0302421142642 + 0.0302483876632 + 0.0302546621634 + 0.0302609377651 + 0.0302672144685 + 0.0302734922737 + 0.030279771181 + 0.0302860511905 + 0.0302923323025 + 0.0302986145171 + 0.0303048978345 + 0.0303111822549 + 0.0303174677786 + 0.0303237544057 + 0.0303300421363 + 0.0303363309708 + 0.0303426209093 + 0.0303489119519 + 0.0303552040989 + 0.0303614973505 + 0.0303677917069 + 0.0303740871682 + 0.0303803837346 + 0.0303866814064 + 0.0303929801838 + 0.0303992800669 + 0.0304055810559 + 0.030411883151 + 0.0304181863525 + 0.0304244906604 + 0.0304307960751 + 0.0304371025967 + 0.0304434102254 + 0.0304497189613 + 0.0304560288047 + 0.0304623397559 + 0.0304686518148 + 0.0304749649819 + 0.0304812792572 + 0.030487594641 + 0.0304939111334 + 0.0305002287347 + 0.030506547445 + 0.0305128672645 + 0.0305191881935 + 0.030525510232 + 0.0305318333805 + 0.0305381576389 + 0.0305444830075 + 0.0305508094865 + 0.0305571370762 + 0.0305634657766 + 0.030569795588 + 0.0305761265106 + 0.0305824585445 + 0.0305887916901 + 0.0305951259474 + 0.0306014613167 + 0.0306077977981 + 0.0306141353919 + 0.0306204740982 + 0.0306268139173 + 0.0306331548493 + 0.0306394968945 + 0.0306458400529 + 0.0306521843249 + 0.0306585297107 + 0.0306648762103 + 0.0306712238241 + 0.0306775725521 + 0.0306839223947 + 0.030690273352 + 0.0306966254241 + 0.0307029786114 + 0.0307093329139 + 0.030715688332 + 0.0307220448657 + 0.0307284025152 + 0.0307347612809 + 0.0307411211628 + 0.0307474821612 + 0.0307538442762 + 0.0307602075081 + 0.030766571857 + 0.0307729373232 + 0.0307793039068 + 0.0307856716081 + 0.0307920404271 + 0.0307984103643 + 0.0308047814196 + 0.0308111535934 + 0.0308175268858 + 0.030823901297 + 0.0308302768272 + 0.0308366534766 + 0.0308430312454 + 0.0308494101339 + 0.0308557901421 + 0.0308621712703 + 0.0308685535188 + 0.0308749368876 + 0.0308813213769 + 0.0308877069871 + 0.0308940937183 + 0.0309004815706 + 0.0309068705443 + 0.0309132606395 + 0.0309196518566 + 0.0309260441956 + 0.0309324376567 + 0.0309388322402 + 0.0309452279463 + 0.0309516247751 + 0.0309580227268 + 0.0309644218018 + 0.030970822 + 0.0309772233218 + 0.0309836257673 + 0.0309900293367 + 0.0309964340303 + 0.0310028398482 + 0.0310092467907 + 0.0310156548578 + 0.0310220640499 + 0.0310284743671 + 0.0310348858096 + 0.0310412983777 + 0.0310477120714 + 0.031054126891 + 0.0310605428368 + 0.0310669599088 + 0.0310733781074 + 0.0310797974326 + 0.0310862178848 + 0.031092639464 + 0.0310990621706 + 0.0311054860046 + 0.0311119109663 + 0.0311183370559 + 0.0311247642736 + 0.0311311926196 + 0.031137622094 + 0.0311440526971 + 0.0311504844291 + 0.0311569172902 + 0.0311633512806 + 0.0311697864004 + 0.0311762226499 + 0.0311826600292 + 0.0311890985387 + 0.0311955381783 + 0.0312019789485 + 0.0312084208493 + 0.031214863881 + 0.0312213080437 + 0.0312277533377 + 0.0312341997631 + 0.0312406473202 + 0.0312470960092 + 0.0312535458302 + 0.0312599967834 + 0.0312664488691 + 0.0312729020875 + 0.0312793564387 + 0.0312858119229 + 0.0312922685404 + 0.0312987262913 + 0.0313051851759 + 0.0313116451943 + 0.0313181063467 + 0.0313245686334 + 0.0313310320545 + 0.0313374966103 + 0.0313439623009 + 0.0313504291266 + 0.0313568970874 + 0.0313633661837 + 0.0313698364157 + 0.0313763077834 + 0.0313827802873 + 0.0313892539273 + 0.0313957287038 + 0.0314022046169 + 0.0314086816668 + 0.0314151598538 + 0.0314216391779 + 0.0314281196396 + 0.0314346012388 + 0.0314410839759 + 0.031447567851 + 0.0314540528643 + 0.0314605390161 + 0.0314670263065 + 0.0314735147357 + 0.0314800043039 + 0.0314864950114 + 0.0314929868583 + 0.0314994798448 + 0.0315059739712 + 0.0315124692376 + 0.0315189656442 + 0.0315254631912 + 0.0315319618789 + 0.0315384617074 + 0.0315449626769 + 0.0315514647877 + 0.0315579680399 + 0.0315644724337 + 0.0315709779693 + 0.031577484647 + 0.0315839924669 + 0.0315905014292 + 0.0315970115342 + 0.031603522782 + 0.0316100351728 + 0.0316165487069 + 0.0316230633844 + 0.0316295792056 + 0.0316360961705 + 0.0316426142796 + 0.0316491335328 + 0.0316556539305 + 0.0316621754728 + 0.03166869816 + 0.0316752219922 + 0.0316817469697 + 0.0316882730926 + 0.0316948003611 + 0.0317013287755 + 0.0317078583359 + 0.0317143890426 + 0.0317209208957 + 0.0317274538955 + 0.0317339880422 + 0.0317405233358 + 0.0317470597768 + 0.0317535973652 + 0.0317601361012 + 0.0317666759852 + 0.0317732170171 + 0.0317797591974 + 0.0317863025261 + 0.0317928470034 + 0.0317993926297 + 0.031805939405 + 0.0318124873295 + 0.0318190364036 + 0.0318255866273 + 0.0318321380009 + 0.0318386905246 + 0.0318452441985 + 0.031851799023 + 0.0318583549981 + 0.0318649121241 + 0.0318714704012 + 0.0318780298295 + 0.0318845904094 + 0.031891152141 + 0.0318977150244 + 0.03190427906 + 0.0319108442478 + 0.0319174105882 + 0.0319239780812 + 0.0319305467272 + 0.0319371165263 + 0.0319436874787 + 0.0319502595846 + 0.0319568328442 + 0.0319634072577 + 0.0319699828254 + 0.0319765595474 + 0.0319831374239 + 0.0319897164552 + 0.0319962966413 + 0.0320028779826 + 0.0320094604793 + 0.0320160441315 + 0.0320226289394 + 0.0320292149033 + 0.0320358020233 + 0.0320423902997 + 0.0320489797327 + 0.0320555703224 + 0.032062162069 + 0.0320687549728 + 0.032075349034 + 0.0320819442528 + 0.0320885406293 + 0.0320951381639 + 0.0321017368566 + 0.0321083367076 + 0.0321149377173 + 0.0321215398858 + 0.0321281432132 + 0.0321347476999 + 0.0321413533459 + 0.0321479601516 + 0.032154568117 + 0.0321611772425 + 0.0321677875282 + 0.0321743989743 + 0.0321810115811 + 0.0321876253486 + 0.0321942402772 + 0.032200856367 + 0.0322074736183 + 0.0322140920312 + 0.032220711606 + 0.0322273323428 + 0.0322339542418 + 0.0322405773033 + 0.0322472015275 + 0.0322538269146 + 0.0322604534647 + 0.0322670811781 + 0.0322737100549 + 0.0322803400955 + 0.0322869712999 + 0.0322936036684 + 0.0323002372013 + 0.0323068718986 + 0.0323135077606 + 0.0323201447876 + 0.0323267829796 + 0.032333422337 + 0.0323400628599 + 0.0323467045485 + 0.032353347403 + 0.0323599914237 + 0.0323666366108 + 0.0323732829643 + 0.0323799304847 + 0.0323865791719 + 0.0323932290264 + 0.0323998800482 + 0.0324065322376 + 0.0324131855947 + 0.0324198401199 + 0.0324264958132 + 0.0324331526749 + 0.0324398107052 + 0.0324464699043 + 0.0324531302724 + 0.0324597918097 + 0.0324664545165 + 0.0324731183928 + 0.032479783439 + 0.0324864496553 + 0.0324931170417 + 0.0324997855986 + 0.0325064553262 + 0.0325131262246 + 0.032519798294 + 0.0325264715348 + 0.032533145947 + 0.0325398215308 + 0.0325464982866 + 0.0325531762144 + 0.0325598553146 + 0.0325665355872 + 0.0325732170326 + 0.0325798996508 + 0.0325865834422 + 0.0325932684069 + 0.0325999545451 + 0.0326066418571 + 0.032613330343 + 0.032620020003 + 0.0326267108374 + 0.0326334028464 + 0.0326400960301 + 0.0326467903888 + 0.0326534859227 + 0.032660182632 + 0.0326668805168 + 0.0326735795775 + 0.0326802798141 + 0.032686981227 + 0.0326936838163 + 0.0327003875822 + 0.0327070925249 + 0.0327137986447 + 0.0327205059417 + 0.0327272144161 + 0.0327339240682 + 0.0327406348982 + 0.0327473469063 + 0.0327540600926 + 0.0327607744574 + 0.0327674900009 + 0.0327742067233 + 0.0327809246248 + 0.0327876437056 + 0.0327943639659 + 0.032801085406 + 0.032807808026 + 0.0328145318261 + 0.0328212568066 + 0.0328279829676 + 0.0328347103094 + 0.0328414388321 + 0.032848168536 + 0.0328548994214 + 0.0328616314883 + 0.032868364737 + 0.0328750991677 + 0.0328818347806 + 0.0328885715759 + 0.0328953095539 + 0.0329020487147 + 0.0329087890585 + 0.0329155305856 + 0.0329222732962 + 0.0329290171904 + 0.0329357622685 + 0.0329425085306 + 0.0329492559771 + 0.0329560046081 + 0.0329627544237 + 0.0329695054243 + 0.03297625761 + 0.032983010981 + 0.0329897655376 + 0.0329965212799 + 0.0330032782082 + 0.0330100363226 + 0.0330167956234 + 0.0330235561108 + 0.033030317785 + 0.0330370806461 + 0.0330438446945 + 0.0330506099303 + 0.0330573763537 + 0.0330641439649 + 0.0330709127641 + 0.0330776827517 + 0.0330844539276 + 0.0330912262922 + 0.0330979998457 + 0.0331047745883 + 0.0331115505202 + 0.0331183276415 + 0.0331251059526 + 0.0331318854536 + 0.0331386661447 + 0.0331454480262 + 0.0331522310982 + 0.0331590153609 + 0.0331658008146 + 0.0331725874595 + 0.0331793752957 + 0.0331861643235 + 0.0331929545432 + 0.0331997459548 + 0.0332065385587 + 0.033213332355 + 0.0332201273439 + 0.0332269235256 + 0.0332337209004 + 0.0332405194685 + 0.0332473192301 + 0.0332541201853 + 0.0332609223344 + 0.0332677256776 + 0.0332745302151 + 0.0332813359472 + 0.033288142874 + 0.0332949509957 + 0.0333017603125 + 0.0333085708248 + 0.0333153825326 + 0.0333221954361 + 0.0333290095357 + 0.0333358248314 + 0.0333426413236 + 0.0333494590124 + 0.033356277898 + 0.0333630979806 + 0.0333699192605 + 0.0333767417379 + 0.0333835654129 + 0.0333903902858 + 0.0333972163568 + 0.0334040436261 + 0.0334108720939 + 0.0334177017604 + 0.0334245326259 + 0.0334313646905 + 0.0334381979544 + 0.033445032418 + 0.0334518680812 + 0.0334587049445 + 0.033465543008 + 0.0334723822718 + 0.0334792227363 + 0.0334860644016 + 0.033492907268 + 0.0334997513356 + 0.0335065966046 + 0.0335134430754 + 0.033520290748 + 0.0335271396227 + 0.0335339896997 + 0.0335408409792 + 0.0335476934614 + 0.0335545471466 + 0.0335614020349 + 0.0335682581266 + 0.0335751154219 + 0.0335819739209 + 0.0335888336239 + 0.0335956945312 + 0.0336025566428 + 0.0336094199591 + 0.0336162844802 + 0.0336231502063 + 0.0336300171378 + 0.0336368852747 + 0.0336437546172 + 0.0336506251657 + 0.0336574969203 + 0.0336643698812 + 0.0336712440486 + 0.0336781194228 + 0.0336849960039 + 0.0336918737922 + 0.0336987527879 + 0.0337056329912 + 0.0337125144022 + 0.0337193970213 + 0.0337262808486 + 0.0337331658844 + 0.0337400521288 + 0.0337469395821 + 0.0337538282444 + 0.033760718116 + 0.0337676091971 + 0.033774501488 + 0.0337813949888 + 0.0337882896997 + 0.0337951856209 + 0.0338020827527 + 0.0338089810953 + 0.0338158806489 + 0.0338227814136 + 0.0338296833898 + 0.0338365865776 + 0.0338434909773 + 0.033850396589 + 0.0338573034129 + 0.0338642114494 + 0.0338711206985 + 0.0338780311605 + 0.0338849428357 + 0.0338918557241 + 0.0338987698261 + 0.0339056851419 + 0.0339126016716 + 0.0339195194155 + 0.0339264383738 + 0.0339333585468 + 0.0339402799345 + 0.0339472025372 + 0.0339541263552 + 0.0339610513887 + 0.0339679776378 + 0.0339749051029 + 0.033981833784 + 0.0339887636814 + 0.0339956947954 + 0.0340026271261 + 0.0340095606737 + 0.0340164954386 + 0.0340234314208 + 0.0340303686205 + 0.0340373070382 + 0.0340442466738 + 0.0340511875276 + 0.0340581295999 + 0.0340650728909 + 0.0340720174008 + 0.0340789631297 + 0.034085910078 + 0.0340928582457 + 0.0340998076332 + 0.0341067582407 + 0.0341137100683 + 0.0341206631163 + 0.0341276173849 + 0.0341345728743 + 0.0341415295847 + 0.0341484875163 + 0.0341554466694 + 0.0341624070441 + 0.0341693686407 + 0.0341763314595 + 0.0341832955005 + 0.034190260764 + 0.0341972272503 + 0.0342041949595 + 0.0342111638919 + 0.0342181340477 + 0.034225105427 + 0.0342320780302 + 0.0342390518574 + 0.0342460269088 + 0.0342530031847 + 0.0342599806852 + 0.0342669594107 + 0.0342739393612 + 0.034280920537 + 0.0342879029384 + 0.0342948865655 + 0.0343018714186 + 0.0343088574978 + 0.0343158448035 + 0.0343228333357 + 0.0343298230948 + 0.0343368140809 + 0.0343438062942 + 0.034350799735 + 0.0343577944035 + 0.0343647902999 + 0.0343717874244 + 0.0343787857772 + 0.0343857853586 + 0.0343927861687 + 0.0343997882078 + 0.0344067914761 + 0.0344137959738 + 0.0344208017012 + 0.0344278086583 + 0.0344348168456 + 0.034441826263 + 0.034448836911 + 0.0344558487897 + 0.0344628618993 + 0.03446987624 + 0.0344768918121 + 0.0344839086157 + 0.0344909266512 + 0.0344979459186 + 0.0345049664182 + 0.0345119881503 + 0.034519011115 + 0.0345260353126 + 0.0345330607432 + 0.0345400874072 + 0.0345471153047 + 0.0345541444359 + 0.034561174801 + 0.0345682064003 + 0.034575239234 + 0.0345822733023 + 0.0345893086054 + 0.0345963451436 + 0.0346033829169 + 0.0346104219258 + 0.0346174621703 + 0.0346245036507 + 0.0346315463673 + 0.0346385903201 + 0.0346456355095 + 0.0346526819357 + 0.0346597295989 + 0.0346667784992 + 0.034673828637 + 0.0346808800124 + 0.0346879326257 + 0.034694986477 + 0.0347020415667 + 0.0347090978948 + 0.0347161554616 + 0.0347232142674 + 0.0347302743123 + 0.0347373355967 + 0.0347443981206 + 0.0347514618843 + 0.034758526888 + 0.034765593132 + 0.0347726606164 + 0.0347797293416 + 0.0347867993076 + 0.0347938705147 + 0.0348009429632 + 0.0348080166532 + 0.034815091585 + 0.0348221677588 + 0.0348292451747 + 0.0348363238331 + 0.0348434037342 + 0.0348504848781 + 0.0348575672651 + 0.0348646508953 + 0.0348717357691 + 0.0348788218867 + 0.0348859092481 + 0.0348929978538 + 0.0349000877038 + 0.0349071787984 + 0.0349142711379 + 0.0349213647224 + 0.0349284595521 + 0.0349355556274 + 0.0349426529483 + 0.0349497515152 + 0.0349568513282 + 0.0349639523875 + 0.0349710546934 + 0.0349781582461 + 0.0349852630459 + 0.0349923690928 + 0.0349994763872 + 0.0350065849293 + 0.0350136947192 + 0.0350208057573 + 0.0350279180437 + 0.0350350315786 + 0.0350421463623 + 0.035049262395 + 0.0350563796769 + 0.0350634982082 + 0.0350706179891 + 0.0350777390199 + 0.0350848613008 + 0.035091984832 + 0.0350991096137 + 0.0351062356461 + 0.0351133629295 + 0.0351204914641 + 0.03512762125 + 0.0351347522876 + 0.035141884577 + 0.0351490181185 + 0.0351561529122 + 0.0351632889585 + 0.0351704262575 + 0.0351775648093 + 0.0351847046144 + 0.0351918456728 + 0.0351989879848 + 0.0352061315507 + 0.0352132763705 + 0.0352204224447 + 0.0352275697733 + 0.0352347183566 + 0.0352418681948 + 0.0352490192881 + 0.0352561716368 + 0.0352633252411 + 0.0352704801012 + 0.0352776362173 + 0.0352847935896 + 0.0352919522184 + 0.0352991121039 + 0.0353062732463 + 0.0353134356458 + 0.0353205993026 + 0.035327764217 + 0.0353349303892 + 0.0353420978194 + 0.0353492665078 + 0.0353564364547 + 0.0353636076602 + 0.0353707801246 + 0.0353779538481 + 0.035385128831 + 0.0353923050734 + 0.0353994825755 + 0.0354066613377 + 0.0354138413601 + 0.0354210226429 + 0.0354282051864 + 0.0354353889907 + 0.0354425740561 + 0.0354497603829 + 0.0354569479712 + 0.0354641368213 + 0.0354713269333 + 0.0354785183076 + 0.0354857109443 + 0.0354929048436 + 0.0355001000058 + 0.0355072964312 + 0.0355144941198 + 0.0355216930719 + 0.0355288932878 + 0.0355360947677 + 0.0355432975118 + 0.0355505015203 + 0.0355577067935 + 0.0355649133315 + 0.0355721211347 + 0.0355793302031 + 0.0355865405371 + 0.0355937521368 + 0.0356009650025 + 0.0356081791344 + 0.0356153945327 + 0.0356226111977 + 0.0356298291295 + 0.0356370483285 + 0.0356442687947 + 0.0356514905285 + 0.03565871353 + 0.0356659377995 + 0.0356731633372 + 0.0356803901434 + 0.0356876182182 + 0.0356948475618 + 0.0357020781746 + 0.0357093100567 + 0.0357165432083 + 0.0357237776296 + 0.035731013321 + 0.0357382502826 + 0.0357454885146 + 0.0357527280172 + 0.0357599687907 + 0.0357672108354 + 0.0357744541513 + 0.0357816987388 + 0.0357889445981 + 0.0357961917293 + 0.0358034401328 + 0.0358106898087 + 0.0358179407573 + 0.0358251929787 + 0.0358324464733 + 0.0358397012412 + 0.0358469572827 + 0.0358542145979 + 0.0358614731871 + 0.0358687330506 + 0.0358759941885 + 0.0358832566011 + 0.0358905202886 + 0.0358977852512 + 0.0359050514892 + 0.0359123190027 + 0.0359195877921 + 0.0359268578574 + 0.035934129199 + 0.035941401817 + 0.0359486757118 + 0.0359559508834 + 0.0359632273322 + 0.0359705050584 + 0.0359777840621 + 0.0359850643437 + 0.0359923459033 + 0.0359996287411 + 0.0360069128575 + 0.0360141982525 + 0.0360214849265 + 0.0360287728796 + 0.0360360621121 + 0.0360433526242 + 0.0360506444162 + 0.0360579374882 + 0.0360652318405 + 0.0360725274733 + 0.0360798243868 + 0.0360871225813 + 0.036094422057 + 0.036101722814 + 0.0361090248527 + 0.0361163281733 + 0.0361236327759 + 0.0361309386608 + 0.0361382458283 + 0.0361455542785 + 0.0361528640117 + 0.0361601750281 + 0.036167487328 + 0.0361748009115 + 0.0361821157788 + 0.0361894319303 + 0.0361967493661 + 0.0362040680865 + 0.0362113880917 + 0.0362187093818 + 0.0362260319572 + 0.0362333558181 + 0.0362406809646 + 0.0362480073971 + 0.0362553351157 + 0.0362626641206 + 0.0362699944122 + 0.0362773259905 + 0.0362846588559 + 0.0362919930086 + 0.0362993284487 + 0.0363066651766 + 0.0363140031924 + 0.0363213424964 + 0.0363286830888 + 0.0363360249698 + 0.0363433681397 + 0.0363507125986 + 0.0363580583468 + 0.0363654053846 + 0.0363727537121 + 0.0363801033296 + 0.0363874542373 + 0.0363948064355 + 0.0364021599243 + 0.0364095147039 + 0.0364168707747 + 0.0364242281369 + 0.0364315867906 + 0.0364389467361 + 0.0364463079736 + 0.0364536705034 + 0.0364610343256 + 0.0364683994405 + 0.0364757658484 + 0.0364831335494 + 0.0364905025438 + 0.0364978728319 + 0.0365052444137 + 0.0365126172896 + 0.0365199914598 + 0.0365273669245 + 0.036534743684 + 0.0365421217384 + 0.0365495010881 + 0.0365568817331 + 0.0365642636738 + 0.0365716469104 + 0.0365790314431 + 0.0365864172722 + 0.0365938043978 + 0.0366011928202 + 0.0366085825396 + 0.0366159735563 + 0.0366233658704 + 0.0366307594822 + 0.036638154392 + 0.0366455505999 + 0.0366529481063 + 0.0366603469112 + 0.036667747015 + 0.0366751484178 + 0.0366825511199 + 0.0366899551216 + 0.036697360423 + 0.0367047670244 + 0.036712174926 + 0.0367195841281 + 0.0367269946308 + 0.0367344064344 + 0.0367418195391 + 0.0367492339452 + 0.0367566496529 + 0.0367640666624 + 0.0367714849739 + 0.0367789045877 + 0.036786325504 + 0.036793747723 + 0.0368011712449 + 0.03680859607 + 0.0368160221986 + 0.0368234496308 + 0.0368308783668 + 0.036838308407 + 0.0368457397514 + 0.0368531724004 + 0.0368606063543 + 0.0368680416131 + 0.0368754781771 + 0.0368829160467 + 0.0368903552219 + 0.0368977957031 + 0.0369052374904 + 0.0369126805841 + 0.0369201249844 + 0.0369275706916 + 0.0369350177058 + 0.0369424660273 + 0.0369499156564 + 0.0369573665933 + 0.0369648188381 + 0.0369722723912 + 0.0369797272527 + 0.0369871834229 + 0.036994640902 + 0.0370020996903 + 0.0370095597879 + 0.0370170211951 + 0.0370244839122 + 0.0370319479393 + 0.0370394132767 + 0.0370468799246 + 0.0370543478833 + 0.037061817153 + 0.0370692877338 + 0.0370767596262 + 0.0370842328301 + 0.037091707346 + 0.0370991831741 + 0.0371066603144 + 0.0371141387674 + 0.0371216185332 + 0.0371290996121 + 0.0371365820042 + 0.0371440657099 + 0.0371515507293 + 0.0371590370627 + 0.0371665247103 + 0.0371740136723 + 0.037181503949 + 0.0371889955406 + 0.0371964884473 + 0.0372039826694 + 0.0372114782071 + 0.0372189750606 + 0.0372264732301 + 0.037233972716 + 0.0372414735183 + 0.0372489756375 + 0.0372564790735 + 0.0372639838268 + 0.0372714898976 + 0.037278997286 + 0.0372865059923 + 0.0372940160167 + 0.0373015273595 + 0.0373090400209 + 0.0373165540012 + 0.0373240693005 + 0.0373315859191 + 0.0373391038572 + 0.037346623115 + 0.0373541436929 + 0.037361665591 + 0.0373691888095 + 0.0373767133487 + 0.0373842392088 + 0.0373917663901 + 0.0373992948927 + 0.037406824717 + 0.0374143558631 + 0.0374218883313 + 0.0374294221217 + 0.0374369572348 + 0.0374444936706 + 0.0374520314293 + 0.0374595705114 + 0.0374671109169 + 0.037474652646 + 0.0374821956992 + 0.0374897400765 + 0.0374972857781 + 0.0375048328045 + 0.0375123811556 + 0.0375199308319 + 0.0375274818335 + 0.0375350341606 + 0.0375425878136 + 0.0375501427926 + 0.0375576990978 + 0.0375652567295 + 0.037572815688 + 0.0375803759734 + 0.037587937586 + 0.037595500526 + 0.0376030647936 + 0.0376106303892 + 0.0376181973129 + 0.0376257655649 + 0.0376333351455 + 0.037640906055 + 0.0376484782935 + 0.0376560518612 + 0.0376636267586 + 0.0376712029856 + 0.0376787805427 + 0.0376863594299 + 0.0376939396476 + 0.0377015211961 + 0.0377091040754 + 0.0377166882859 + 0.0377242738278 + 0.0377318607013 + 0.0377394489066 + 0.0377470384441 + 0.0377546293138 + 0.0377622215162 + 0.0377698150513 + 0.0377774099195 + 0.0377850061209 + 0.0377926036558 + 0.0378002025244 + 0.037807802727 + 0.0378154042638 + 0.037823007135 + 0.0378306113409 + 0.0378382168817 + 0.0378458237576 + 0.0378534319689 + 0.0378610415158 + 0.0378686523985 + 0.0378762646173 + 0.0378838781724 + 0.0378914930641 + 0.0378991092925 + 0.037906726858 + 0.0379143457606 + 0.0379219660008 + 0.0379295875787 + 0.0379372104945 + 0.0379448347485 + 0.0379524603409 + 0.037960087272 + 0.037967715542 + 0.037975345151 + 0.0379829760995 + 0.0379906083875 + 0.0379982420154 + 0.0380058769834 + 0.0380135132916 + 0.0380211509404 + 0.0380287899299 + 0.0380364302605 + 0.0380440719322 + 0.0380517149455 + 0.0380593593005 + 0.0380670049974 + 0.0380746520365 + 0.0380823004181 + 0.0380899501422 + 0.0380976012093 + 0.0381052536195 + 0.0381129073731 + 0.0381205624702 + 0.0381282189112 + 0.0381358766963 + 0.0381435358256 + 0.0381511962995 + 0.0381588581182 + 0.0381665212819 + 0.0381741857909 + 0.0381818516453 + 0.0381895188454 + 0.0381971873916 + 0.0382048572839 + 0.0382125285226 + 0.038220201108 + 0.0382278750403 + 0.0382355503198 + 0.0382432269466 + 0.038250904921 + 0.0382585842433 + 0.0382662649137 + 0.0382739469324 + 0.0382816302996 + 0.0382893150157 + 0.0382970010807 + 0.0383046884951 + 0.038312377259 + 0.0383200673726 + 0.0383277588361 + 0.0383354516499 + 0.0383431458142 + 0.0383508413291 + 0.038358538195 + 0.038366236412 + 0.0383739359805 + 0.0383816369006 + 0.0383893391725 + 0.0383970427966 + 0.038404747773 + 0.038412454102 + 0.0384201617839 + 0.0384278708188 + 0.038435581207 + 0.0384432929487 + 0.0384510060443 + 0.0384587204938 + 0.0384664362976 + 0.0384741534559 + 0.0384818719689 + 0.0384895918369 + 0.0384973130601 + 0.0385050356387 + 0.038512759573 + 0.0385204848632 + 0.0385282115096 + 0.0385359395123 + 0.0385436688717 + 0.038551399588 + 0.0385591316614 + 0.0385668650921 + 0.0385745998804 + 0.0385823360265 + 0.0385900735307 + 0.0385978123932 + 0.0386055526143 + 0.0386132941941 + 0.0386210371329 + 0.038628781431 + 0.0386365270885 + 0.0386442741058 + 0.0386520224831 + 0.0386597722206 + 0.0386675233185 + 0.0386752757771 + 0.0386830295967 + 0.0386907847774 + 0.0386985413195 + 0.0387062992232 + 0.0387140584888 + 0.0387218191166 + 0.0387295811067 + 0.0387373444594 + 0.0387451091749 + 0.0387528752535 + 0.0387606426955 + 0.0387684115009 + 0.0387761816702 + 0.0387839532035 + 0.0387917261011 + 0.0387995003632 + 0.0388072759901 + 0.0388150529819 + 0.038822831339 + 0.0388306110616 + 0.0388383921498 + 0.038846174604 + 0.0388539584244 + 0.0388617436113 + 0.0388695301648 + 0.0388773180852 + 0.0388851073727 + 0.0388928980277 + 0.0389006900503 + 0.0389084834407 + 0.0389162781993 + 0.0389240743262 + 0.0389318718217 + 0.038939670686 + 0.0389474709194 + 0.0389552725222 + 0.0389630754944 + 0.0389708798365 + 0.0389786855486 + 0.038986492631 + 0.0389943010838 + 0.0390021109075 + 0.0390099221021 + 0.039017734668 + 0.0390255486053 + 0.0390333639144 + 0.0390411805954 + 0.0390489986486 + 0.0390568180743 + 0.0390646388726 + 0.0390724610439 + 0.0390802845883 + 0.0390881095061 + 0.0390959357976 + 0.039103763463 + 0.0391115925025 + 0.0391194229163 + 0.0391272547048 + 0.0391350878681 + 0.0391429224065 + 0.0391507583202 + 0.0391585956096 + 0.0391664342747 + 0.0391742743159 + 0.0391821157334 + 0.0391899585274 + 0.0391978026982 + 0.0392056482461 + 0.0392134951712 + 0.0392213434738 + 0.0392291931541 + 0.0392370442125 + 0.0392448966491 + 0.0392527504642 + 0.0392606056579 + 0.0392684622307 + 0.0392763201826 + 0.039284179514 + 0.0392920402251 + 0.0392999023161 + 0.0393077657873 + 0.0393156306389 + 0.0393234968711 + 0.0393313644843 + 0.0393392334785 + 0.0393471038542 + 0.0393549756115 + 0.0393628487506 + 0.0393707232719 + 0.0393785991755 + 0.0393864764617 + 0.0393943551308 + 0.0394022351829 + 0.0394101166184 + 0.0394179994374 + 0.0394258836402 + 0.0394337692271 + 0.0394416561983 + 0.039449544554 + 0.0394574342945 + 0.03946532542 + 0.0394732179308 + 0.0394811118271 + 0.0394890071092 + 0.0394969037772 + 0.0395048018315 + 0.0395127012723 + 0.0395206020998 + 0.0395285043143 + 0.039536407916 + 0.0395443129051 + 0.039552219282 + 0.0395601270468 + 0.0395680361998 + 0.0395759467412 + 0.0395838586713 + 0.0395917719903 + 0.0395996866984 + 0.039607602796 + 0.0396155202833 + 0.0396234391604 + 0.0396313594276 + 0.0396392810853 + 0.0396472041336 + 0.0396551285727 + 0.039663054403 + 0.0396709816246 + 0.0396789102378 + 0.0396868402429 + 0.0396947716401 + 0.0397027044296 + 0.0397106386117 + 0.0397185741866 + 0.0397265111546 + 0.0397344495159 + 0.0397423892707 + 0.0397503304194 + 0.0397582729621 + 0.0397662168991 + 0.0397741622307 + 0.039782108957 + 0.0397900570783 + 0.039798006595 + 0.0398059575071 + 0.039813909815 + 0.0398218635189 + 0.0398298186191 + 0.0398377751158 + 0.0398457330092 + 0.0398536922996 + 0.0398616529872 + 0.0398696150723 + 0.0398775785552 + 0.039885543436 + 0.039893509715 + 0.0399014773925 + 0.0399094464687 + 0.0399174169438 + 0.0399253888181 + 0.0399333620919 + 0.0399413367654 + 0.0399493128388 + 0.0399572903124 + 0.0399652691864 + 0.0399732494611 + 0.0399812311367 + 0.0399892142134 + 0.0399971986916 + 0.0400051845714 + 0.0400131718531 + 0.040021160537 + 0.0400291506233 + 0.0400371421122 + 0.040045135004 + 0.0400531292989 + 0.0400611249972 + 0.0400691220991 + 0.0400771206049 + 0.0400851205149 + 0.0400931218291 + 0.040101124548 + 0.0401091286718 + 0.0401171342006 + 0.0401251411348 + 0.0401331494747 + 0.0401411592203 + 0.040149170372 + 0.0401571829301 + 0.0401651968948 + 0.0401732122663 + 0.0401812290448 + 0.0401892472307 + 0.0401972668242 + 0.0402052878255 + 0.0402133102349 + 0.0402213340525 + 0.0402293592788 + 0.0402373859138 + 0.0402454139579 + 0.0402534434113 + 0.0402614742742 + 0.040269506547 + 0.0402775402298 + 0.0402855753229 + 0.0402936118265 + 0.0403016497409 + 0.0403096890664 + 0.0403177298031 + 0.0403257719514 + 0.0403338155114 + 0.0403418604835 + 0.0403499068678 + 0.0403579546647 + 0.0403660038743 + 0.040374054497 + 0.0403821065329 + 0.0403901599824 + 0.0403982148456 + 0.0404062711228 + 0.0404143288143 + 0.0404223879202 + 0.040430448441 + 0.0404385103767 + 0.0404465737277 + 0.0404546384942 + 0.0404627046765 + 0.0404707722747 + 0.0404788412892 + 0.0404869117202 + 0.0404949835679 + 0.0405030568327 + 0.0405111315146 + 0.0405192076141 + 0.0405272851313 + 0.0405353640665 + 0.0405434444199 + 0.0405515261918 + 0.0405596093824 + 0.0405676939921 + 0.0405757800209 + 0.0405838674693 + 0.0405919563373 + 0.0406000466254 + 0.0406081383337 + 0.0406162314624 + 0.0406243260119 + 0.0406324219824 + 0.0406405193741 + 0.0406486181873 + 0.0406567184222 + 0.0406648200791 + 0.0406729231582 + 0.0406810276597 + 0.040689133584 + 0.0406972409313 + 0.0407053497018 + 0.0407134598958 + 0.0407215715135 + 0.0407296845552 + 0.0407377990211 + 0.0407459149115 + 0.0407540322266 + 0.0407621509666 + 0.0407702711319 + 0.0407783927227 + 0.0407865157392 + 0.0407946401817 + 0.0408027660504 + 0.0408108933456 + 0.0408190220675 + 0.0408271522163 + 0.0408352837925 + 0.040843416796 + 0.0408515512274 + 0.0408596870867 + 0.0408678243742 + 0.0408759630902 + 0.0408841032349 + 0.0408922448086 + 0.0409003878116 + 0.040908532244 + 0.0409166781062 + 0.0409248253983 + 0.0409329741207 + 0.0409411242736 + 0.0409492758572 + 0.0409574288718 + 0.0409655833177 + 0.040973739195 + 0.0409818965041 + 0.0409900552452 + 0.0409982154185 + 0.0410063770244 + 0.041014540063 + 0.0410227045345 + 0.0410308704394 + 0.0410390377777 + 0.0410472065498 + 0.0410553767559 + 0.0410635483963 + 0.0410717214711 + 0.0410798959808 + 0.0410880719254 + 0.0410962493053 + 0.0411044281208 + 0.041112608372 + 0.0411207900592 + 0.0411289731827 + 0.0411371577427 + 0.0411453437395 + 0.0411535311734 + 0.0411617200445 + 0.0411699103532 + 0.0411781020996 + 0.0411862952841 + 0.0411944899069 + 0.0412026859682 + 0.0412108834683 + 0.0412190824075 + 0.041227282786 + 0.041235484604 + 0.0412436878619 + 0.0412518925598 + 0.041260098698 + 0.0412683062768 + 0.0412765152964 + 0.0412847257571 + 0.0412929376591 + 0.0413011510027 + 0.0413093657881 + 0.0413175820156 + 0.0413257996854 + 0.0413340187979 + 0.0413422393532 + 0.0413504613515 + 0.0413586847933 + 0.0413669096786 + 0.0413751360078 + 0.0413833637811 + 0.0413915929988 + 0.041399823661 + 0.0414080557682 + 0.0414162893205 + 0.0414245243182 + 0.0414327607615 + 0.0414409986506 + 0.041449237986 + 0.0414574787677 + 0.0414657209961 + 0.0414739646713 + 0.0414822097938 + 0.0414904563636 + 0.0414987043811 + 0.0415069538465 + 0.0415152047601 + 0.0415234571222 + 0.0415317109329 + 0.0415399661925 + 0.0415482229013 + 0.0415564810596 + 0.0415647406676 + 0.0415730017255 + 0.0415812642337 + 0.0415895281923 + 0.0415977936016 + 0.0416060604619 + 0.0416143287734 + 0.0416225985364 + 0.0416308697511 + 0.0416391424179 + 0.0416474165368 + 0.0416556921083 + 0.0416639691325 + 0.0416722476098 + 0.0416805275403 + 0.0416888089243 + 0.0416970917621 + 0.041705376054 + 0.0417136618001 + 0.0417219490008 + 0.0417302376562 + 0.0417385277667 + 0.0417468193326 + 0.041755112354 + 0.0417634068312 + 0.0417717027644 + 0.0417800001541 + 0.0417882990003 + 0.0417965993033 + 0.0418049010634 + 0.0418132042809 + 0.041821508956 + 0.041829815089 + 0.0418381226801 + 0.0418464317296 + 0.0418547422377 + 0.0418630542046 + 0.0418713676308 + 0.0418796825163 + 0.0418879988615 + 0.0418963166666 + 0.0419046359319 + 0.0419129566576 + 0.041921278844 + 0.0419296024913 + 0.0419379275998 + 0.0419462541698 + 0.0419545822015 + 0.0419629116951 + 0.041971242651 + 0.0419795750693 + 0.0419879089504 + 0.0419962442945 + 0.0420045811018 + 0.0420129193726 + 0.0420212591072 + 0.0420296003058 + 0.0420379429687 + 0.0420462870961 + 0.0420546326884 + 0.0420629797456 + 0.0420713282682 + 0.0420796782563 + 0.0420880297103 + 0.0420963826303 + 0.0421047370166 + 0.0421130928696 + 0.0421214501894 + 0.0421298089763 + 0.0421381692306 + 0.0421465309525 + 0.0421548941422 + 0.0421632588001 + 0.0421716249264 + 0.0421799925214 + 0.0421883615853 + 0.0421967321183 + 0.0422051041208 + 0.0422134775929 + 0.042221852535 + 0.0422302289473 + 0.04223860683 + 0.0422469861835 + 0.0422553670079 + 0.0422637493036 + 0.0422721330708 + 0.0422805183097 + 0.0422889050206 + 0.0422972932038 + 0.0423056828595 + 0.042314073988 + 0.0423224665896 + 0.0423308606644 + 0.0423392562128 + 0.042347653235 + 0.0423560517313 + 0.0423644517019 + 0.0423728531471 + 0.0423812560672 + 0.0423896604624 + 0.0423980663329 + 0.0424064736791 + 0.0424148825012 + 0.0424232927994 + 0.0424317045741 + 0.0424401178254 + 0.0424485325536 + 0.042456948759 + 0.0424653664418 + 0.0424737856024 + 0.0424822062409 + 0.0424906283576 + 0.0424990519528 + 0.0425074770268 + 0.0425159035798 + 0.042524331612 + 0.0425327611237 + 0.0425411921153 + 0.0425496245868 + 0.0425580585387 + 0.0425664939711 + 0.0425749308843 + 0.0425833692787 + 0.0425918091543 + 0.0426002505116 + 0.0426086933507 + 0.0426171376719 + 0.0426255834755 + 0.0426340307618 + 0.0426424795309 + 0.0426509297833 + 0.042659381519 + 0.0426678347384 + 0.0426762894418 + 0.0426847456293 + 0.0426932033014 + 0.0427016624581 + 0.0427101230998 + 0.0427185852268 + 0.0427270488393 + 0.0427355139375 + 0.0427439805218 + 0.0427524485924 + 0.0427609181495 + 0.0427693891934 + 0.0427778617244 + 0.0427863357427 + 0.0427948112487 + 0.0428032882424 + 0.0428117667243 + 0.0428202466946 + 0.0428287281535 + 0.0428372111013 + 0.0428456955382 + 0.0428541814646 + 0.0428626688807 + 0.0428711577867 + 0.0428796481829 + 0.0428881400696 + 0.042896633447 + 0.0429051283154 + 0.0429136246751 + 0.0429221225262 + 0.0429306218692 + 0.0429391227042 + 0.0429476250315 + 0.0429561288513 + 0.042964634164 + 0.0429731409698 + 0.0429816492689 + 0.0429901590616 + 0.0429986703482 + 0.0430071831289 + 0.043015697404 + 0.0430242131738 + 0.0430327304385 + 0.0430412491984 + 0.0430497694538 + 0.0430582912048 + 0.0430668144519 + 0.0430753391951 + 0.0430838654349 + 0.0430923931714 + 0.0431009224049 + 0.0431094531357 + 0.0431179853641 + 0.0431265190903 + 0.0431350543146 + 0.0431435910372 + 0.0431521292584 + 0.0431606689784 + 0.0431692101976 + 0.0431777529162 + 0.0431862971344 + 0.0431948428526 + 0.0432033900709 + 0.0432119387897 + 0.0432204890091 + 0.0432290407296 + 0.0432375939513 + 0.0432461486744 + 0.0432547048994 + 0.0432632626263 + 0.0432718218556 + 0.0432803825874 + 0.043288944822 + 0.0432975085597 + 0.0433060738007 + 0.0433146405454 + 0.0433232087939 + 0.0433317785465 + 0.0433403498036 + 0.0433489225653 + 0.0433574968319 + 0.0433660726038 + 0.0433746498811 + 0.0433832286641 + 0.0433918089531 + 0.0434003907483 + 0.04340897405 + 0.0434175588586 + 0.0434261451741 + 0.043434732997 + 0.0434433223275 + 0.0434519131657 + 0.0434605055121 + 0.0434690993669 + 0.0434776947302 + 0.0434862916025 + 0.043494889984 + 0.0435034898748 + 0.0435120912754 + 0.0435206941859 + 0.0435292986066 + 0.0435379045378 + 0.0435465119797 + 0.0435551209327 + 0.043563731397 + 0.0435723433728 + 0.0435809568604 + 0.04358957186 + 0.0435981883721 + 0.0436068063967 + 0.0436154259342 + 0.0436240469849 + 0.0436326695489 + 0.0436412936266 + 0.0436499192183 + 0.0436585463241 + 0.0436671749444 + 0.0436758050795 + 0.0436844367296 + 0.0436930698949 + 0.0437017045757 + 0.0437103407724 + 0.0437189784851 + 0.0437276177141 + 0.0437362584597 + 0.0437449007222 + 0.0437535445019 + 0.0437621897989 + 0.0437708366136 + 0.0437794849462 + 0.043788134797 + 0.0437967861662 + 0.0438054390542 + 0.0438140934612 + 0.0438227493874 + 0.0438314068332 + 0.0438400657987 + 0.0438487262843 + 0.0438573882903 + 0.0438660518168 + 0.0438747168642 + 0.0438833834327 + 0.0438920515226 + 0.0439007211342 + 0.0439093922677 + 0.0439180649234 + 0.0439267391016 + 0.0439354148025 + 0.0439440920264 + 0.0439527707736 + 0.0439614510443 + 0.0439701328388 + 0.0439788161573 + 0.0439875010002 + 0.0439961873677 + 0.0440048752601 + 0.0440135646776 + 0.0440222556205 + 0.0440309480891 + 0.0440396420836 + 0.0440483376043 + 0.0440570346516 + 0.0440657332255 + 0.0440744333265 + 0.0440831349547 + 0.0440918381105 + 0.0441005427942 + 0.0441092490059 + 0.0441179567459 + 0.0441266660146 + 0.0441353768122 + 0.0441440891389 + 0.0441528029951 + 0.0441615183809 + 0.0441702352967 + 0.0441789537428 + 0.0441876737194 + 0.0441963952267 + 0.044205118265 + 0.0442138428347 + 0.044222568936 + 0.044231296569 + 0.0442400257343 + 0.0442487564318 + 0.0442574886621 + 0.0442662224252 + 0.0442749577216 + 0.0442836945514 + 0.044292432915 + 0.0443011728125 + 0.0443099142443 + 0.0443186572107 + 0.0443274017118 + 0.044336147748 + 0.0443448953196 + 0.0443536444268 + 0.0443623950699 + 0.0443711472491 + 0.0443799009647 + 0.0443886562171 + 0.0443974130064 + 0.0444061713329 + 0.0444149311969 + 0.0444236925987 + 0.0444324555386 + 0.0444412200168 + 0.0444499860335 + 0.0444587535891 + 0.0444675226838 + 0.0444762933179 + 0.0444850654917 + 0.0444938392054 + 0.0445026144594 + 0.0445113912537 + 0.0445201695889 + 0.044528949465 + 0.0445377308825 + 0.0445465138414 + 0.0445552983423 + 0.0445640843852 + 0.0445728719705 + 0.0445816610984 + 0.0445904517692 + 0.0445992439832 + 0.0446080377407 + 0.0446168330419 + 0.044625629887 + 0.0446344282765 + 0.0446432282105 + 0.0446520296893 + 0.0446608327131 + 0.0446696372823 + 0.0446784433972 + 0.0446872510579 + 0.0446960602648 + 0.0447048710181 + 0.0447136833181 + 0.0447224971651 + 0.0447313125594 + 0.0447401295011 + 0.0447489479907 + 0.0447577680283 + 0.0447665896143 + 0.0447754127489 + 0.0447842374323 + 0.0447930636649 + 0.044801891447 + 0.0448107207787 + 0.0448195516604 + 0.0448283840923 + 0.0448372180747 + 0.044846053608 + 0.0448548906922 + 0.0448637293279 + 0.0448725695151 + 0.0448814112541 + 0.0448902545454 + 0.044899099389 + 0.0449079457854 + 0.0449167937346 + 0.0449256432372 + 0.0449344942932 + 0.044943346903 + 0.0449522010669 + 0.0449610567851 + 0.0449699140579 + 0.0449787728856 + 0.0449876332684 + 0.0449964952067 + 0.0450053587006 + 0.0450142237505 + 0.0450230903566 + 0.0450319585193 + 0.0450408282387 + 0.0450496995152 + 0.045058572349 + 0.0450674467404 + 0.0450763226897 + 0.0450852001971 + 0.045094079263 + 0.0451029598876 + 0.0451118420711 + 0.0451207258139 + 0.0451296111162 + 0.0451384979783 + 0.0451473864005 + 0.045156276383 + 0.0451651679261 + 0.0451740610301 + 0.0451829556953 + 0.0451918519219 + 0.0452007497102 + 0.0452096490605 + 0.0452185499731 + 0.0452274524481 + 0.045236356486 + 0.045245262087 + 0.0452541692514 + 0.0452630779793 + 0.0452719882712 + 0.0452809001273 + 0.0452898135478 + 0.045298728533 + 0.0453076450833 + 0.0453165631988 + 0.0453254828798 + 0.0453344041267 + 0.0453433269397 + 0.0453522513191 + 0.0453611772652 + 0.0453701047781 + 0.0453790338583 + 0.0453879645059 + 0.0453968967213 + 0.0454058305047 + 0.0454147658565 + 0.0454237027768 + 0.0454326412659 + 0.0454415813242 + 0.0454505229519 + 0.0454594661493 + 0.0454684109166 + 0.0454773572542 + 0.0454863051622 + 0.0454952546411 + 0.045504205691 + 0.0455131583123 + 0.0455221125051 + 0.0455310682699 + 0.0455400256068 + 0.0455489845161 + 0.0455579449982 + 0.0455669070532 + 0.0455758706815 + 0.0455848358834 + 0.0455938026591 + 0.0456027710088 + 0.045611740933 + 0.0456207124318 + 0.0456296855055 + 0.0456386601544 + 0.0456476363788 + 0.0456566141789 + 0.0456655935551 + 0.0456745745076 + 0.0456835570367 + 0.0456925411426 + 0.0457015268257 + 0.0457105140861 + 0.0457195029243 + 0.0457284933405 + 0.0457374853348 + 0.0457464789078 + 0.0457554740595 + 0.0457644707902 + 0.0457734691004 + 0.0457824689902 + 0.0457914704598 + 0.0458004735097 + 0.04580947814 + 0.0458184843511 + 0.0458274921432 + 0.0458365015166 + 0.0458455124715 + 0.0458545250083 + 0.0458635391272 + 0.0458725548286 + 0.0458815721126 + 0.0458905909796 + 0.0458996114298 + 0.0459086334636 + 0.0459176570811 + 0.0459266822827 + 0.0459357090687 + 0.0459447374393 + 0.0459537673948 + 0.0459627989355 + 0.0459718320616 + 0.0459808667735 + 0.0459899030714 + 0.0459989409556 + 0.0460079804264 + 0.0460170214841 + 0.0460260641289 + 0.0460351083611 + 0.046044154181 + 0.0460532015888 + 0.0460622505849 + 0.0460713011696 + 0.046080353343 + 0.0460894071056 + 0.0460984624575 + 0.046107519399 + 0.0461165779305 + 0.0461256380522 + 0.0461346997643 + 0.0461437630672 + 0.0461528279612 + 0.0461618944465 + 0.0461709625234 + 0.0461800321921 + 0.046189103453 + 0.0461981763064 + 0.0462072507524 + 0.0462163267915 + 0.0462254044238 + 0.0462344836497 + 0.0462435644695 + 0.0462526468833 + 0.0462617308915 + 0.0462708164945 + 0.0462799036923 + 0.0462889924854 + 0.0462980828741 + 0.0463071748585 + 0.046316268439 + 0.0463253636158 + 0.0463344603893 + 0.0463435587597 + 0.0463526587273 + 0.0463617602924 + 0.0463708634552 + 0.0463799682161 + 0.0463890745752 + 0.046398182533 + 0.0464072920897 + 0.0464164032455 + 0.0464255160008 + 0.0464346303558 + 0.0464437463108 + 0.046452863866 + 0.0464619830219 + 0.0464711037785 + 0.0464802261364 + 0.0464893500956 + 0.0464984756565 + 0.0465076028193 + 0.0465167315845 + 0.0465258619521 + 0.0465349939226 + 0.0465441274962 + 0.0465532626731 + 0.0465623994537 + 0.0465715378382 + 0.046580677827 + 0.0465898194202 + 0.0465989626183 + 0.0466081074214 + 0.0466172538299 + 0.0466264018439 + 0.0466355514639 + 0.0466447026901 + 0.0466538555228 + 0.0466630099622 + 0.0466721660087 + 0.0466813236625 + 0.0466904829238 + 0.0466996437931 + 0.0467088062706 + 0.0467179703565 + 0.0467271360511 + 0.0467363033547 + 0.0467454722676 + 0.0467546427902 + 0.0467638149225 + 0.0467729886651 + 0.046782164018 + 0.0467913409817 + 0.0468005195563 + 0.0468096997423 + 0.0468188815397 + 0.0468280649491 + 0.0468372499705 + 0.0468464366044 + 0.0468556248509 + 0.0468648147105 + 0.0468740061833 + 0.0468831992696 + 0.0468923939697 + 0.046901590284 + 0.0469107882126 + 0.046919987756 + 0.0469291889142 + 0.0469383916877 + 0.0469475960768 + 0.0469568020816 + 0.0469660097026 + 0.0469752189399 + 0.0469844297939 + 0.0469936422648 + 0.0470028563529 + 0.0470120720586 + 0.047021289382 + 0.0470305083235 + 0.0470397288834 + 0.047048951062 + 0.0470581748594 + 0.0470674002761 + 0.0470766273123 + 0.0470858559683 + 0.0470950862443 + 0.0471043181407 + 0.0471135516577 + 0.0471227867956 + 0.0471320235548 + 0.0471412619354 + 0.0471505019378 + 0.0471597435623 + 0.0471689868091 + 0.0471782316785 + 0.0471874781709 + 0.0471967262864 + 0.0472059760255 + 0.0472152273883 + 0.0472244803752 + 0.0472337349864 + 0.0472429912222 + 0.0472522490829 + 0.0472615085688 + 0.0472707696802 + 0.0472800324174 + 0.0472892967806 + 0.0472985627702 + 0.0473078303864 + 0.0473170996295 + 0.0473263704998 + 0.0473356429975 + 0.047344917123 + 0.0473541928766 + 0.0473634702585 + 0.047372749269 + 0.0473820299085 + 0.0473913121771 + 0.0474005960752 + 0.0474098816031 + 0.047419168761 + 0.0474284575493 + 0.0474377479682 + 0.047447040018 + 0.047456333699 + 0.0474656290114 + 0.0474749259557 + 0.047484224532 + 0.0474935247406 + 0.0475028265819 + 0.0475121300561 + 0.0475214351635 + 0.0475307419044 + 0.047540050279 + 0.0475493602877 + 0.0475586719308 + 0.0475679852085 + 0.0475773001211 + 0.0475866166689 + 0.0475959348523 + 0.0476052546714 + 0.0476145761266 + 0.0476238992181 + 0.0476332239463 + 0.0476425503114 + 0.0476518783138 + 0.0476612079536 + 0.0476705392312 + 0.047679872147 + 0.0476892067011 + 0.0476985428938 + 0.0477078807255 + 0.0477172201965 + 0.0477265613069 + 0.0477359040572 + 0.0477452484475 + 0.0477545944783 + 0.0477639421497 + 0.0477732914621 + 0.0477826424157 + 0.0477919950109 + 0.0478013492478 + 0.0478107051269 + 0.0478200626484 + 0.0478294218126 + 0.0478387826198 + 0.0478481450702 + 0.0478575091642 + 0.0478668749021 + 0.047876242284 + 0.0478856113104 + 0.0478949819815 + 0.0479043542976 + 0.047913728259 + 0.0479231038659 + 0.0479324811188 + 0.0479418600177 + 0.0479512405632 + 0.0479606227553 + 0.0479700065945 + 0.047979392081 + 0.047988779215 + 0.047998167997 + 0.0480075584271 + 0.0480169505058 + 0.0480263442331 + 0.0480357396095 + 0.0480451366353 + 0.0480545353107 + 0.0480639356359 + 0.0480733376114 + 0.0480827412374 + 0.0480921465142 + 0.048101553442 + 0.0481109620212 + 0.0481203722521 + 0.0481297841349 + 0.0481391976699 + 0.0481486128575 + 0.0481580296978 + 0.0481674481913 + 0.0481768683381 + 0.0481862901387 + 0.0481957135932 + 0.048205138702 + 0.0482145654653 + 0.0482239938835 + 0.0482334239568 + 0.0482428556856 + 0.04825228907 + 0.0482617241105 + 0.0482711608073 + 0.0482805991606 + 0.0482900391709 + 0.0482994808383 + 0.0483089241631 + 0.0483183691457 + 0.0483278157864 + 0.0483372640854 + 0.048346714043 + 0.0483561656596 + 0.0483656189353 + 0.0483750738706 + 0.0483845304656 + 0.0483939887207 + 0.0484034486362 + 0.0484129102123 + 0.0484223734495 + 0.0484318383478 + 0.0484413049077 + 0.0484507731294 + 0.0484602430133 + 0.0484697145596 + 0.0484791877685 + 0.0484886626405 + 0.0484981391758 + 0.0485076173746 + 0.0485170972373 + 0.0485265787642 + 0.0485360619556 + 0.0485455468117 + 0.0485550333328 + 0.0485645215193 + 0.0485740113714 + 0.0485835028894 + 0.0485929960736 + 0.0486024909243 + 0.0486119874419 + 0.0486214856265 + 0.0486309854785 + 0.0486404869982 + 0.0486499901859 + 0.0486594950418 + 0.0486690015662 + 0.0486785097595 + 0.048688019622 + 0.0486975311539 + 0.0487070443555 + 0.0487165592271 + 0.0487260757691 + 0.0487355939816 + 0.0487451138651 + 0.0487546354197 + 0.0487641586458 + 0.0487736835437 + 0.0487832101137 + 0.048792738356 + 0.048802268271 + 0.048811799859 + 0.0488213331202 + 0.0488308680549 + 0.0488404046635 + 0.0488499429462 + 0.0488594829033 + 0.0488690245352 + 0.048878567842 + 0.0488881128242 + 0.0488976594819 + 0.0489072078156 + 0.0489167578254 + 0.0489263095117 + 0.0489358628748 + 0.0489454179149 + 0.0489549746325 + 0.0489645330276 + 0.0489740931008 + 0.0489836548521 + 0.048993218282 + 0.0490027833908 + 0.0490123501787 + 0.049021918646 + 0.049031488793 + 0.0490410606201 + 0.0490506341274 + 0.0490602093154 + 0.0490697861843 + 0.0490793647343 + 0.0490889449659 + 0.0490985268792 + 0.0491081104746 + 0.0491176957524 + 0.0491272827129 + 0.0491368713563 + 0.049146461683 + 0.0491560536933 + 0.0491656473874 + 0.0491752427656 + 0.0491848398283 + 0.0491944385758 + 0.0492040390082 + 0.049213641126 + 0.0492232449295 + 0.0492328504188 + 0.0492424575944 + 0.0492520664565 + 0.0492616770054 + 0.0492712892414 + 0.0492809031649 + 0.049290518776 + 0.0493001360751 + 0.0493097550625 + 0.0493193757385 + 0.0493289981034 + 0.0493386221575 + 0.049348247901 + 0.0493578753343 + 0.0493675044577 + 0.0493771352715 + 0.0493867677759 + 0.0493964019713 + 0.049406037858 + 0.0494156754362 + 0.0494253147062 + 0.0494349556684 + 0.0494445983231 + 0.0494542426705 + 0.0494638887109 + 0.0494735364447 + 0.0494831858721 + 0.0494928369935 + 0.0495024898091 + 0.0495121443192 + 0.0495218005241 + 0.0495314584241 + 0.0495411180196 + 0.0495507793108 + 0.049560442298 + 0.0495701069815 + 0.0495797733617 + 0.0495894414387 + 0.049599111213 + 0.0496087826847 + 0.0496184558543 + 0.0496281307219 + 0.049637807288 + 0.0496474855528 + 0.0496571655165 + 0.0496668471795 + 0.0496765305422 + 0.0496862156047 + 0.0496959023674 + 0.0497055908306 + 0.0497152809946 + 0.0497249728597 + 0.0497346664261 + 0.0497443616943 + 0.0497540586644 + 0.0497637573368 + 0.0497734577118 + 0.0497831597896 + 0.0497928635706 + 0.0498025690551 + 0.0498122762434 + 0.0498219851358 + 0.0498316957325 + 0.0498414080339 + 0.0498511220402 + 0.0498608377519 + 0.0498705551691 + 0.0498802742921 + 0.0498899951214 + 0.0498997176571 + 0.0499094418995 + 0.0499191678491 + 0.049928895506 + 0.0499386248705 + 0.0499483559431 + 0.0499580887239 + 0.0499678232132 + 0.0499775594115 + 0.0499872973189 + 0.0499970369357 + 0.0500067782624 + 0.0500165212991 + 0.0500262660461 + 0.0500360125038 + 0.0500457606725 + 0.0500555105525 + 0.050065262144 + 0.0500750154474 + 0.050084770463 + 0.050094527191 + 0.0501042856318 + 0.0501140457857 + 0.0501238076529 + 0.0501335712338 + 0.0501433365287 + 0.0501531035379 + 0.0501628722616 + 0.0501726427002 + 0.050182414854 + 0.0501921887233 + 0.0502019643083 + 0.0502117416094 + 0.0502215206269 + 0.0502313013611 + 0.0502410838123 + 0.0502508679807 + 0.0502606538668 + 0.0502704414707 + 0.0502802307928 + 0.0502900218334 + 0.0502998145928 + 0.0503096090713 + 0.0503194052692 + 0.0503292031868 + 0.0503390028244 + 0.0503488041823 + 0.0503586072608 + 0.0503684120602 + 0.0503782185808 + 0.0503880268229 + 0.0503978367869 + 0.0504076484729 + 0.0504174618814 + 0.0504272770126 + 0.0504370938668 + 0.0504469124443 + 0.0504567327455 + 0.0504665547705 + 0.0504763785199 + 0.0504862039937 + 0.0504960311924 + 0.0505058601162 + 0.0505156907655 + 0.0505255231405 + 0.0505353572416 + 0.050545193069 + 0.0505550306231 + 0.0505648699041 + 0.0505747109124 + 0.0505845536483 + 0.050594398112 + 0.0506042443039 + 0.0506140922243 + 0.0506239418735 + 0.0506337932517 + 0.0506436463593 + 0.0506535011966 + 0.0506633577639 + 0.0506732160615 + 0.0506830760897 + 0.0506929378488 + 0.0507028013391 + 0.050712666561 + 0.0507225335146 + 0.0507324022003 + 0.0507422726185 + 0.0507521447694 + 0.0507620186534 + 0.0507718942706 + 0.0507817716215 + 0.0507916507064 + 0.0508015315255 + 0.0508114140792 + 0.0508212983677 + 0.0508311843914 + 0.0508410721505 + 0.0508509616454 + 0.0508608528764 + 0.0508707458438 + 0.0508806405478 + 0.0508905369889 + 0.0509004351672 + 0.0509103350832 + 0.050920236737 + 0.0509301401291 + 0.0509400452597 + 0.0509499521291 + 0.0509598607376 + 0.0509697710856 + 0.0509796831733 + 0.050989597001 + 0.0509995125691 + 0.0510094298778 + 0.0510193489275 + 0.0510292697185 + 0.051039192251 + 0.0510491165254 + 0.051059042542 + 0.0510689703011 + 0.051078899803 + 0.051088831048 + 0.0510987640363 + 0.0511086987684 + 0.0511186352445 + 0.051128573465 + 0.05113851343 + 0.05114845514 + 0.0511583985953 + 0.051168343796 + 0.0511782907427 + 0.0511882394355 + 0.0511981898748 + 0.0512081420608 + 0.0512180959939 + 0.0512280516745 + 0.0512380091027 + 0.0512479682789 + 0.0512579292034 + 0.0512678918765 + 0.0512778562986 + 0.0512878224699 + 0.0512977903907 + 0.0513077600614 + 0.0513177314822 + 0.0513277046535 + 0.0513376795755 + 0.0513476562487 + 0.0513576346732 + 0.0513676148493 + 0.0513775967775 + 0.051387580458 + 0.0513975658911 + 0.0514075530771 + 0.0514175420164 + 0.0514275327091 + 0.0514375251557 + 0.0514475193565 + 0.0514575153117 + 0.0514675130217 + 0.0514775124868 + 0.0514875137072 + 0.0514975166833 + 0.0515075214155 + 0.0515175279039 + 0.051527536149 + 0.0515375461509 + 0.0515475579101 + 0.0515575714269 + 0.0515675867014 + 0.0515776037342 + 0.0515876225254 + 0.0515976430754 + 0.0516076653845 + 0.0516176894529 + 0.0516277152811 + 0.0516377428692 + 0.0516477722177 + 0.0516578033268 + 0.0516678361969 + 0.0516778708282 + 0.051687907221 + 0.0516979453757 + 0.0517079852926 + 0.051718026972 + 0.0517280704142 + 0.0517381156194 + 0.0517481625881 + 0.0517582113205 + 0.0517682618169 + 0.0517783140777 + 0.0517883681031 + 0.0517984238935 + 0.0518084814491 + 0.0518185407703 + 0.0518286018574 + 0.0518386647107 + 0.0518487293306 + 0.0518587957172 + 0.051868863871 + 0.0518789337922 + 0.0518890054811 + 0.0518990789381 + 0.0519091541635 + 0.0519192311576 + 0.0519293099206 + 0.051939390453 + 0.051949472755 + 0.0519595568269 + 0.051969642669 + 0.0519797302817 + 0.0519898196652 + 0.0519999108199 + 0.0520100037461 + 0.052020098444 + 0.0520301949141 + 0.0520402931565 + 0.0520503931717 + 0.05206049496 + 0.0520705985215 + 0.0520807038568 + 0.0520908109659 + 0.0521009198494 + 0.0521110305075 + 0.0521211429404 + 0.0521312571486 + 0.0521413731323 + 0.0521514908918 + 0.0521616104275 + 0.0521717317396 + 0.0521818548285 + 0.0521919796945 + 0.0522021063379 + 0.052212234759 + 0.0522223649581 + 0.0522324969356 + 0.0522426306916 + 0.0522527662267 + 0.052262903541 + 0.0522730426349 + 0.0522831835087 + 0.0522933261627 + 0.0523034705972 + 0.0523136168125 + 0.052323764809 + 0.0523339145869 + 0.0523440661466 + 0.0523542194884 + 0.0523643746126 + 0.0523745315195 + 0.0523846902094 + 0.0523948506826 + 0.0524050129395 + 0.0524151769804 + 0.0524253428055 + 0.0524355104152 + 0.0524456798098 + 0.0524558509896 + 0.0524660239549 + 0.0524761987061 + 0.0524863752434 + 0.0524965535672 + 0.0525067336778 + 0.0525169155755 + 0.0525270992605 + 0.0525372847333 + 0.0525474719942 + 0.0525576610433 + 0.0525678518812 + 0.052578044508 + 0.0525882389241 + 0.0525984351298 + 0.0526086331254 + 0.0526188329113 + 0.0526290344877 + 0.052639237855 + 0.0526494430134 + 0.0526596499634 + 0.0526698587051 + 0.052680069239 + 0.0526902815653 + 0.0527004956843 + 0.0527107115964 + 0.0527209293019 + 0.0527311488011 + 0.0527413700943 + 0.0527515931818 + 0.0527618180639 + 0.052772044741 + 0.0527822732134 + 0.0527925034813 + 0.0528027355452 + 0.0528129694052 + 0.0528232050618 + 0.0528334425153 + 0.0528436817659 + 0.0528539228139 + 0.0528641656598 + 0.0528744103038 + 0.0528846567461 + 0.0528949049873 + 0.0529051550274 + 0.052915406867 + 0.0529256605062 + 0.0529359159455 + 0.052946173185 + 0.0529564322252 + 0.0529666930663 + 0.0529769557087 + 0.0529872201527 + 0.0529974863986 + 0.0530077544467 + 0.0530180242973 + 0.0530282959508 + 0.0530385694074 + 0.0530488446675 + 0.0530591217314 + 0.0530694005994 + 0.0530796812719 + 0.0530899637491 + 0.0531002480313 + 0.053110534119 + 0.0531208220123 + 0.0531311117117 + 0.0531414032173 + 0.0531516965297 + 0.053161991649 + 0.0531722885755 + 0.0531825873097 + 0.0531928878518 + 0.0532031902022 + 0.053213494361 + 0.0532238003288 + 0.0532341081057 + 0.0532444176922 + 0.0532547290884 + 0.0532650422948 + 0.0532753573117 + 0.0532856741394 + 0.0532959927781 + 0.0533063132282 + 0.0533166354901 + 0.053326959564 + 0.0533372854503 + 0.0533476131493 + 0.0533579426613 + 0.0533682739866 + 0.0533786071255 + 0.0533889420784 + 0.0533992788455 + 0.0534096174273 + 0.053419957824 + 0.0534303000359 + 0.0534406440633 + 0.0534509899066 + 0.0534613375661 + 0.0534716870422 + 0.053482038335 + 0.053492391445 + 0.0535027463724 + 0.0535131031176 + 0.053523461681 + 0.0535338220627 + 0.0535441842632 + 0.0535545482827 + 0.0535649141217 + 0.0535752817803 + 0.0535856512589 + 0.0535960225579 + 0.0536063956775 + 0.0536167706181 + 0.05362714738 + 0.0536375259635 + 0.053647906369 + 0.0536582885967 + 0.053668672647 + 0.0536790585201 + 0.0536894462165 + 0.0536998357364 + 0.0537102270802 + 0.0537206202482 + 0.0537310152406 + 0.0537414120579 + 0.0537518107003 + 0.0537622111681 + 0.0537726134617 + 0.0537830175815 + 0.0537934235276 + 0.0538038313005 + 0.0538142409004 + 0.0538246523277 + 0.0538350655828 + 0.0538454806658 + 0.0538558975772 + 0.0538663163172 + 0.0538767368863 + 0.0538871592846 + 0.0538975835126 + 0.0539080095705 + 0.0539184374586 + 0.0539288671774 + 0.0539392987271 + 0.053949732108 + 0.0539601673204 + 0.0539706043648 + 0.0539810432413 + 0.0539914839504 + 0.0540019264923 + 0.0540123708673 + 0.0540228170759 + 0.0540332651182 + 0.0540437149947 + 0.0540541667056 + 0.0540646202513 + 0.0540750756321 + 0.0540855328483 + 0.0540959919003 + 0.0541064527883 + 0.0541169155127 + 0.0541273800738 + 0.0541378464719 + 0.0541483147073 + 0.0541587847805 + 0.0541692566916 + 0.0541797304411 + 0.0541902060292 + 0.0542006834563 + 0.0542111627226 + 0.0542216438286 + 0.0542321267745 + 0.0542426115606 + 0.0542530981873 + 0.054263586655 + 0.0542740769638 + 0.0542845691142 + 0.0542950631065 + 0.0543055589409 + 0.0543160566179 + 0.0543265561377 + 0.0543370575007 + 0.0543475607072 + 0.0543580657575 + 0.0543685726519 + 0.0543790813908 + 0.0543895919745 + 0.0544001044032 + 0.0544106186774 + 0.0544211347974 + 0.0544316527634 + 0.0544421725759 + 0.054452694235 + 0.0544632177412 + 0.0544737430948 + 0.0544842702961 + 0.0544947993454 + 0.0545053302431 + 0.0545158629894 + 0.0545263975848 + 0.0545369340294 + 0.0545474723237 + 0.054558012468 + 0.0545685544626 + 0.0545790983078 + 0.0545896440039 + 0.0546001915513 + 0.0546107409503 + 0.0546212922013 + 0.0546318453044 + 0.0546424002602 + 0.0546529570688 + 0.0546635157307 + 0.0546740762461 + 0.0546846386154 + 0.0546952028388 + 0.0547057689168 + 0.0547163368497 + 0.0547269066377 + 0.0547374782812 + 0.0547480517806 + 0.0547586271361 + 0.0547692043481 + 0.0547797834169 + 0.0547903643428 + 0.0548009471261 + 0.0548115317673 + 0.0548221182665 + 0.0548327066242 + 0.0548432968407 + 0.0548538889162 + 0.0548644828512 + 0.0548750786458 + 0.0548856763006 + 0.0548962758157 + 0.0549068771916 + 0.0549174804285 + 0.0549280855268 + 0.0549386924868 + 0.0549493013088 + 0.0549599119931 + 0.0549705245402 + 0.0549811389502 + 0.0549917552236 + 0.0550023733606 + 0.0550129933617 + 0.055023615227 + 0.055034238957 + 0.0550448645519 + 0.0550554920122 + 0.055066121338 + 0.0550767525299 + 0.055087385588 + 0.0550980205127 + 0.0551086573043 + 0.0551192959632 + 0.0551299364897 + 0.0551405788841 + 0.0551512231468 + 0.055161869278 + 0.0551725172782 + 0.0551831671475 + 0.0551938188865 + 0.0552044724953 + 0.0552151279743 + 0.0552257853239 + 0.0552364445443 + 0.055247105636 + 0.0552577685991 + 0.0552684334342 + 0.0552791001414 + 0.0552897687211 + 0.0553004391737 + 0.0553111114994 + 0.0553217856986 + 0.0553324617717 + 0.0553431397189 + 0.0553538195406 + 0.0553645012372 + 0.0553751848088 + 0.055385870256 + 0.0553965575789 + 0.055407246778 + 0.0554179378536 + 0.0554286308059 + 0.0554393256354 + 0.0554500223423 + 0.055460720927 + 0.0554714213898 + 0.055482123731 + 0.055492827951 + 0.0555035340502 + 0.0555142420287 + 0.055524951887 + 0.0555356636254 + 0.0555463772442 + 0.0555570927437 + 0.0555678101244 + 0.0555785293864 + 0.0555892505302 + 0.0555999735561 + 0.0556106984643 + 0.0556214252553 + 0.0556321539294 + 0.0556428844868 + 0.055653616928 + 0.0556643512532 + 0.0556750874628 + 0.0556858255571 + 0.0556965655365 + 0.0557073074012 + 0.0557180511517 + 0.0557287967881 + 0.055739544311 + 0.0557502937206 + 0.0557610450171 + 0.0557717982011 + 0.0557825532727 + 0.0557933102324 + 0.0558040690804 + 0.0558148298172 + 0.0558255924429 + 0.055836356958 + 0.0558471233628 + 0.0558578916576 + 0.0558686618427 + 0.0558794339185 + 0.0558902078854 + 0.0559009837435 + 0.0559117614934 + 0.0559225411352 + 0.0559333226694 + 0.0559441060963 + 0.0559548914162 + 0.0559656786294 + 0.0559764677362 + 0.0559872587371 + 0.0559980516323 + 0.0560088464222 + 0.0560196431071 + 0.0560304416873 + 0.0560412421632 + 0.056052044535 + 0.0560628488032 + 0.0560736549681 + 0.0560844630299 + 0.0560952729891 + 0.056106084846 + 0.0561168986008 + 0.056127714254 + 0.0561385318058 + 0.0561493512566 + 0.0561601726068 + 0.0561709958566 + 0.0561818210064 + 0.0561926480565 + 0.0562034770073 + 0.0562143078591 + 0.0562251406122 + 0.056235975267 + 0.0562468118238 + 0.0562576502829 + 0.0562684906447 + 0.0562793329094 + 0.0562901770775 + 0.0563010231493 + 0.0563118711251 + 0.0563227210052 + 0.05633357279 + 0.0563444264798 + 0.0563552820749 + 0.0563661395757 + 0.0563769989825 + 0.0563878602956 + 0.0563987235154 + 0.0564095886423 + 0.0564204556764 + 0.0564313246183 + 0.0564421954682 + 0.0564530682264 + 0.0564639428933 + 0.0564748194692 + 0.0564856979545 + 0.0564965783495 + 0.0565074606545 + 0.0565183448699 + 0.0565292309959 + 0.056540119033 + 0.0565510089815 + 0.0565619008417 + 0.0565727946139 + 0.0565836902984 + 0.0565945878957 + 0.0566054874061 + 0.0566163888298 + 0.0566272921672 + 0.0566381974187 + 0.0566491045846 + 0.0566600136652 + 0.0566709246609 + 0.0566818375719 + 0.0566927523987 + 0.0567036691416 + 0.0567145878009 + 0.0567255083769 + 0.05673643087 + 0.0567473552805 + 0.0567582816088 + 0.0567692098552 + 0.05678014002 + 0.0567910721035 + 0.0568020061062 + 0.0568129420283 + 0.0568238798701 + 0.0568348196321 + 0.0568457613145 + 0.0568567049177 + 0.0568676504421 + 0.0568785978878 + 0.0568895472554 + 0.0569004985452 + 0.0569114517573 + 0.0569224068924 + 0.0569333639505 + 0.0569443229321 + 0.0569552838376 + 0.0569662466672 + 0.0569772114213 + 0.0569881781003 + 0.0569991467044 + 0.057010117234 + 0.0570210896895 + 0.0570320640712 + 0.0570430403794 + 0.0570540186144 + 0.0570649987767 + 0.0570759808665 + 0.0570869648842 + 0.0570979508301 + 0.0571089387045 + 0.0571199285079 + 0.0571309202404 + 0.0571419139026 + 0.0571529094946 + 0.057163907017 + 0.0571749064699 + 0.0571859078537 + 0.0571969111688 + 0.0572079164155 + 0.0572189235941 + 0.057229932705 + 0.0572409437486 + 0.0572519567251 + 0.0572629716349 + 0.0572739884783 + 0.0572850072557 + 0.0572960279675 + 0.0573070506139 + 0.0573180751953 + 0.057329101712 + 0.0573401301644 + 0.0573511605529 + 0.0573621928777 + 0.0573732271392 + 0.0573842633377 + 0.0573953014736 + 0.0574063415472 + 0.0574173835589 + 0.057428427509 + 0.0574394733978 + 0.0574505212257 + 0.057461570993 + 0.0574726227 + 0.0574836763472 + 0.0574947319348 + 0.0575057894632 + 0.0575168489327 + 0.0575279103437 + 0.0575389736965 + 0.0575500389914 + 0.0575611062288 + 0.057572175409 + 0.0575832465324 + 0.0575943195993 + 0.0576053946101 + 0.0576164715651 + 0.0576275504645 + 0.0576386313089 + 0.0576497140985 + 0.0576607988336 + 0.0576718855146 + 0.0576829741419 + 0.0576940647157 + 0.0577051572365 + 0.0577162517045 + 0.0577273481201 + 0.0577384464837 + 0.0577495467956 + 0.0577606490561 + 0.0577717532656 + 0.0577828594244 + 0.0577939675328 + 0.0578050775913 + 0.0578161896001 + 0.0578273035596 + 0.0578384194701 + 0.057849537332 + 0.0578606571456 + 0.0578717789112 + 0.0578829026293 + 0.0578940283001 + 0.057905155924 + 0.0579162855013 + 0.0579274170323 + 0.0579385505175 + 0.0579496859572 + 0.0579608233516 + 0.0579719627012 + 0.0579831040063 + 0.0579942472672 + 0.0580053924842 + 0.0580165396578 + 0.0580276887883 + 0.0580388398759 + 0.0580499929211 + 0.0580611479242 + 0.0580723048855 + 0.0580834638054 + 0.0580946246842 + 0.0581057875223 + 0.0581169523199 + 0.0581281190776 + 0.0581392877955 + 0.0581504584741 + 0.0581616311136 + 0.0581728057145 + 0.0581839822771 + 0.0581951608017 + 0.0582063412886 + 0.0582175237383 + 0.058228708151 + 0.0582398945271 + 0.0582510828669 + 0.0582622731708 + 0.0582734654392 + 0.0582846596723 + 0.0582958558705 + 0.0583070540342 + 0.0583182541638 + 0.0583294562594 + 0.0583406603216 + 0.0583518663506 + 0.0583630743469 + 0.0583742843106 + 0.0583854962422 + 0.0583967101421 + 0.0584079260105 + 0.0584191438479 + 0.0584303636545 + 0.0584415854307 + 0.0584528091769 + 0.0584640348933 + 0.0584752625805 + 0.0584864922386 + 0.058497723868 + 0.0585089574692 + 0.0585201930423 + 0.0585314305879 + 0.0585426701061 + 0.0585539115975 + 0.0585651550622 + 0.0585764005008 + 0.0585876479134 + 0.0585988973005 + 0.0586101486623 + 0.0586214019994 + 0.0586326573119 + 0.0586439146003 + 0.0586551738648 + 0.0586664351059 + 0.0586776983239 + 0.0586889635191 + 0.0587002306919 + 0.0587114998426 + 0.0587227709716 + 0.0587340440792 + 0.0587453191657 + 0.0587565962316 + 0.0587678752771 + 0.0587791563027 + 0.0587904393086 + 0.0588017242952 + 0.0588130112629 + 0.0588243002119 + 0.0588355911427 + 0.0588468840556 + 0.058858178951 + 0.0588694758291 + 0.0588807746904 + 0.0588920755351 + 0.0589033783637 + 0.0589146831765 + 0.0589259899738 + 0.058937298756 + 0.0589486095234 + 0.0589599222764 + 0.0589712370153 + 0.0589825537405 + 0.0589938724524 + 0.0590051931511 + 0.0590165158373 + 0.059027840511 + 0.0590391671728 + 0.059050495823 + 0.0590618264619 + 0.0590731590898 + 0.0590844937072 + 0.0590958303143 + 0.0591071689116 + 0.0591185094993 + 0.0591298520778 + 0.0591411966475 + 0.0591525432086 + 0.0591638917617 + 0.059175242307 + 0.0591865948448 + 0.0591979493755 + 0.0592093058995 + 0.0592206644171 + 0.0592320249286 + 0.0592433874345 + 0.059254751935 + 0.0592661184306 + 0.0592774869215 + 0.0592888574081 + 0.0593002298907 + 0.0593116043698 + 0.0593229808457 + 0.0593343593186 + 0.059345739789 + 0.0593571222573 + 0.0593685067237 + 0.0593798931886 + 0.0593912816523 + 0.0594026721153 + 0.0594140645779 + 0.0594254590404 + 0.0594368555031 + 0.0594482539665 + 0.0594596544308 + 0.0594710568965 + 0.0594824613638 + 0.0594938678332 + 0.0595052763049 + 0.0595166867794 + 0.0595280992569 + 0.0595395137379 + 0.0595509302227 + 0.0595623487116 + 0.059573769205 + 0.0595851917032 + 0.0595966162066 + 0.0596080427156 + 0.0596194712304 + 0.0596309017515 + 0.0596423342792 + 0.0596537688139 + 0.0596652053559 + 0.0596766439055 + 0.0596880844631 + 0.0596995270291 + 0.0597109716038 + 0.0597224181876 + 0.0597338667807 + 0.0597453173837 + 0.0597567699968 + 0.0597682246204 + 0.0597796812547 + 0.0597911399003 + 0.0598026005574 + 0.0598140632264 + 0.0598255279077 + 0.0598369946015 + 0.0598484633083 + 0.0598599340284 + 0.0598714067622 + 0.0598828815099 + 0.0598943582721 + 0.0599058370489 + 0.0599173178408 + 0.0599288006482 + 0.0599402854713 + 0.0599517723105 + 0.0599632611663 + 0.0599747520388 + 0.0599862449286 + 0.0599977398359 + 0.0600092367611 + 0.0600207357046 + 0.0600322366667 + 0.0600437396478 + 0.0600552446481 + 0.0600667516682 + 0.0600782607083 + 0.0600897717687 + 0.0601012848499 + 0.0601127999522 + 0.0601243170759 + 0.0601358362215 + 0.0601473573892 + 0.0601588805794 + 0.0601704057925 + 0.0601819330288 + 0.0601934622886 + 0.0602049935725 + 0.0602165268806 + 0.0602280622133 + 0.060239599571 + 0.0602511389541 + 0.0602626803629 + 0.0602742237978 + 0.0602857692591 + 0.0602973167472 + 0.0603088662624 + 0.0603204178051 + 0.0603319713756 + 0.0603435269744 + 0.0603550846017 + 0.0603666442579 + 0.0603782059433 + 0.0603897696584 + 0.0604013354035 + 0.0604129031789 + 0.0604244729851 + 0.0604360448222 + 0.0604476186908 + 0.0604591945911 + 0.0604707725236 + 0.0604823524885 + 0.0604939344863 + 0.0605055185173 + 0.0605171045818 + 0.0605286926802 + 0.0605402828129 + 0.0605518749801 + 0.0605634691824 + 0.06057506542 + 0.0605866636933 + 0.0605982640027 + 0.0606098663484 + 0.0606214707309 + 0.0606330771506 + 0.0606446856077 + 0.0606562961026 + 0.0606679086357 + 0.0606795232074 + 0.060691139818 + 0.0607027584679 + 0.0607143791574 + 0.0607260018869 + 0.0607376266567 + 0.0607492534672 + 0.0607608823188 + 0.0607725132118 + 0.0607841461465 + 0.0607957811234 + 0.0608074181428 + 0.0608190572051 + 0.0608306983105 + 0.0608423414595 + 0.0608539866525 + 0.0608656338897 + 0.0608772831716 + 0.0608889344984 + 0.0609005878707 + 0.0609122432886 + 0.0609239007527 + 0.0609355602631 + 0.0609472218204 + 0.0609588854248 + 0.0609705510768 + 0.0609822187766 + 0.0609938885246 + 0.0610055603213 + 0.0610172341669 + 0.0610289100618 + 0.0610405880064 + 0.0610522680011 + 0.0610639500461 + 0.0610756341419 + 0.0610873202887 + 0.0610990084871 + 0.0611106987373 + 0.0611223910397 + 0.0611340853947 + 0.0611457818025 + 0.0611574802637 + 0.0611691807784 + 0.0611808833472 + 0.0611925879703 + 0.0612042946482 + 0.0612160033811 + 0.0612277141695 + 0.0612394270136 + 0.061251141914 + 0.0612628588708 + 0.0612745778845 + 0.0612862989555 + 0.0612980220841 + 0.0613097472706 + 0.0613214745155 + 0.0613332038191 + 0.0613449351817 + 0.0613566686037 + 0.0613684040855 + 0.0613801416274 + 0.0613918812299 + 0.0614036228931 + 0.0614153666176 + 0.0614271124037 + 0.0614388602518 + 0.0614506101621 + 0.0614623621351 + 0.0614741161711 + 0.0614858722706 + 0.0614976304337 + 0.061509390661 + 0.0615211529528 + 0.0615329173094 + 0.0615446837312 + 0.0615564522186 + 0.0615682227719 + 0.0615799953915 + 0.0615917700778 + 0.0616035468311 + 0.0616153256517 + 0.0616271065401 + 0.0616388894966 + 0.0616506745216 + 0.0616624616154 + 0.0616742507784 + 0.061686042011 + 0.0616978353134 + 0.0617096306862 + 0.0617214281296 + 0.061733227644 + 0.0617450292298 + 0.0617568328874 + 0.061768638617 + 0.0617804464191 + 0.0617922562941 + 0.0618040682422 + 0.0618158822639 + 0.0618276983595 + 0.0618395165294 + 0.061851336774 + 0.0618631590935 + 0.0618749834885 + 0.0618868099592 + 0.061898638506 + 0.0619104691292 + 0.0619223018293 + 0.0619341366066 + 0.0619459734615 + 0.0619578123943 + 0.0619696534054 + 0.0619814964952 + 0.0619933416639 + 0.0620051889121 + 0.06201703824 + 0.0620288896481 + 0.0620407431366 + 0.062052598706 + 0.0620644563566 + 0.0620763160888 + 0.0620881779029 + 0.0621000417994 + 0.0621119077785 + 0.0621237758406 + 0.0621356459862 + 0.0621475182155 + 0.062159392529 + 0.062171268927 + 0.0621831474099 + 0.062195027978 + 0.0622069106317 + 0.0622187953714 + 0.0622306821974 + 0.0622425711101 + 0.0622544621099 + 0.0622663551971 + 0.0622782503721 + 0.0622901476353 + 0.062302046987 + 0.0623139484276 + 0.0623258519575 + 0.0623377575771 + 0.0623496652866 + 0.0623615750865 + 0.0623734869771 + 0.0623854009589 + 0.0623973170321 + 0.0624092351971 + 0.0624211554544 + 0.0624330778042 + 0.062445002247 + 0.062456928783 + 0.0624688574128 + 0.0624807881365 + 0.0624927209547 + 0.0625046558677 + 0.0625165928758 + 0.0625285319794 + 0.0625404731789 + 0.0625524164747 + 0.0625643618671 + 0.0625763093564 + 0.0625882589431 + 0.0626002106275 + 0.0626121644101 + 0.062624120291 + 0.0626360782708 + 0.0626480383498 + 0.0626600005284 + 0.0626719648068 + 0.0626839311856 + 0.0626958996651 + 0.0627078702456 + 0.0627198429275 + 0.0627318177111 + 0.0627437945969 + 0.0627557735853 + 0.0627677546765 + 0.0627797378709 + 0.062791723169 + 0.0628037105711 + 0.0628157000775 + 0.0628276916886 + 0.0628396854049 + 0.0628516812266 + 0.0628636791542 + 0.0628756791879 + 0.0628876813283 + 0.0628996855755 + 0.0629116919301 + 0.0629237003924 + 0.0629357109628 + 0.0629477236415 + 0.0629597384291 + 0.0629717553258 + 0.0629837743321 + 0.0629957954482 + 0.0630078186747 + 0.0630198440118 + 0.0630318714599 + 0.0630439010194 + 0.0630559326907 + 0.0630679664741 + 0.0630800023699 + 0.0630920403787 + 0.0631040805007 + 0.0631161227363 + 0.0631281670859 + 0.0631402135499 + 0.0631522621286 + 0.0631643128224 + 0.0631763656316 + 0.0631884205567 + 0.063200477598 + 0.0632125367559 + 0.0632245980308 + 0.0632366614229 + 0.0632487269328 + 0.0632607945608 + 0.0632728643071 + 0.0632849361723 + 0.0632970101567 + 0.0633090862607 + 0.0633211644845 + 0.0633332448287 + 0.0633453272936 + 0.0633574118795 + 0.0633694985868 + 0.0633815874159 + 0.0633936783672 + 0.063405771441 + 0.0634178666377 + 0.0634299639577 + 0.0634420634013 + 0.063454164969 + 0.0634662686611 + 0.0634783744779 + 0.0634904824199 + 0.0635025924875 + 0.0635147046809 + 0.0635268190005 + 0.0635389354469 + 0.0635510540202 + 0.0635631747209 + 0.0635752975494 + 0.063587422506 + 0.0635995495911 + 0.0636116788051 + 0.0636238101483 + 0.0636359436212 + 0.0636480792241 + 0.0636602169573 + 0.0636723568213 + 0.0636844988164 + 0.063696642943 + 0.0637087892015 + 0.0637209375923 + 0.0637330881156 + 0.063745240772 + 0.0637573955617 + 0.0637695524851 + 0.0637817115427 + 0.0637938727348 + 0.0638060360617 + 0.0638182015239 + 0.0638303691217 + 0.0638425388555 + 0.0638547107256 + 0.0638668847325 + 0.0638790608765 + 0.063891239158 + 0.0639034195774 + 0.063915602135 + 0.0639277868312 + 0.0639399736665 + 0.0639521626411 + 0.0639643537554 + 0.0639765470099 + 0.0639887424048 + 0.0640009399406 + 0.0640131396177 + 0.0640253414364 + 0.0640375453971 + 0.0640497515002 + 0.064061959746 + 0.0640741701349 + 0.0640863826674 + 0.0640985973437 + 0.0641108141643 + 0.0641230331295 + 0.0641352542397 + 0.0641474774953 + 0.0641597028967 + 0.0641719304442 + 0.0641841601383 + 0.0641963919792 + 0.0642086259674 + 0.0642208621032 + 0.0642331003871 + 0.0642453408193 + 0.0642575834004 + 0.0642698281306 + 0.0642820750103 + 0.0642943240399 + 0.0643065752198 + 0.0643188285504 + 0.0643310840321 + 0.0643433416651 + 0.0643556014499 + 0.064367863387 + 0.0643801274765 + 0.064392393719 + 0.0644046621149 + 0.0644169326643 + 0.0644292053679 + 0.0644414802259 + 0.0644537572387 + 0.0644660364068 + 0.0644783177304 + 0.0644906012099 + 0.0645028868458 + 0.0645151746384 + 0.0645274645881 + 0.0645397566953 + 0.0645520509603 + 0.0645643473835 + 0.0645766459654 + 0.0645889467062 + 0.0646012496064 + 0.0646135546664 + 0.0646258618864 + 0.064638171267 + 0.0646504828085 + 0.0646627965112 + 0.0646751123755 + 0.0646874304019 + 0.0646997505906 + 0.0647120729422 + 0.0647243974569 + 0.0647367241351 + 0.0647490529773 + 0.0647613839838 + 0.0647737171549 + 0.0647860524911 + 0.0647983899927 + 0.0648107296602 + 0.0648230714938 + 0.064835415494 + 0.0648477616612 + 0.0648601099958 + 0.064872460498 + 0.0648848131683 + 0.0648971680072 + 0.0649095250148 + 0.0649218841918 + 0.0649342455383 + 0.0649466090549 + 0.0649589747418 + 0.0649713425995 + 0.0649837126284 + 0.0649960848287 + 0.065008459201 + 0.0650208357456 + 0.0650332144629 + 0.0650455953532 + 0.0650579784169 + 0.0650703636545 + 0.0650827510662 + 0.0650951406525 + 0.0651075324138 + 0.0651199263505 + 0.0651323224628 + 0.0651447207513 + 0.0651571212162 + 0.0651695238581 + 0.0651819286772 + 0.0651943356739 + 0.0652067448486 + 0.0652191562017 + 0.0652315697336 + 0.0652439854447 + 0.0652564033353 + 0.0652688234059 + 0.0652812456568 + 0.0652936700883 + 0.065306096701 + 0.0653185254951 + 0.065330956471 + 0.0653433896292 + 0.06535582497 + 0.0653682624938 + 0.0653807022009 + 0.0653931440918 + 0.0654055881669 + 0.0654180344265 + 0.065430482871 + 0.0654429335007 + 0.0654553863162 + 0.0654678413177 + 0.0654802985057 + 0.0654927578805 + 0.0655052194425 + 0.0655176831921 + 0.0655301491297 + 0.0655426172557 + 0.0655550875704 + 0.0655675600742 + 0.0655800347675 + 0.0655925116508 + 0.0656049907243 + 0.0656174719885 + 0.0656299554438 + 0.0656424410905 + 0.065654928929 + 0.0656674189598 + 0.0656799111831 + 0.0656924055994 + 0.0657049022091 + 0.0657174010125 + 0.06572990201 + 0.0657424052021 + 0.0657549105891 + 0.0657674181714 + 0.0657799279493 + 0.0657924399233 + 0.0658049540938 + 0.065817470461 + 0.0658299890255 + 0.0658425097876 + 0.0658550327477 + 0.0658675579062 + 0.0658800852634 + 0.0658926148198 + 0.0659051465757 + 0.0659176805315 + 0.0659302166876 + 0.0659427550445 + 0.0659552956024 + 0.0659678383617 + 0.0659803833229 + 0.0659929304864 + 0.0660054798524 + 0.0660180314215 + 0.066030585194 + 0.0660431411703 + 0.0660556993507 + 0.0660682597357 + 0.0660808223256 + 0.0660933871209 + 0.0661059541219 + 0.066118523329 + 0.0661310947425 + 0.066143668363 + 0.0661562441907 + 0.0661688222261 + 0.0661814024695 + 0.0661939849214 + 0.0662065695821 + 0.066219156452 + 0.0662317455314 + 0.0662443368209 + 0.0662569303207 + 0.0662695260313 + 0.0662821239531 + 0.0662947240863 + 0.0663073264315 + 0.066319930989 + 0.0663325377592 + 0.0663451467425 + 0.0663577579393 + 0.0663703713499 + 0.0663829869748 + 0.0663956048143 + 0.0664082248688 + 0.0664208471388 + 0.0664334716246 + 0.0664460983265 + 0.0664587272451 + 0.0664713583806 + 0.0664839917335 + 0.0664966273042 + 0.066509265093 + 0.0665219051003 + 0.0665345473266 + 0.0665471917721 + 0.0665598384374 + 0.0665724873228 + 0.0665851384286 + 0.0665977917553 + 0.0666104473033 + 0.0666231050729 + 0.0666357650645 + 0.0666484272786 + 0.0666610917155 + 0.0666737583757 + 0.0666864272594 + 0.0666990983671 + 0.0667117716992 + 0.066724447256 + 0.0667371250381 + 0.0667498050456 + 0.0667624872792 + 0.066775171739 + 0.0667878584256 + 0.0668005473393 + 0.0668132384805 + 0.0668259318496 + 0.066838627447 + 0.0668513252731 + 0.0668640253282 + 0.0668767276128 + 0.0668894321273 + 0.066902138872 + 0.0669148478474 + 0.0669275590537 + 0.0669402724915 + 0.0669529881611 + 0.0669657060629 + 0.0669784261974 + 0.0669911485648 + 0.0670038731655 + 0.0670166000001 + 0.0670293290688 + 0.0670420603721 + 0.0670547939103 + 0.0670675296839 + 0.0670802676931 + 0.0670930079386 + 0.0671057504205 + 0.0671184951394 + 0.0671312420955 + 0.0671439912894 + 0.0671567427213 + 0.0671694963917 + 0.067182252301 + 0.0671950104496 + 0.0672077708378 + 0.0672205334661 + 0.0672332983348 + 0.0672460654444 + 0.0672588347952 + 0.0672716063876 + 0.0672843802221 + 0.067297156299 + 0.0673099346186 + 0.0673227151815 + 0.067335497988 + 0.0673482830385 + 0.0673610703333 + 0.0673738598729 + 0.0673866516577 + 0.0673994456881 + 0.0674122419644 + 0.0674250404871 + 0.0674378412565 + 0.0674506442731 + 0.0674634495372 + 0.0674762570493 + 0.0674890668096 + 0.0675018788187 + 0.0675146930769 + 0.0675275095846 + 0.0675403283423 + 0.0675531493502 + 0.0675659726088 + 0.0675787981185 + 0.0675916258797 + 0.0676044558928 + 0.0676172881582 + 0.0676301226762 + 0.0676429594473 + 0.0676557984719 + 0.0676686397503 + 0.067681483283 + 0.0676943290703 + 0.0677071771127 + 0.0677200274105 + 0.0677328799641 + 0.067745734774 + 0.0677585918405 + 0.0677714511641 + 0.067784312745 + 0.0677971765838 + 0.0678100426808 + 0.0678229110364 + 0.067835781651 + 0.0678486545251 + 0.0678615296589 + 0.0678744070529 + 0.0678872867075 + 0.0679001686231 + 0.0679130528001 + 0.0679259392389 + 0.0679388279399 + 0.0679517189034 + 0.0679646121299 + 0.0679775076198 + 0.0679904053735 + 0.0680033053913 + 0.0680162076737 + 0.0680291122211 + 0.0680420190338 + 0.0680549281123 + 0.0680678394569 + 0.0680807530681 + 0.0680936689463 + 0.0681065870918 + 0.068119507505 + 0.0681324301864 + 0.0681453551363 + 0.0681582823552 + 0.0681712118434 + 0.0681841436014 + 0.0681970776295 + 0.0682100139281 + 0.0682229524977 + 0.0682358933386 + 0.0682488364513 + 0.068261781836 + 0.0682747294933 + 0.0682876794235 + 0.0683006316271 + 0.0683135861044 + 0.0683265428558 + 0.0683395018817 + 0.0683524631826 + 0.0683654267588 + 0.0683783926107 + 0.0683913607387 + 0.0684043311433 + 0.0684173038247 + 0.0684302787835 + 0.0684432560201 + 0.0684562355347 + 0.0684692173279 + 0.0684822013999 + 0.0684951877513 + 0.0685081763825 + 0.0685211672937 + 0.0685341604855 + 0.0685471559582 + 0.0685601537122 + 0.0685731537479 + 0.0685861560658 + 0.0685991606662 + 0.0686121675495 + 0.0686251767162 + 0.0686381881665 + 0.068651201901 + 0.06866421792 + 0.068677236224 + 0.0686902568133 + 0.0687032796883 + 0.0687163048495 + 0.0687293322971 + 0.0687423620318 + 0.0687553940537 + 0.0687684283634 + 0.0687814649613 + 0.0687945038476 + 0.068807545023 + 0.0688205884876 + 0.0688336342421 + 0.0688466822866 + 0.0688597326217 + 0.0688727852478 + 0.0688858401653 + 0.0688988973744 + 0.0689119568758 + 0.0689250186697 + 0.0689380827566 + 0.0689511491368 + 0.0689642178109 + 0.068977288779 + 0.0689903620418 + 0.0690034375996 + 0.0690165154527 + 0.0690295956016 + 0.0690426780467 + 0.0690557627884 + 0.0690688498271 + 0.0690819391632 + 0.069095030797 + 0.0691081247291 + 0.0691212209598 + 0.0691343194895 + 0.0691474203186 + 0.0691605234476 + 0.0691736288767 + 0.0691867366065 + 0.0691998466373 + 0.0692129589696 + 0.0692260736037 + 0.06923919054 + 0.069252309779 + 0.069265431321 + 0.0692785551665 + 0.0692916813158 + 0.0693048097694 + 0.0693179405277 + 0.069331073591 + 0.0693442089598 + 0.0693573466345 + 0.0693704866155 + 0.0693836289032 + 0.0693967734979 + 0.0694099204002 + 0.0694230696104 + 0.0694362211289 + 0.0694493749561 + 0.0694625310924 + 0.0694756895382 + 0.069488850294 + 0.0695020133602 + 0.069515178737 + 0.069528346425 + 0.0695415164246 + 0.0695546887361 + 0.06956786336 + 0.0695810402967 + 0.0695942195466 + 0.06960740111 + 0.0696205849874 + 0.0696337711792 + 0.0696469596859 + 0.0696601505077 + 0.0696733436451 + 0.0696865390986 + 0.0696997368685 + 0.0697129369553 + 0.0697261393592 + 0.0697393440809 + 0.0697525511206 + 0.0697657604787 + 0.0697789721557 + 0.069792186152 + 0.069805402468 + 0.0698186211041 + 0.0698318420606 + 0.0698450653381 + 0.0698582909369 + 0.0698715188574 + 0.0698847491001 + 0.0698979816652 + 0.0699112165534 + 0.0699244537648 + 0.0699376933001 + 0.0699509351595 + 0.0699641793434 + 0.0699774258524 + 0.0699906746867 + 0.0700039258469 + 0.0700171793332 + 0.0700304351462 + 0.0700436932862 + 0.0700569537537 + 0.0700702165489 + 0.0700834816725 + 0.0700967491246 + 0.0701100189059 + 0.0701232910166 + 0.0701365654572 + 0.0701498422282 + 0.0701631213298 + 0.0701764027625 + 0.0701896865268 + 0.0702029726229 + 0.0702162610515 + 0.0702295518128 + 0.0702428449072 + 0.0702561403352 + 0.0702694380972 + 0.0702827381936 + 0.0702960406247 + 0.0703093453911 + 0.0703226524931 + 0.0703359619311 + 0.0703492737056 + 0.0703625878169 + 0.0703759042655 + 0.0703892230518 + 0.0704025441761 + 0.0704158676389 + 0.0704291934406 + 0.0704425215817 + 0.0704558520624 + 0.0704691848833 + 0.0704825200447 + 0.0704958575471 + 0.0705091973909 + 0.0705225395764 + 0.0705358841041 + 0.0705492309744 + 0.0705625801877 + 0.0705759317445 + 0.070589285645 + 0.0706026418899 + 0.0706160004793 + 0.0706293614139 + 0.0706427246939 + 0.0706560903198 + 0.070669458292 + 0.070682828611 + 0.070696201277 + 0.0707095762906 + 0.0707229536521 + 0.0707363333621 + 0.0707497154207 + 0.0707630998286 + 0.0707764865861 + 0.0707898756935 + 0.0708032671515 + 0.0708166609602 + 0.0708300571202 + 0.0708434556318 + 0.0708568564956 + 0.0708702597118 + 0.0708836652809 + 0.0708970732033 + 0.0709104834795 + 0.0709238961098 + 0.0709373110947 + 0.0709507284345 + 0.0709641481297 + 0.0709775701807 + 0.0709909945879 + 0.0710044213517 + 0.0710178504726 + 0.0710312819509 + 0.0710447157871 + 0.0710581519815 + 0.0710715905347 + 0.0710850314469 + 0.0710984747187 + 0.0711119203504 + 0.0711253683424 + 0.0711388186952 + 0.0711522714092 + 0.0711657264848 + 0.0711791839224 + 0.0711926437224 + 0.0712061058852 + 0.0712195704113 + 0.071233037301 + 0.0712465065549 + 0.0712599781732 + 0.0712734521564 + 0.071286928505 + 0.0713004072193 + 0.0713138882997 + 0.0713273717467 + 0.0713408575607 + 0.0713543457421 + 0.0713678362914 + 0.0713813292088 + 0.0713948244949 + 0.0714083221501 + 0.0714218221747 + 0.0714353245693 + 0.0714488293341 + 0.0714623364697 + 0.0714758459764 + 0.0714893578547 + 0.071502872105 + 0.0715163887276 + 0.0715299077231 + 0.0715434290918 + 0.0715569528341 + 0.0715704789505 + 0.0715840074414 + 0.0715975383072 + 0.0716110715482 + 0.071624607165 + 0.071638145158 + 0.0716516855275 + 0.071665228274 + 0.0716787733978 + 0.0716923208995 + 0.0717058707795 + 0.071719423038 + 0.0717329776757 + 0.0717465346928 + 0.0717600940898 + 0.0717736558671 + 0.0717872200252 + 0.0718007865644 + 0.0718143554852 + 0.071827926788 + 0.0718415004732 + 0.0718550765413 + 0.0718686549925 + 0.0718822358275 + 0.0718958190465 + 0.07190940465 + 0.0719229926384 + 0.0719365830122 + 0.0719501757718 + 0.0719637709175 + 0.0719773684498 + 0.0719909683691 + 0.0720045706758 + 0.0720181753704 + 0.0720317824533 + 0.0720453919248 + 0.0720590037855 + 0.0720726180357 + 0.0720862346758 + 0.0720998537063 + 0.0721134751276 + 0.0721270989401 + 0.0721407251443 + 0.0721543537404 + 0.0721679847291 + 0.0721816181106 + 0.0721952538855 + 0.072208892054 + 0.0722225326167 + 0.072236175574 + 0.0722498209263 + 0.0722634686739 + 0.0722771188174 + 0.0722907713572 + 0.0723044262936 + 0.0723180836271 + 0.0723317433581 + 0.0723454054871 + 0.0723590700144 + 0.0723727369404 + 0.0723864062657 + 0.0724000779906 + 0.0724137521155 + 0.0724274286409 + 0.0724411075672 + 0.0724547888947 + 0.072468472624 + 0.0724821587555 + 0.0724958472895 + 0.0725095382264 + 0.0725232315668 + 0.0725369273111 + 0.0725506254596 + 0.0725643260127 + 0.072578028971 + 0.0725917343348 + 0.0726054421045 + 0.0726191522806 + 0.0726328648634 + 0.0726465798535 + 0.0726602972512 + 0.072674017057 + 0.0726877392712 + 0.0727014638944 + 0.0727151909269 + 0.0727289203691 + 0.0727426522215 + 0.0727563864845 + 0.0727701231585 + 0.0727838622439 + 0.0727976037412 + 0.0728113476508 + 0.0728250939731 + 0.0728388427085 + 0.0728525938575 + 0.0728663474204 + 0.0728801033978 + 0.07289386179 + 0.0729076225974 + 0.0729213858206 + 0.0729351514598 + 0.0729489195155 + 0.0729626899882 + 0.0729764628783 + 0.0729902381862 + 0.0730040159122 + 0.073017796057 + 0.0730315786208 + 0.0730453636041 + 0.0730591510073 + 0.0730729408308 + 0.0730867330752 + 0.0731005277407 + 0.0731143248278 + 0.073128124337 + 0.0731419262687 + 0.0731557306232 + 0.0731695374011 + 0.0731833466027 + 0.0731971582285 + 0.0732109722789 + 0.0732247887543 + 0.0732386076551 + 0.0732524289819 + 0.0732662527349 + 0.0732800789146 + 0.0732939075215 + 0.073307738556 + 0.0733215720185 + 0.0733354079094 + 0.0733492462292 + 0.0733630869783 + 0.073376930157 + 0.0733907757659 + 0.0734046238054 + 0.0734184742758 + 0.0734323271777 + 0.0734461825114 + 0.0734600402774 + 0.0734739004761 + 0.0734877631079 + 0.0735016281732 + 0.0735154956725 + 0.0735293656063 + 0.0735432379748 + 0.0735571127787 + 0.0735709900182 + 0.0735848696938 + 0.073598751806 + 0.0736126363551 + 0.0736265233417 + 0.073640412766 + 0.0736543046286 + 0.0736681989299 + 0.0736820956703 + 0.0736959948503 + 0.0737098964702 + 0.0737238005305 + 0.0737377070317 + 0.073751615974 + 0.0737655273581 + 0.0737794411843 + 0.073793357453 + 0.0738072761647 + 0.0738211973197 + 0.0738351209186 + 0.0738490469618 + 0.0738629754496 + 0.0738769063826 + 0.0738908397611 + 0.0739047755855 + 0.0739187138564 + 0.0739326545741 + 0.073946597739 + 0.0739605433516 + 0.0739744914124 + 0.0739884419217 + 0.07400239488 + 0.0740163502876 + 0.0740303081452 + 0.0740442684529 + 0.0740582312114 + 0.074072196421 + 0.0740861640822 + 0.0741001341954 + 0.0741141067609 + 0.0741280817794 + 0.0741420592511 + 0.0741560391765 + 0.074170021556 + 0.0741840063902 + 0.0741979936793 + 0.0742119834239 + 0.0742259756243 + 0.074239970281 + 0.0742539673945 + 0.0742679669651 + 0.0742819689933 + 0.0742959734795 + 0.0743099804242 + 0.0743239898277 + 0.0743380016906 + 0.0743520160132 + 0.074366032796 + 0.0743800520395 + 0.0743940737439 + 0.0744080979098 + 0.0744221245377 + 0.0744361536279 + 0.0744501851808 + 0.074464219197 + 0.0744782556768 + 0.0744922946206 + 0.074506336029 + 0.0745203799023 + 0.074534426241 + 0.0745484750454 + 0.0745625263161 + 0.0745765800535 + 0.074590636258 + 0.07460469493 + 0.0746187560699 + 0.0746328196783 + 0.0746468857555 + 0.0746609543019 + 0.0746750253181 + 0.0746890988044 + 0.0747031747612 + 0.0747172531891 + 0.0747313340884 + 0.0747454174595 + 0.074759503303 + 0.0747735916191 + 0.0747876824085 + 0.0748017756715 + 0.0748158714085 + 0.0748299696199 + 0.0748440703063 + 0.074858173468 + 0.0748722791055 + 0.0748863872192 + 0.0749004978095 + 0.074914610877 + 0.0749287264219 + 0.0749428444448 + 0.0749569649461 + 0.0749710879261 + 0.0749852133855 + 0.0749993413245 + 0.0750134717437 + 0.0750276046434 + 0.0750417400241 + 0.0750558778863 + 0.0750700182303 + 0.0750841610566 + 0.0750983063656 + 0.0751124541578 + 0.0751266044337 + 0.0751407571936 + 0.0751549124379 + 0.0751690701672 + 0.0751832303818 + 0.0751973930823 + 0.0752115582689 + 0.0752257259422 + 0.0752398961026 + 0.0752540687506 + 0.0752682438865 + 0.0752824215109 + 0.075296601624 + 0.0753107842265 + 0.0753249693187 + 0.075339156901 + 0.075353346974 + 0.0753675395379 + 0.0753817345934 + 0.0753959321407 + 0.0754101321804 + 0.0754243347129 + 0.0754385397386 + 0.0754527472579 + 0.0754669572714 + 0.0754811697794 + 0.0754953847823 + 0.0755096022807 + 0.0755238222749 + 0.0755380447653 + 0.0755522697526 + 0.0755664972369 + 0.0755807272189 + 0.0755949596989 + 0.0756091946774 + 0.0756234321548 + 0.0756376721315 + 0.0756519146081 + 0.0756661595849 + 0.0756804070623 + 0.0756946570409 + 0.075708909521 + 0.0757231645031 + 0.0757374219876 + 0.075751681975 + 0.0757659444657 + 0.0757802094601 + 0.0757944769587 + 0.075808746962 + 0.0758230194703 + 0.0758372944841 + 0.0758515720039 + 0.07586585203 + 0.075880134563 + 0.0758944196032 + 0.0759087071511 + 0.0759229972072 + 0.0759372897718 + 0.0759515848455 + 0.0759658824287 + 0.0759801825217 + 0.0759944851251 + 0.0760087902393 + 0.0760230978647 + 0.0760374080018 + 0.076051720651 + 0.0760660358127 + 0.0760803534874 + 0.0760946736756 + 0.0761089963776 + 0.076123321594 + 0.0761376493251 + 0.0761519795714 + 0.0761663123333 + 0.0761806476114 + 0.0761949854059 + 0.0762093257174 + 0.0762236685463 + 0.0762380138931 + 0.0762523617581 + 0.0762667121419 + 0.0762810650449 + 0.0762954204675 + 0.0763097784101 + 0.0763241388732 + 0.0763385018573 + 0.0763528673628 + 0.0763672353901 + 0.0763816059396 + 0.0763959790119 + 0.0764103546074 + 0.0764247327264 + 0.0764391133695 + 0.0764534965371 + 0.0764678822296 + 0.0764822704474 + 0.0764966611911 + 0.0765110544611 + 0.0765254502577 + 0.0765398485815 + 0.0765542494329 + 0.0765686528123 + 0.0765830587202 + 0.076597467157 + 0.0766118781232 + 0.0766262916192 + 0.0766407076454 + 0.0766551262024 + 0.0766695472905 + 0.0766839709101 + 0.0766983970618 + 0.076712825746 + 0.0767272569631 + 0.0767416907136 + 0.0767561269979 + 0.0767705658164 + 0.0767850071696 + 0.076799451058 + 0.0768138974819 + 0.0768283464419 + 0.0768427979384 + 0.0768572519718 + 0.0768717085425 + 0.0768861676511 + 0.076900629298 + 0.0769150934835 + 0.0769295602082 + 0.0769440294725 + 0.0769585012768 + 0.0769729756217 + 0.0769874525074 + 0.0770019319346 + 0.0770164139035 + 0.0770308984148 + 0.0770453854688 + 0.0770598750659 + 0.0770743672066 + 0.0770888618914 + 0.0771033591207 + 0.077117858895 + 0.0771323612147 + 0.0771468660802 + 0.077161373492 + 0.0771758834505 + 0.0771903959562 + 0.0772049110096 + 0.0772194286111 + 0.077233948761 + 0.07724847146 + 0.0772629967084 + 0.0772775245066 + 0.0772920548552 + 0.0773065877545 + 0.077321123205 + 0.0773356612072 + 0.0773502017616 + 0.0773647448684 + 0.0773792905283 + 0.0773938387417 + 0.0774083895089 + 0.0774229428305 + 0.0774374987069 + 0.0774520571385 + 0.0774666181259 + 0.0774811816693 + 0.0774957477694 + 0.0775103164265 + 0.0775248876411 + 0.0775394614137 + 0.0775540377446 + 0.0775686166344 + 0.0775831980835 + 0.0775977820923 + 0.0776123686613 + 0.0776269577909 + 0.0776415494816 + 0.0776561437338 + 0.0776707405481 + 0.0776853399247 + 0.0776999418643 + 0.0777145463672 + 0.0777291534338 + 0.0777437630647 + 0.0777583752603 + 0.077772990021 + 0.0777876073474 + 0.0778022272397 + 0.0778168496985 + 0.0778314747243 + 0.0778461023174 + 0.0778607324784 + 0.0778753652077 + 0.0778900005057 + 0.0779046383729 + 0.0779192788098 + 0.0779339218167 + 0.0779485673942 + 0.0779632155427 + 0.0779778662626 + 0.0779925195544 + 0.0780071754186 + 0.0780218338556 + 0.0780364948658 + 0.0780511584497 + 0.0780658246078 + 0.0780804933405 + 0.0780951646483 + 0.0781098385315 + 0.0781245149907 + 0.0781391940264 + 0.0781538756389 + 0.0781685598287 + 0.0781832465963 + 0.0781979359422 + 0.0782126278667 + 0.0782273223703 + 0.0782420194535 + 0.0782567191168 + 0.0782714213605 + 0.0782861261852 + 0.0783008335913 + 0.0783155435793 + 0.0783302561495 + 0.0783449713025 + 0.0783596890387 + 0.0783744093586 + 0.0783891322625 + 0.0784038577511 + 0.0784185858247 + 0.0784333164837 + 0.0784480497287 + 0.0784627855601 + 0.0784775239783 + 0.0784922649838 + 0.078507008577 + 0.0785217547584 + 0.0785365035285 + 0.0785512548877 + 0.0785660088365 + 0.0785807653753 + 0.0785955245046 + 0.0786102862248 + 0.0786250505364 + 0.0786398174398 + 0.0786545869355 + 0.0786693590239 + 0.0786841337056 + 0.0786989109809 + 0.0787136908504 + 0.0787284733144 + 0.0787432583734 + 0.0787580460279 + 0.0787728362783 + 0.0787876291252 + 0.0788024245689 + 0.0788172226099 + 0.0788320232486 + 0.0788468264856 + 0.0788616323212 + 0.078876440756 + 0.0788912517903 + 0.0789060654247 + 0.0789208816596 + 0.0789357004954 + 0.0789505219327 + 0.0789653459718 + 0.0789801726132 + 0.0789950018574 + 0.0790098337049 + 0.079024668156 + 0.0790395052113 + 0.0790543448712 + 0.0790691871362 + 0.0790840320067 + 0.0790988794832 + 0.0791137295661 + 0.0791285822559 + 0.0791434375531 + 0.079158295458 + 0.0791731559713 + 0.0791880190932 + 0.0792028848244 + 0.0792177531652 + 0.0792326241161 + 0.0792474976775 + 0.07926237385 + 0.0792772526339 + 0.0792921340298 + 0.0793070180381 + 0.0793219046592 + 0.0793367938936 + 0.0793516857418 + 0.0793665802043 + 0.0793814772814 + 0.0793963769736 + 0.0794112792815 + 0.0794261842054 + 0.0794410917459 + 0.0794560019033 + 0.0794709146782 + 0.0794858300709 + 0.0795007480821 + 0.079515668712 + 0.0795305919612 + 0.0795455178302 + 0.0795604463194 + 0.0795753774292 + 0.0795903111601 + 0.0796052475127 + 0.0796201864872 + 0.0796351280843 + 0.0796500723043 + 0.0796650191478 + 0.0796799686151 + 0.0796949207068 + 0.0797098754232 + 0.079724832765 + 0.0797397927324 + 0.0797547553261 + 0.0797697205464 + 0.0797846883938 + 0.0797996588687 + 0.0798146319717 + 0.0798296077032 + 0.0798445860637 + 0.0798595670535 + 0.0798745506732 + 0.0798895369233 + 0.0799045258042 + 0.0799195173163 + 0.0799345114602 + 0.0799495082362 + 0.0799645076449 + 0.0799795096867 + 0.079994514362 + 0.0800095216714 + 0.0800245316153 + 0.0800395441942 + 0.0800545594084 + 0.0800695772586 + 0.0800845977451 + 0.0800996208684 + 0.080114646629 + 0.0801296750273 + 0.0801447060638 + 0.080159739739 + 0.0801747760533 + 0.0801898150072 + 0.0802048566011 + 0.0802199008356 + 0.080234947711 + 0.0802499972279 + 0.0802650493866 + 0.0802801041878 + 0.0802951616318 + 0.080310221719 + 0.0803252844501 + 0.0803403498253 + 0.0803554178453 + 0.0803704885104 + 0.0803855618211 + 0.0804006377779 + 0.0804157163813 + 0.0804307976317 + 0.0804458815295 + 0.0804609680753 + 0.0804760572695 + 0.0804911491125 + 0.0805062436049 + 0.0805213407471 + 0.0805364405396 + 0.0805515429828 + 0.0805666480772 + 0.0805817558232 + 0.0805968662214 + 0.0806119792722 + 0.080627094976 + 0.0806422133333 + 0.0806573343447 + 0.0806724580105 + 0.0806875843312 + 0.0807027133073 + 0.0807178449393 + 0.0807329792276 + 0.0807481161726 + 0.080763255775 + 0.080778398035 + 0.0807935429532 + 0.0808086905301 + 0.0808238407661 + 0.0808389936617 + 0.0808541492173 + 0.0808693074335 + 0.0808844683106 + 0.0808996318493 + 0.0809147980498 + 0.0809299669127 + 0.0809451384385 + 0.0809603126276 + 0.0809754894804 + 0.0809906689976 + 0.0810058511795 + 0.0810210360265 + 0.0810362235393 + 0.0810514137181 + 0.0810666065636 + 0.0810818020761 + 0.0810970002561 + 0.0811122011042 + 0.0811274046207 + 0.0811426108062 + 0.0811578196611 + 0.0811730311858 + 0.0811882453809 + 0.0812034622469 + 0.0812186817841 + 0.081233903993 + 0.0812491288742 + 0.081264356428 + 0.0812795866551 + 0.0812948195557 + 0.0813100551304 + 0.0813252933798 + 0.0813405343041 + 0.081355777904 + 0.0813710241798 + 0.0813862731321 + 0.0814015247613 + 0.0814167790679 + 0.0814320360523 + 0.0814472957151 + 0.0814625580566 + 0.0814778230774 + 0.081493090778 + 0.0815083611588 + 0.0815236342202 + 0.0815389099628 + 0.081554188387 + 0.0815694694933 + 0.0815847532822 + 0.0816000397541 + 0.0816153289095 + 0.0816306207489 + 0.0816459152727 + 0.0816612124814 + 0.0816765123755 + 0.0816918149555 + 0.0817071202218 + 0.0817224281749 + 0.0817377388153 + 0.0817530521434 + 0.0817683681597 + 0.0817836868648 + 0.081799008259 + 0.0818143323428 + 0.0818296591167 + 0.0818449885812 + 0.0818603207368 + 0.0818756555839 + 0.0818909931229 + 0.0819063333545 + 0.0819216762789 + 0.0819370218968 + 0.0819523702086 + 0.0819677212147 + 0.0819830749157 + 0.081998431312 + 0.082013790404 + 0.0820291521923 + 0.0820445166773 + 0.0820598838596 + 0.0820752537394 + 0.0820906263175 + 0.0821060015941 + 0.0821213795699 + 0.0821367602452 + 0.0821521436205 + 0.0821675296964 + 0.0821829184732 + 0.0821983099515 + 0.0822137041318 + 0.0822291010144 + 0.0822445006 + 0.0822599028889 + 0.0822753078816 + 0.0822907155787 + 0.0823061259805 + 0.0823215390876 + 0.0823369549004 + 0.0823523734194 + 0.0823677946451 + 0.082383218578 + 0.0823986452185 + 0.0824140745671 + 0.0824295066242 + 0.0824449413905 + 0.0824603788663 + 0.0824758190521 + 0.0824912619484 + 0.0825067075556 + 0.0825221558743 + 0.0825376069049 + 0.0825530606479 + 0.0825685171037 + 0.0825839762729 + 0.0825994381559 + 0.0826149027532 + 0.0826303700653 + 0.0826458400926 + 0.0826613128357 + 0.0826767882949 + 0.0826922664709 + 0.0827077473639 + 0.0827232309747 + 0.0827387173035 + 0.0827542063509 + 0.0827696981174 + 0.0827851926034 + 0.0828006898094 + 0.082816189736 + 0.0828316923835 + 0.0828471977525 + 0.0828627058433 + 0.0828782166566 + 0.0828937301928 + 0.0829092464524 + 0.0829247654357 + 0.0829402871435 + 0.082955811576 + 0.0829713387337 + 0.0829868686173 + 0.083002401227 + 0.0830179365635 + 0.0830334746272 + 0.0830490154185 + 0.083064558938 + 0.0830801051861 + 0.0830956541633 + 0.0831112058701 + 0.0831267603069 + 0.0831423174744 + 0.0831578773728 + 0.0831734400027 + 0.0831890053646 + 0.083204573459 + 0.0832201442863 + 0.083235717847 + 0.0832512941416 + 0.0832668731707 + 0.0832824549345 + 0.0832980394337 + 0.0833136266688 + 0.0833292166401 + 0.0833448093482 + 0.0833604047936 + 0.0833760029767 + 0.083391603898 + 0.0834072075581 + 0.0834228139573 + 0.0834384230962 + 0.0834540349752 + 0.0834696495949 + 0.0834852669556 + 0.083500887058 + 0.0835165099024 + 0.0835321354894 + 0.0835477638194 + 0.0835633948929 + 0.0835790287104 + 0.0835946652724 + 0.0836103045794 + 0.0836259466318 + 0.0836415914301 + 0.0836572389748 + 0.0836728892665 + 0.0836885423055 + 0.0837041980923 + 0.0837198566275 + 0.0837355179115 + 0.0837511819447 + 0.0837668487278 + 0.0837825182612 + 0.0837981905452 + 0.0838138655806 + 0.0838295433676 + 0.0838452239068 + 0.0838609071987 + 0.0838765932438 + 0.0838922820425 + 0.0839079735953 + 0.0839236679028 + 0.0839393649654 + 0.0839550647835 + 0.0839707673577 + 0.0839864726884 + 0.0840021807762 + 0.0840178916215 + 0.0840336052248 + 0.0840493215866 + 0.0840650407073 + 0.0840807625875 + 0.0840964872277 + 0.0841122146282 + 0.0841279447897 + 0.0841436777125 + 0.0841594133973 + 0.0841751518444 + 0.0841908930543 + 0.0842066370276 + 0.0842223837647 + 0.084238133266 + 0.0842538855322 + 0.0842696405637 + 0.0842853983608 + 0.0843011589243 + 0.0843169222545 + 0.0843326883518 + 0.0843484572169 + 0.0843642288502 + 0.0843800032521 + 0.0843957804232 + 0.0844115603639 + 0.0844273430748 + 0.0844431285563 + 0.0844589168089 + 0.0844747078331 + 0.0844905016293 + 0.0845062981981 + 0.08452209754 + 0.0845378996554 + 0.0845537045448 + 0.0845695122087 + 0.0845853226476 + 0.084601135862 + 0.0846169518524 + 0.0846327706192 + 0.084648592163 + 0.0846644164842 + 0.0846802435834 + 0.0846960734609 + 0.0847119061173 + 0.0847277415531 + 0.0847435797688 + 0.0847594207649 + 0.0847752645418 + 0.0847911111 + 0.0848069604401 + 0.0848228125624 + 0.0848386674676 + 0.0848545251561 + 0.0848703856283 + 0.0848862488848 + 0.0849021149261 + 0.0849179837526 + 0.0849338553648 + 0.0849497297633 + 0.0849656069484 + 0.0849814869208 + 0.0849973696809 + 0.0850132552291 + 0.085029143566 + 0.0850450346921 + 0.0850609286078 + 0.0850768253136 + 0.0850927248101 + 0.0851086270977 + 0.0851245321769 + 0.0851404400482 + 0.0851563507121 + 0.0851722641691 + 0.0851881804196 + 0.0852040994642 + 0.0852200213033 + 0.0852359459375 + 0.0852518733672 + 0.085267803593 + 0.0852837366152 + 0.0852996724344 + 0.0853156110512 + 0.0853315524659 + 0.0853474966791 + 0.0853634436913 + 0.0853793935029 + 0.0853953461145 + 0.0854113015265 + 0.0854272597394 + 0.0854432207538 + 0.0854591845701 + 0.0854751511888 + 0.0854911206104 + 0.0855070928354 + 0.0855230678642 + 0.0855390456975 + 0.0855550263356 + 0.0855710097791 + 0.0855869960284 + 0.0856029850841 + 0.0856189769466 + 0.0856349716165 + 0.0856509690942 + 0.0856669693802 + 0.085682972475 + 0.0856989783791 + 0.085714987093 + 0.0857309986172 + 0.0857470129522 + 0.0857630300984 + 0.0857790500564 + 0.0857950728267 + 0.0858110984098 + 0.0858271268061 + 0.0858431580161 + 0.0858591920404 + 0.0858752288794 + 0.0858912685337 + 0.0859073110036 + 0.0859233562898 + 0.0859394043927 + 0.0859554553128 + 0.0859715090506 + 0.0859875656066 + 0.0860036249813 + 0.0860196871751 + 0.0860357521887 + 0.0860518200224 + 0.0860678906768 + 0.0860839641523 + 0.0861000404495 + 0.0861161195689 + 0.0861322015109 + 0.086148286276 + 0.0861643738648 + 0.0861804642777 + 0.0861965575153 + 0.086212653578 + 0.0862287524663 + 0.0862448541807 + 0.0862609587218 + 0.0862770660899 + 0.0862931762857 + 0.0863092893096 + 0.0863254051621 + 0.0863415238436 + 0.0863576453548 + 0.0863737696961 + 0.0863898968679 + 0.0864060268709 + 0.0864221597054 + 0.086438295372 + 0.0864544338711 + 0.0864705752034 + 0.0864867193692 + 0.0865028663691 + 0.0865190162035 + 0.086535168873 + 0.0865513243781 + 0.0865674827192 + 0.0865836438969 + 0.0865998079117 + 0.086615974764 + 0.0866321444543 + 0.0866483169832 + 0.0866644923512 + 0.0866806705586 + 0.0866968516062 + 0.0867130354943 + 0.0867292222234 + 0.086745411794 + 0.0867616042067 + 0.086777799462 + 0.0867939975602 + 0.086810198502 + 0.0868264022879 + 0.0868426089183 + 0.0868588183937 + 0.0868750307146 + 0.0868912458816 + 0.0869074638951 + 0.0869236847556 + 0.0869399084637 + 0.0869561350198 + 0.0869723644245 + 0.0869885966781 + 0.0870048317813 + 0.0870210697346 + 0.0870373105383 + 0.0870535541931 + 0.0870698006994 + 0.0870860500578 + 0.0871023022687 + 0.0871185573326 + 0.0871348152501 + 0.0871510760216 + 0.0871673396477 + 0.0871836061288 + 0.0871998754654 + 0.087216147658 + 0.0872324227073 + 0.0872487006135 + 0.0872649813773 + 0.0872812649992 + 0.0872975514796 + 0.087313840819 + 0.087330133018 + 0.0873464280771 + 0.0873627259967 + 0.0873790267774 + 0.0873953304196 + 0.0874116369239 + 0.0874279462908 + 0.0874442585207 + 0.0874605736142 + 0.0874768915718 + 0.0874932123939 + 0.0875095360812 + 0.087525862634 + 0.0875421920529 + 0.0875585243384 + 0.087574859491 + 0.0875911975112 + 0.0876075383994 + 0.0876238821563 + 0.0876402287823 + 0.0876565782779 + 0.0876729306436 + 0.08768928588 + 0.0877056439874 + 0.0877220049665 + 0.0877383688177 + 0.0877547355415 + 0.0877711051385 + 0.0877874776091 + 0.0878038529539 + 0.0878202311733 + 0.0878366122679 + 0.0878529962381 + 0.0878693830845 + 0.0878857728076 + 0.0879021654078 + 0.0879185608858 + 0.0879349592419 + 0.0879513604767 + 0.0879677645907 + 0.0879841715844 + 0.0880005814583 + 0.0880169942129 + 0.0880334098487 + 0.0880498283663 + 0.0880662497661 + 0.0880826740486 + 0.0880991012144 + 0.0881155312639 + 0.0881319641977 + 0.0881484000162 + 0.08816483872 + 0.0881812803096 + 0.0881977247854 + 0.0882141721481 + 0.088230622398 + 0.0882470755357 + 0.0882635315618 + 0.0882799904766 + 0.0882964522808 + 0.0883129169748 + 0.0883293845592 + 0.0883458550344 + 0.0883623284009 + 0.0883788046593 + 0.08839528381 + 0.0884117658537 + 0.0884282507907 + 0.0884447386216 + 0.0884612293469 + 0.0884777229671 + 0.0884942194828 + 0.0885107188943 + 0.0885272212023 + 0.0885437264072 + 0.0885602345096 + 0.0885767455099 + 0.0885932594087 + 0.0886097762065 + 0.0886262959037 + 0.0886428185009 + 0.0886593439987 + 0.0886758723974 + 0.0886924036977 + 0.0887089379 + 0.0887254750048 + 0.0887420150127 + 0.0887585579241 + 0.0887751037397 + 0.0887916524597 + 0.0888082040849 + 0.0888247586157 + 0.0888413160525 + 0.088857876396 + 0.0888744396467 + 0.0888910058049 + 0.0889075748713 + 0.0889241468464 + 0.0889407217306 + 0.0889572995245 + 0.0889738802286 + 0.0889904638434 + 0.0890070503694 + 0.0890236398072 + 0.0890402321572 + 0.0890568274199 + 0.0890734255959 + 0.0890900266856 + 0.0891066306896 + 0.0891232376084 + 0.0891398474426 + 0.0891564601925 + 0.0891730758588 + 0.0891896944419 + 0.0892063159423 + 0.0892229403606 + 0.0892395676973 + 0.0892561979529 + 0.0892728311279 + 0.0892894672228 + 0.0893061062381 + 0.0893227481744 + 0.0893393930321 + 0.0893560408117 + 0.0893726915139 + 0.089389345139 + 0.0894060016877 + 0.0894226611603 + 0.0894393235575 + 0.0894559888797 + 0.0894726571275 + 0.0894893283014 + 0.0895060024018 + 0.0895226794293 + 0.0895393593845 + 0.0895560422677 + 0.0895727280796 + 0.0895894168207 + 0.0896061084914 + 0.0896228030923 + 0.0896395006239 + 0.0896562010867 + 0.0896729044813 + 0.0896896108081 + 0.0897063200676 + 0.0897230322604 + 0.089739747387 + 0.0897564654479 + 0.0897731864436 + 0.0897899103746 + 0.0898066372415 + 0.0898233670447 + 0.0898400997848 + 0.0898568354623 + 0.0898735740777 + 0.0898903156315 + 0.0899070601243 + 0.0899238075565 + 0.0899405579287 + 0.0899573112414 + 0.0899740674951 + 0.0899908266903 + 0.0900075888275 + 0.0900243539073 + 0.0900411219301 + 0.0900578928966 + 0.0900746668071 + 0.0900914436623 + 0.0901082234625 + 0.0901250062085 + 0.0901417919006 + 0.0901585805394 + 0.0901753721254 + 0.0901921666591 + 0.0902089641411 + 0.0902257645718 + 0.0902425679518 + 0.0902593742816 + 0.0902761835617 + 0.0902929957926 + 0.0903098109749 + 0.090326629109 + 0.0903434501955 + 0.090360274235 + 0.0903771012278 + 0.0903939311746 + 0.0904107640758 + 0.090427599932 + 0.0904444387437 + 0.0904612805114 + 0.0904781252356 + 0.0904949729169 + 0.0905118235558 + 0.0905286771527 + 0.0905455337082 + 0.0905623932229 + 0.0905792556972 + 0.0905961211317 + 0.0906129895269 + 0.0906298608833 + 0.0906467352014 + 0.0906636124817 + 0.0906804927248 + 0.0906973759312 + 0.0907142621014 + 0.0907311512359 + 0.0907480433353 + 0.0907649384001 + 0.0907818364307 + 0.0907987374277 + 0.0908156413917 + 0.0908325483231 + 0.0908494582225 + 0.0908663710903 + 0.0908832869272 + 0.0909002057336 + 0.0909171275101 + 0.0909340522571 + 0.0909509799753 + 0.090967910665 + 0.0909848443269 + 0.0910017809615 + 0.0910187205692 + 0.0910356631507 + 0.0910526087064 + 0.0910695572368 + 0.0910865087425 + 0.091103463224 + 0.0911204206818 + 0.0911373811165 + 0.0911543445285 + 0.0911713109184 + 0.0911882802867 + 0.091205252634 + 0.0912222279607 + 0.0912392062673 + 0.0912561875545 + 0.0912731718227 + 0.0912901590724 + 0.0913071493043 + 0.0913241425187 + 0.0913411387162 + 0.0913581378973 + 0.0913751400627 + 0.0913921452127 + 0.0914091533479 + 0.0914261644689 + 0.0914431785761 + 0.0914601956701 + 0.0914772157514 + 0.0914942388205 + 0.091511264878 + 0.0915282939244 + 0.0915453259602 + 0.091562360986 + 0.0915793990021 + 0.0915964400093 + 0.091613484008 + 0.0916305309987 + 0.0916475809819 + 0.0916646339583 + 0.0916816899282 + 0.0916987488923 + 0.091715810851 + 0.091732875805 + 0.0917499437546 + 0.0917670147005 + 0.0917840886431 + 0.091801165583 + 0.0918182455208 + 0.0918353284568 + 0.0918524143918 + 0.0918695033261 + 0.0918865952604 + 0.0919036901951 + 0.0919207881307 + 0.0919378890679 + 0.0919549930071 + 0.0919720999489 + 0.0919892098937 + 0.0920063228422 + 0.0920234387948 + 0.092040557752 + 0.0920576797144 + 0.0920748046826 + 0.092091932657 + 0.0921090636382 + 0.0921261976266 + 0.092143334623 + 0.0921604746276 + 0.0921776176412 + 0.0921947636641 + 0.092211912697 + 0.0922290647404 + 0.0922462197948 + 0.0922633778607 + 0.0922805389386 + 0.0922977030292 + 0.0923148701328 + 0.0923320402501 + 0.0923492133816 + 0.0923663895277 + 0.0923835686891 + 0.0924007508663 + 0.0924179360597 + 0.09243512427 + 0.0924523154976 + 0.0924695097431 + 0.092486707007 + 0.0925039072898 + 0.0925211105921 + 0.0925383169144 + 0.0925555262573 + 0.0925727386211 + 0.0925899540066 + 0.0926071724142 + 0.0926243938444 + 0.0926416182978 + 0.092658845775 + 0.0926760762763 + 0.0926933098025 + 0.0927105463539 + 0.0927277859312 + 0.0927450285348 + 0.0927622741654 + 0.0927795228233 + 0.0927967745093 + 0.0928140292237 + 0.0928312869671 + 0.0928485477401 + 0.0928658115432 + 0.0928830783769 + 0.0929003482417 + 0.0929176211382 + 0.092934897067 + 0.0929521760285 + 0.0929694580232 + 0.0929867430518 + 0.0930040311147 + 0.0930213222125 + 0.0930386163457 + 0.0930559135149 + 0.0930732137205 + 0.0930905169631 + 0.0931078232433 + 0.0931251325615 + 0.0931424449184 + 0.0931597603144 + 0.0931770787501 + 0.0931944002259 + 0.0932117247426 + 0.0932290523005 + 0.0932463829002 + 0.0932637165422 + 0.0932810532272 + 0.0932983929555 + 0.0933157357278 + 0.0933330815446 + 0.0933504304063 + 0.0933677823137 + 0.0933851372671 + 0.0934024952671 + 0.0934198563143 + 0.0934372204092 + 0.0934545875523 + 0.0934719577442 + 0.0934893309853 + 0.0935067072763 + 0.0935240866177 + 0.0935414690099 + 0.0935588544536 + 0.0935762429492 + 0.0935936344974 + 0.0936110290986 + 0.0936284267534 + 0.0936458274623 + 0.0936632312259 + 0.0936806380446 + 0.0936980479191 + 0.0937154608498 + 0.0937328768373 + 0.0937502958822 + 0.0937677179849 + 0.093785143146 + 0.0938025713661 + 0.0938200026457 + 0.0938374369852 + 0.0938548743854 + 0.0938723148466 + 0.0938897583694 + 0.0939072049545 + 0.0939246546022 + 0.0939421073132 + 0.0939595630879 + 0.093977021927 + 0.0939944838309 + 0.0940119488002 + 0.0940294168355 + 0.0940468879372 + 0.0940643621059 + 0.0940818393422 + 0.0940993196465 + 0.0941168030195 + 0.0941342894617 + 0.0941517789735 + 0.0941692715556 + 0.0941867672084 + 0.0942042659326 + 0.0942217677287 + 0.0942392725971 + 0.0942567805385 + 0.0942742915533 + 0.0942918056422 + 0.0943093228056 + 0.0943268430441 + 0.0943443663583 + 0.0943618927486 + 0.0943794222157 + 0.09439695476 + 0.094414490382 + 0.0944320290825 + 0.0944495708618 + 0.0944671157205 + 0.0944846636591 + 0.0945022146783 + 0.0945197687785 + 0.0945373259603 + 0.0945548862242 + 0.0945724495708 + 0.0945900160005 + 0.0946075855141 + 0.0946251581118 + 0.0946427337945 + 0.0946603125625 + 0.0946778944164 + 0.0946954793567 + 0.094713067384 + 0.0947306584989 + 0.0947482527019 + 0.0947658499934 + 0.0947834503742 + 0.0948010538446 + 0.0948186604053 + 0.0948362700568 + 0.0948538827996 + 0.0948714986342 + 0.0948891175613 + 0.0949067395814 + 0.0949243646949 + 0.0949419929025 + 0.0949596242047 + 0.094977258602 + 0.094994896095 + 0.0950125366842 + 0.0950301803702 + 0.0950478271534 + 0.0950654770346 + 0.0950831300141 + 0.0951007860925 + 0.0951184452705 + 0.0951361075484 + 0.0951537729269 + 0.0951714414066 + 0.0951891129879 + 0.0952067876714 + 0.0952244654576 + 0.0952421463472 + 0.0952598303405 + 0.0952775174383 + 0.095295207641 + 0.0953129009491 + 0.0953305973633 + 0.095348296884 + 0.0953659995119 + 0.0953837052474 + 0.0954014140911 + 0.0954191260435 + 0.0954368411052 + 0.0954545592768 + 0.0954722805587 + 0.0954900049516 + 0.0955077324559 + 0.0955254630723 + 0.0955431968012 + 0.0955609336432 + 0.0955786735989 + 0.0955964166688 + 0.0956141628535 + 0.0956319121534 + 0.0956496645692 + 0.0956674201014 + 0.0956851787505 + 0.0957029405171 + 0.0957207054018 + 0.095738473405 + 0.0957562445274 + 0.0957740187694 + 0.0957917961317 + 0.0958095766147 + 0.0958273602191 + 0.0958451469453 + 0.0958629367939 + 0.0958807297655 + 0.0958985258606 + 0.0959163250798 + 0.0959341274236 + 0.0959519328925 + 0.0959697414872 + 0.0959875532081 + 0.0960053680558 + 0.0960231860308 + 0.0960410071338 + 0.0960588313652 + 0.0960766587256 + 0.0960944892155 + 0.0961123228356 + 0.0961301595863 + 0.0961479994682 + 0.0961658424818 + 0.0961836886278 + 0.0962015379065 + 0.0962193903187 + 0.0962372458649 + 0.0962551045455 + 0.0962729663612 + 0.0962908313124 + 0.0963086993999 + 0.096326570624 + 0.0963444449853 + 0.0963623224845 + 0.096380203122 + 0.0963980868984 + 0.0964159738143 + 0.0964338638702 + 0.0964517570666 + 0.0964696534042 + 0.0964875528834 + 0.0965054555048 + 0.0965233612689 + 0.0965412701764 + 0.0965591822277 + 0.0965770974235 + 0.0965950157642 + 0.0966129372505 + 0.0966308618828 + 0.0966487896617 + 0.0966667205879 + 0.0966846546617 + 0.0967025918838 + 0.0967205322548 + 0.0967384757752 + 0.0967564224455 + 0.0967743722662 + 0.0967923252381 + 0.0968102813615 + 0.0968282406371 + 0.0968462030654 + 0.0968641686469 + 0.0968821373823 + 0.096900109272 + 0.0969180843167 + 0.0969360625168 + 0.096954043873 + 0.0969720283857 + 0.0969900160556 + 0.0970080068832 + 0.097026000869 + 0.0970439980136 + 0.0970619983176 + 0.0970800017814 + 0.0970980084058 + 0.0971160181911 + 0.0971340311381 + 0.0971520472471 + 0.0971700665189 + 0.0971880889538 + 0.0972061145526 + 0.0972241433157 + 0.0972421752438 + 0.0972602103373 + 0.0972782485968 + 0.0972962900228 + 0.097314334616 + 0.0973323823769 + 0.097350433306 + 0.097368487404 + 0.0973865446712 + 0.0974046051084 + 0.0974226687161 + 0.0974407354947 + 0.097458805445 + 0.0974768785674 + 0.0974949548624 + 0.0975130343308 + 0.0975311169729 + 0.0975492027894 + 0.0975672917808 + 0.0975853839477 + 0.0976034792906 + 0.0976215778101 + 0.0976396795068 + 0.0976577843812 + 0.0976758924338 + 0.0976940036653 + 0.0977121180761 + 0.0977302356669 + 0.0977483564382 + 0.0977664803905 + 0.0977846075245 + 0.0978027378406 + 0.0978208713395 + 0.0978390080216 + 0.0978571478876 + 0.0978752909381 + 0.0978934371734 + 0.0979115865943 + 0.0979297392013 + 0.097947894995 + 0.0979660539758 + 0.0979842161444 + 0.0980023815013 + 0.0980205500471 + 0.0980387217824 + 0.0980568967077 + 0.0980750748235 + 0.0980932561304 + 0.098111440629 + 0.0981296283199 + 0.0981478192036 + 0.0981660132806 + 0.0981842105516 + 0.098202411017 + 0.0982206146775 + 0.0982388215336 + 0.0982570315859 + 0.0982752448349 + 0.0982934612812 + 0.0983116809253 + 0.0983299037679 + 0.0983481298094 + 0.0983663590505 + 0.0983845914917 + 0.0984028271335 + 0.0984210659765 + 0.0984393080214 + 0.0984575532686 + 0.0984758017186 + 0.0984940533722 + 0.0985123082298 + 0.098530566292 + 0.0985488275593 + 0.0985670920324 + 0.0985853597117 + 0.0986036305979 + 0.0986219046915 + 0.0986401819931 + 0.0986584625032 + 0.0986767462224 + 0.0986950331513 + 0.0987133232903 + 0.0987316166402 + 0.0987499132015 + 0.0987682129746 + 0.0987865159602 + 0.0988048221589 + 0.0988231315712 + 0.0988414441976 + 0.0988597600388 + 0.0988780790953 + 0.0988964013676 + 0.0989147268564 + 0.0989330555622 + 0.0989513874855 + 0.098969722627 + 0.0989880609871 + 0.0990064025665 + 0.0990247473658 + 0.0990430953854 + 0.0990614466259 + 0.099079801088 + 0.0990981587721 + 0.0991165196789 + 0.0991348838089 + 0.0991532511627 + 0.0991716217408 + 0.0991899955439 + 0.0992083725724 + 0.0992267528269 + 0.0992451363081 + 0.0992635230164 + 0.0992819129525 + 0.0993003061169 + 0.0993187025101 + 0.0993371021328 + 0.0993555049856 + 0.0993739110688 + 0.0993923203833 + 0.0994107329294 + 0.0994291487078 + 0.0994475677191 + 0.0994659899637 + 0.0994844154424 + 0.0995028441556 + 0.0995212761039 + 0.0995397112879 + 0.0995581497081 + 0.0995765913652 + 0.0995950362596 + 0.099613484392 + 0.099631935763 + 0.099650390373 + 0.0996688482227 + 0.0996873093126 + 0.0997057736433 + 0.0997242412154 + 0.0997427120294 + 0.0997611860859 + 0.0997796633855 + 0.0997981439287 + 0.0998166277162 + 0.0998351147484 + 0.099853605026 + 0.0998720985495 + 0.0998905953195 + 0.0999090953366 + 0.0999275986013 + 0.0999461051142 + 0.0999646148758 + 0.0999831278868 + 0.100001644148 + 0.100020163659 + 0.100038686422 + 0.100057212436 + 0.100075741702 + 0.100094274221 + 0.100112809993 + 0.10013134902 + 0.100149891301 + 0.100168436836 + 0.100186985628 + 0.100205537675 + 0.10022409298 + 0.100242651542 + 0.100261213361 + 0.100279778439 + 0.100298346777 + 0.100316918373 + 0.10033549323 + 0.100354071348 + 0.100372652727 + 0.100391237368 + 0.100409825272 + 0.100428416439 + 0.100447010869 + 0.100465608563 + 0.100484209522 + 0.100502813747 + 0.100521421237 + 0.100540031994 + 0.100558646019 + 0.10057726331 + 0.10059588387 + 0.100614507699 + 0.100633134797 + 0.100651765165 + 0.100670398804 + 0.100689035713 + 0.100707675894 + 0.100726319348 + 0.100744966074 + 0.100763616074 + 0.100782269348 + 0.100800925896 + 0.100819585719 + 0.100838248818 + 0.100856915194 + 0.100875584846 + 0.100894257775 + 0.100912933983 + 0.100931613469 + 0.100950296234 + 0.100968982279 + 0.100987671604 + 0.10100636421 + 0.101025060098 + 0.101043759267 + 0.10106246172 + 0.101081167455 + 0.101099876474 + 0.101118588777 + 0.101137304366 + 0.101156023239 + 0.101174745399 + 0.101193470846 + 0.101212199579 + 0.101230931601 + 0.10124966691 + 0.101268405509 + 0.101287147397 + 0.101305892576 + 0.101324641045 + 0.101343392805 + 0.101362147857 + 0.101380906201 + 0.101399667839 + 0.10141843277 + 0.101437200995 + 0.101455972515 + 0.10147474733 + 0.101493525441 + 0.101512306848 + 0.101531091553 + 0.101549879555 + 0.101568670855 + 0.101587465454 + 0.101606263353 + 0.101625064551 + 0.10164386905 + 0.10166267685 + 0.101681487951 + 0.101700302355 + 0.101719120062 + 0.101737941072 + 0.101756765386 + 0.101775593005 + 0.101794423928 + 0.101813258158 + 0.101832095694 + 0.101850936536 + 0.101869780686 + 0.101888628144 + 0.101907478911 + 0.101926332987 + 0.101945190373 + 0.101964051069 + 0.101982915076 + 0.102001782395 + 0.102020653025 + 0.102039526969 + 0.102058404226 + 0.102077284796 + 0.102096168681 + 0.102115055881 + 0.102133946397 + 0.102152840228 + 0.102171737377 + 0.102190637843 + 0.102209541627 + 0.102228448729 + 0.102247359151 + 0.102266272892 + 0.102285189953 + 0.102304110335 + 0.102323034039 + 0.102341961064 + 0.102360891413 + 0.102379825084 + 0.102398762079 + 0.102417702399 + 0.102436646043 + 0.102455593013 + 0.102474543309 + 0.102493496932 + 0.102512453882 + 0.10253141416 + 0.102550377766 + 0.102569344701 + 0.102588314966 + 0.102607288561 + 0.102626265487 + 0.102645245744 + 0.102664229333 + 0.102683216255 + 0.10270220651 + 0.102721200098 + 0.102740197021 + 0.102759197279 + 0.102778200872 + 0.102797207801 + 0.102816218066 + 0.102835231669 + 0.10285424861 + 0.102873268889 + 0.102892292507 + 0.102911319464 + 0.102930349762 + 0.102949383401 + 0.10296842038 + 0.102987460702 + 0.103006504366 + 0.103025551373 + 0.103044601724 + 0.103063655419 + 0.103082712459 + 0.103101772844 + 0.103120836576 + 0.103139903653 + 0.103158974079 + 0.103178047851 + 0.103197124973 + 0.103216205443 + 0.103235289262 + 0.103254376432 + 0.103273466953 + 0.103292560825 + 0.103311658048 + 0.103330758624 + 0.103349862554 + 0.103368969836 + 0.103388080473 + 0.103407194465 + 0.103426311813 + 0.103445432516 + 0.103464556576 + 0.103483683993 + 0.103502814768 + 0.103521948901 + 0.103541086393 + 0.103560227245 + 0.103579371457 + 0.103598519029 + 0.103617669963 + 0.103636824259 + 0.103655981917 + 0.103675142939 + 0.103694307324 + 0.103713475073 + 0.103732646187 + 0.103751820667 + 0.103770998512 + 0.103790179724 + 0.103809364304 + 0.103828552251 + 0.103847743567 + 0.103866938251 + 0.103886136306 + 0.10390533773 + 0.103924542525 + 0.103943750692 + 0.10396296223 + 0.103982177141 + 0.104001395425 + 0.104020617083 + 0.104039842115 + 0.104059070522 + 0.104078302305 + 0.104097537463 + 0.104116775999 + 0.104136017911 + 0.104155263202 + 0.104174511871 + 0.104193763919 + 0.104213019346 + 0.104232278154 + 0.104251540343 + 0.104270805913 + 0.104290074865 + 0.1043093472 + 0.104328622918 + 0.10434790202 + 0.104367184506 + 0.104386470377 + 0.104405759634 + 0.104425052277 + 0.104444348307 + 0.104463647724 + 0.104482950529 + 0.104502256722 + 0.104521566305 + 0.104540879278 + 0.104560195641 + 0.104579515395 + 0.10459883854 + 0.104618165077 + 0.104637495008 + 0.104656828331 + 0.104676165049 + 0.104695505161 + 0.104714848668 + 0.10473419557 + 0.104753545869 + 0.104772899565 + 0.104792256659 + 0.10481161715 + 0.104830981041 + 0.10485034833 + 0.10486971902 + 0.104889093109 + 0.1049084706 + 0.104927851493 + 0.104947235788 + 0.104966623486 + 0.104986014587 + 0.105005409092 + 0.105024807002 + 0.105044208317 + 0.105063613038 + 0.105083021166 + 0.1051024327 + 0.105121847643 + 0.105141265993 + 0.105160687752 + 0.105180112921 + 0.1051995415 + 0.105218973489 + 0.10523840889 + 0.105257847702 + 0.105277289927 + 0.105296735565 + 0.105316184617 + 0.105335637083 + 0.105355092963 + 0.105374552259 + 0.105394014971 + 0.1054134811 + 0.105432950646 + 0.10545242361 + 0.105471899992 + 0.105491379793 + 0.105510863014 + 0.105530349655 + 0.105549839717 + 0.105569333201 + 0.105588830106 + 0.105608330434 + 0.105627834185 + 0.105647341361 + 0.10566685196 + 0.105686365985 + 0.105705883435 + 0.105725404311 + 0.105744928615 + 0.105764456345 + 0.105783987504 + 0.105803522092 + 0.105823060108 + 0.105842601555 + 0.105862146432 + 0.10588169474 + 0.10590124648 + 0.105920801652 + 0.105940360256 + 0.105959922295 + 0.105979487767 + 0.105999056674 + 0.106018629016 + 0.106038204795 + 0.106057784009 + 0.106077366661 + 0.10609695275 + 0.106116542278 + 0.106136135245 + 0.106155731651 + 0.106175331497 + 0.106194934784 + 0.106214541512 + 0.106234151682 + 0.106253765295 + 0.106273382351 + 0.10629300285 + 0.106312626794 + 0.106332254183 + 0.106351885017 + 0.106371519298 + 0.106391157025 + 0.106410798199 + 0.106430442822 + 0.106450090893 + 0.106469742413 + 0.106489397383 + 0.106509055804 + 0.106528717675 + 0.106548382998 + 0.106568051773 + 0.106587724001 + 0.106607399683 + 0.106627078818 + 0.106646761408 + 0.106666447453 + 0.106686136954 + 0.106705829912 + 0.106725526327 + 0.106745226199 + 0.106764929529 + 0.106784636319 + 0.106804346568 + 0.106824060277 + 0.106843777446 + 0.106863498077 + 0.10688322217 + 0.106902949725 + 0.106922680744 + 0.106942415226 + 0.106962153173 + 0.106981894584 + 0.107001639461 + 0.107021387804 + 0.107041139614 + 0.107060894892 + 0.107080653637 + 0.107100415851 + 0.107120181534 + 0.107139950687 + 0.107159723311 + 0.107179499405 + 0.107199278971 + 0.10721906201 + 0.107238848521 + 0.107258638505 + 0.107278431964 + 0.107298228898 + 0.107318029306 + 0.107337833191 + 0.107357640552 + 0.107377451391 + 0.107397265707 + 0.107417083501 + 0.107436904775 + 0.107456729528 + 0.107476557761 + 0.107496389475 + 0.10751622467 + 0.107536063347 + 0.107555905507 + 0.107575751151 + 0.107595600278 + 0.107615452889 + 0.107635308986 + 0.107655168568 + 0.107675031637 + 0.107694898193 + 0.107714768236 + 0.107734641767 + 0.107754518787 + 0.107774399296 + 0.107794283295 + 0.107814170785 + 0.107834061766 + 0.107853956239 + 0.107873854205 + 0.107893755663 + 0.107913660615 + 0.107933569061 + 0.107953481002 + 0.107973396439 + 0.107993315372 + 0.108013237801 + 0.108033163728 + 0.108053093153 + 0.108073026076 + 0.108092962499 + 0.108112902421 + 0.108132845844 + 0.108152792767 + 0.108172743193 + 0.10819269712 + 0.108212654551 + 0.108232615485 + 0.108252579923 + 0.108272547865 + 0.108292519313 + 0.108312494267 + 0.108332472728 + 0.108352454696 + 0.108372440171 + 0.108392429155 + 0.108412421648 + 0.108432417651 + 0.108452417163 + 0.108472420187 + 0.108492426722 + 0.108512436769 + 0.108532450329 + 0.108552467403 + 0.10857248799 + 0.108592512092 + 0.108612539709 + 0.108632570841 + 0.108652605491 + 0.108672643657 + 0.108692685341 + 0.108712730543 + 0.108732779264 + 0.108752831504 + 0.108772887265 + 0.108792946546 + 0.108813009349 + 0.108833075674 + 0.108853145521 + 0.108873218892 + 0.108893295786 + 0.108913376205 + 0.108933460149 + 0.108953547618 + 0.108973638614 + 0.108993733137 + 0.109013831187 + 0.109033932766 + 0.109054037873 + 0.10907414651 + 0.109094258676 + 0.109114374374 + 0.109134493602 + 0.109154616363 + 0.109174742656 + 0.109194872482 + 0.109215005842 + 0.109235142736 + 0.109255283165 + 0.10927542713 + 0.109295574631 + 0.109315725669 + 0.109335880244 + 0.109356038357 + 0.10937620001 + 0.109396365201 + 0.109416533932 + 0.109436706204 + 0.109456882018 + 0.109477061373 + 0.10949724427 + 0.10951743071 + 0.109537620695 + 0.109557814223 + 0.109578011296 + 0.109598211915 + 0.10961841608 + 0.109638623792 + 0.109658835051 + 0.109679049859 + 0.109699268215 + 0.10971949012 + 0.109739715575 + 0.109759944581 + 0.109780177138 + 0.109800413246 + 0.109820652907 + 0.109840896121 + 0.109861142889 + 0.109881393211 + 0.109901647088 + 0.10992190452 + 0.109942165509 + 0.109962430054 + 0.109982698157 + 0.110002969818 + 0.110023245037 + 0.110043523815 + 0.110063806154 + 0.110084092053 + 0.110104381513 + 0.110124674535 + 0.110144971119 + 0.110165271267 + 0.110185574977 + 0.110205882253 + 0.110226193093 + 0.110246507498 + 0.11026682547 + 0.110287147009 + 0.110307472115 + 0.110327800789 + 0.110348133031 + 0.110368468843 + 0.110388808225 + 0.110409151177 + 0.110429497701 + 0.110449847796 + 0.110470201463 + 0.110490558704 + 0.110510919519 + 0.110531283907 + 0.110551651871 + 0.11057202341 + 0.110592398525 + 0.110612777217 + 0.110633159487 + 0.110653545334 + 0.11067393476 + 0.110694327766 + 0.110714724352 + 0.110735124518 + 0.110755528265 + 0.110775935594 + 0.110796346506 + 0.110816761 + 0.110837179079 + 0.110857600741 + 0.110878025989 + 0.110898454822 + 0.110918887242 + 0.110939323248 + 0.110959762842 + 0.110980206024 + 0.111000652795 + 0.111021103155 + 0.111041557105 + 0.111062014645 + 0.111082475778 + 0.111102940501 + 0.111123408818 + 0.111143880728 + 0.111164356231 + 0.111184835329 + 0.111205318022 + 0.11122580431 + 0.111246294195 + 0.111266787677 + 0.111287284756 + 0.111307785434 + 0.11132828971 + 0.111348797586 + 0.111369309062 + 0.111389824139 + 0.111410342817 + 0.111430865098 + 0.11145139098 + 0.111471920466 + 0.111492453556 + 0.111512990251 + 0.111533530551 + 0.111554074456 + 0.111574621968 + 0.111595173087 + 0.111615727814 + 0.111636286149 + 0.111656848093 + 0.111677413646 + 0.11169798281 + 0.111718555585 + 0.111739131971 + 0.111759711969 + 0.11178029558 + 0.111800882805 + 0.111821473643 + 0.111842068096 + 0.111862666165 + 0.111883267849 + 0.11190387315 + 0.111924482068 + 0.111945094604 + 0.111965710759 + 0.111986330532 + 0.112006953926 + 0.11202758094 + 0.112048211574 + 0.112068845831 + 0.11208948371 + 0.112110125211 + 0.112130770336 + 0.112151419086 + 0.11217207146 + 0.11219272746 + 0.112213387086 + 0.112234050338 + 0.112254717218 + 0.112275387726 + 0.112296061863 + 0.112316739629 + 0.112337421025 + 0.112358106051 + 0.112378794709 + 0.112399486998 + 0.11242018292 + 0.112440882475 + 0.112461585664 + 0.112482292488 + 0.112503002946 + 0.11252371704 + 0.11254443477 + 0.112565156137 + 0.112585881142 + 0.112606609785 + 0.112627342067 + 0.112648077988 + 0.11266881755 + 0.112689560752 + 0.112710307596 + 0.112731058081 + 0.11275181221 + 0.112772569982 + 0.112793331397 + 0.112814096458 + 0.112834865164 + 0.112855637515 + 0.112876413513 + 0.112897193158 + 0.112917976451 + 0.112938763393 + 0.112959553984 + 0.112980348224 + 0.113001146115 + 0.113021947656 + 0.11304275285 + 0.113063561695 + 0.113084374194 + 0.113105190346 + 0.113126010153 + 0.113146833614 + 0.113167660731 + 0.113188491504 + 0.113209325934 + 0.113230164021 + 0.113251005766 + 0.11327185117 + 0.113292700233 + 0.113313552957 + 0.113334409341 + 0.113355269386 + 0.113376133093 + 0.113397000463 + 0.113417871496 + 0.113438746193 + 0.113459624554 + 0.113480506581 + 0.113501392273 + 0.113522281632 + 0.113543174657 + 0.113564071351 + 0.113584971713 + 0.113605875744 + 0.113626783444 + 0.113647694815 + 0.113668609857 + 0.11368952857 + 0.113710450956 + 0.113731377014 + 0.113752306746 + 0.113773240152 + 0.113794177233 + 0.11381511799 + 0.113836062422 + 0.113857010531 + 0.113877962318 + 0.113898917783 + 0.113919876926 + 0.113940839749 + 0.113961806251 + 0.113982776434 + 0.114003750299 + 0.114024727845 + 0.114045709074 + 0.114066693987 + 0.114087682583 + 0.114108674863 + 0.114129670829 + 0.11415067048 + 0.114171673818 + 0.114192680843 + 0.114213691556 + 0.114234705957 + 0.114255724047 + 0.114276745827 + 0.114297771297 + 0.114318800458 + 0.114339833311 + 0.114360869856 + 0.114381910093 + 0.114402954025 + 0.114424001651 + 0.114445052971 + 0.114466107987 + 0.114487166699 + 0.114508229108 + 0.114529295215 + 0.114550365019 + 0.114571438522 + 0.114592515725 + 0.114613596628 + 0.114634681231 + 0.114655769536 + 0.114676861543 + 0.114697957252 + 0.114719056665 + 0.114740159782 + 0.114761266603 + 0.114782377129 + 0.114803491362 + 0.114824609301 + 0.114845730947 + 0.114866856301 + 0.114887985364 + 0.114909118135 + 0.114930254617 + 0.114951394809 + 0.114972538712 + 0.114993686327 + 0.115014837654 + 0.115035992694 + 0.115057151448 + 0.115078313917 + 0.1150994801 + 0.115120649999 + 0.115141823614 + 0.115163000947 + 0.115184181997 + 0.115205366765 + 0.115226555252 + 0.115247747459 + 0.115268943386 + 0.115290143034 + 0.115311346403 + 0.115332553495 + 0.11535376431 + 0.115374978848 + 0.11539619711 + 0.115417419097 + 0.115438644809 + 0.115459874248 + 0.115481107413 + 0.115502344306 + 0.115523584927 + 0.115544829277 + 0.115566077356 + 0.115587329165 + 0.115608584704 + 0.115629843976 + 0.115651106979 + 0.115672373714 + 0.115693644184 + 0.115714918387 + 0.115736196324 + 0.115757477997 + 0.115778763406 + 0.115800052552 + 0.115821345435 + 0.115842642056 + 0.115863942415 + 0.115885246513 + 0.115906554352 + 0.115927865931 + 0.115949181251 + 0.115970500313 + 0.115991823117 + 0.116013149665 + 0.116034479957 + 0.116055813993 + 0.116077151774 + 0.116098493301 + 0.116119838574 + 0.116141187594 + 0.116162540363 + 0.116183896879 + 0.116205257145 + 0.116226621161 + 0.116247988926 + 0.116269360443 + 0.116290735712 + 0.116312114733 + 0.116333497507 + 0.116354884035 + 0.116376274317 + 0.116397668354 + 0.116419066147 + 0.116440467696 + 0.116461873002 + 0.116483282066 + 0.116504694888 + 0.116526111469 + 0.11654753181 + 0.116568955911 + 0.116590383773 + 0.116611815396 + 0.116633250782 + 0.116654689931 + 0.116676132843 + 0.116697579519 + 0.116719029961 + 0.116740484168 + 0.116761942141 + 0.116783403881 + 0.116804869389 + 0.116826338665 + 0.11684781171 + 0.116869288524 + 0.116890769109 + 0.116912253464 + 0.116933741591 + 0.11695523349 + 0.116976729162 + 0.116998228608 + 0.117019731827 + 0.117041238822 + 0.117062749592 + 0.117084264138 + 0.117105782461 + 0.117127304561 + 0.11714883044 + 0.117170360097 + 0.117191893534 + 0.117213430751 + 0.117234971749 + 0.117256516529 + 0.11727806509 + 0.117299617434 + 0.117321173562 + 0.117342733474 + 0.11736429717 + 0.117385864653 + 0.117407435921 + 0.117429010976 + 0.117450589818 + 0.117472172449 + 0.117493758868 + 0.117515349077 + 0.117536943076 + 0.117558540865 + 0.117580142446 + 0.11760174782 + 0.117623356986 + 0.117644969945 + 0.117666586699 + 0.117688207247 + 0.11770983159 + 0.11773145973 + 0.117753091667 + 0.117774727401 + 0.117796366933 + 0.117818010264 + 0.117839657394 + 0.117861308324 + 0.117882963056 + 0.117904621588 + 0.117926283923 + 0.11794795006 + 0.117969620001 + 0.117991293746 + 0.118012971296 + 0.118034652651 + 0.118056337813 + 0.118078026781 + 0.118099719556 + 0.11812141614 + 0.118143116532 + 0.118164820734 + 0.118186528746 + 0.118208240569 + 0.118229956203 + 0.11825167565 + 0.118273398909 + 0.118295125982 + 0.118316856868 + 0.11833859157 + 0.118360330087 + 0.11838207242 + 0.11840381857 + 0.118425568538 + 0.118447322323 + 0.118469079928 + 0.118490841352 + 0.118512606596 + 0.118534375661 + 0.118556148547 + 0.118577925256 + 0.118599705787 + 0.118621490142 + 0.118643278322 + 0.118665070326 + 0.118686866155 + 0.118708665811 + 0.118730469294 + 0.118752276604 + 0.118774087742 + 0.11879590271 + 0.118817721507 + 0.118839544134 + 0.118861370592 + 0.118883200881 + 0.118905035003 + 0.118926872958 + 0.118948714746 + 0.118970560369 + 0.118992409827 + 0.11901426312 + 0.119036120249 + 0.119057981216 + 0.11907984602 + 0.119101714663 + 0.119123587144 + 0.119145463465 + 0.119167343626 + 0.119189227629 + 0.119211115473 + 0.119233007159 + 0.119254902689 + 0.119276802062 + 0.11929870528 + 0.119320612342 + 0.119342523251 + 0.119364438005 + 0.119386356607 + 0.119408279057 + 0.119430205355 + 0.119452135502 + 0.119474069499 + 0.119496007346 + 0.119517949045 + 0.119539894595 + 0.119561843998 + 0.119583797254 + 0.119605754364 + 0.119627715328 + 0.119649680148 + 0.119671648823 + 0.119693621355 + 0.119715597744 + 0.119737577991 + 0.119759562097 + 0.119781550062 + 0.119803541887 + 0.119825537572 + 0.119847537119 + 0.119869540528 + 0.119891547799 + 0.119913558934 + 0.119935573932 + 0.119957592796 + 0.119979615524 + 0.120001642119 + 0.120023672581 + 0.120045706909 + 0.120067745106 + 0.120089787172 + 0.120111833107 + 0.120133882912 + 0.120155936588 + 0.120177994136 + 0.120200055555 + 0.120222120848 + 0.120244190014 + 0.120266263054 + 0.120288339969 + 0.120310420759 + 0.120332505426 + 0.12035459397 + 0.120376686391 + 0.120398782691 + 0.120420882869 + 0.120442986927 + 0.120465094866 + 0.120487206685 + 0.120509322386 + 0.12053144197 + 0.120553565436 + 0.120575692787 + 0.120597824021 + 0.120619959141 + 0.120642098146 + 0.120664241038 + 0.120686387817 + 0.120708538484 + 0.12073069304 + 0.120752851484 + 0.120775013818 + 0.120797180043 + 0.12081935016 + 0.120841524168 + 0.120863702068 + 0.120885883862 + 0.12090806955 + 0.120930259133 + 0.120952452611 + 0.120974649984 + 0.120996851255 + 0.121019056423 + 0.121041265489 + 0.121063478454 + 0.121085695318 + 0.121107916082 + 0.121130140747 + 0.121152369314 + 0.121174601783 + 0.121196838154 + 0.121219078429 + 0.121241322609 + 0.121263570693 + 0.121285822683 + 0.121308078579 + 0.121330338382 + 0.121352602093 + 0.121374869712 + 0.12139714124 + 0.121419416678 + 0.121441696026 + 0.121463979286 + 0.121486266457 + 0.12150855754 + 0.121530852537 + 0.121553151448 + 0.121575454273 + 0.121597761013 + 0.121620071669 + 0.121642386242 + 0.121664704732 + 0.12168702714 + 0.121709353467 + 0.121731683713 + 0.121754017878 + 0.121776355965 + 0.121798697973 + 0.121821043903 + 0.121843393756 + 0.121865747533 + 0.121888105233 + 0.121910466859 + 0.12193283241 + 0.121955201887 + 0.121977575291 + 0.121999952622 + 0.122022333882 + 0.122044719071 + 0.12206710819 + 0.122089501238 + 0.122111898218 + 0.12213429913 + 0.122156703974 + 0.122179112751 + 0.122201525462 + 0.122223942108 + 0.122246362689 + 0.122268787205 + 0.122291215658 + 0.122313648049 + 0.122336084377 + 0.122358524644 + 0.122380968851 + 0.122403416997 + 0.122425869084 + 0.122448325112 + 0.122470785083 + 0.122493248996 + 0.122515716853 + 0.122538188654 + 0.1225606644 + 0.122583144092 + 0.122605627729 + 0.122628115314 + 0.122650606846 + 0.122673102327 + 0.122695601757 + 0.122718105136 + 0.122740612466 + 0.122763123747 + 0.122785638979 + 0.122808158165 + 0.122830681303 + 0.122853208395 + 0.122875739442 + 0.122898274444 + 0.122920813402 + 0.122943356317 + 0.122965903189 + 0.122988454019 + 0.123011008808 + 0.123033567556 + 0.123056130265 + 0.123078696934 + 0.123101267565 + 0.123123842158 + 0.123146420714 + 0.123169003233 + 0.123191589717 + 0.123214180166 + 0.123236774581 + 0.123259372962 + 0.12328197531 + 0.123304581625 + 0.12332719191 + 0.123349806163 + 0.123372424387 + 0.12339504658 + 0.123417672746 + 0.123440302883 + 0.123462936993 + 0.123485575076 + 0.123508217133 + 0.123530863165 + 0.123553513173 + 0.123576167156 + 0.123598825117 + 0.123621487055 + 0.123644152971 + 0.123666822866 + 0.123689496741 + 0.123712174596 + 0.123734856432 + 0.12375754225 + 0.123780232051 + 0.123802925834 + 0.123825623602 + 0.123848325354 + 0.123871031091 + 0.123893740814 + 0.123916454524 + 0.123939172221 + 0.123961893906 + 0.123984619579 + 0.124007349243 + 0.124030082896 + 0.12405282054 + 0.124075562176 + 0.124098307804 + 0.124121057425 + 0.12414381104 + 0.124166568649 + 0.124189330253 + 0.124212095852 + 0.124234865449 + 0.124257639042 + 0.124280416633 + 0.124303198223 + 0.124325983812 + 0.124348773401 + 0.12437156699 + 0.124394364581 + 0.124417166174 + 0.12443997177 + 0.124462781369 + 0.124485594972 + 0.124508412581 + 0.124531234195 + 0.124554059815 + 0.124576889442 + 0.124599723076 + 0.12462256072 + 0.124645402372 + 0.124668248034 + 0.124691097706 + 0.12471395139 + 0.124736809086 + 0.124759670794 + 0.124782536516 + 0.124805406251 + 0.124828280002 + 0.124851157767 + 0.124874039549 + 0.124896925348 + 0.124919815164 + 0.124942708999 + 0.124965606852 + 0.124988508726 + 0.125011414619 + 0.125034324534 + 0.12505723847 + 0.125080156429 + 0.125103078411 + 0.125126004417 + 0.125148934447 + 0.125171868503 + 0.125194806585 + 0.125217748694 + 0.12524069483 + 0.125263644994 + 0.125286599187 + 0.125309557409 + 0.125332519662 + 0.125355485946 + 0.125378456262 + 0.125401430609 + 0.12542440899 + 0.125447391405 + 0.125470377854 + 0.125493368339 + 0.125516362859 + 0.125539361416 + 0.12556236401 + 0.125585370643 + 0.125608381314 + 0.125631396025 + 0.125654414775 + 0.125677437567 + 0.1257004644 + 0.125723495276 + 0.125746530194 + 0.125769569157 + 0.125792612164 + 0.125815659215 + 0.125838710313 + 0.125861765457 + 0.125884824649 + 0.125907887889 + 0.125930955177 + 0.125954026514 + 0.125977101902 + 0.126000181341 + 0.126023264831 + 0.126046352373 + 0.126069443969 + 0.126092539618 + 0.126115639321 + 0.12613874308 + 0.126161850894 + 0.126184962765 + 0.126208078693 + 0.126231198679 + 0.126254322723 + 0.126277450828 + 0.126300582992 + 0.126323719217 + 0.126346859503 + 0.126370003852 + 0.126393152263 + 0.126416304738 + 0.126439461278 + 0.126462621883 + 0.126485786553 + 0.12650895529 + 0.126532128094 + 0.126555304966 + 0.126578485907 + 0.126601670917 + 0.126624859997 + 0.126648053148 + 0.12667125037 + 0.126694451665 + 0.126717657033 + 0.126740866474 + 0.126764079989 + 0.12678729758 + 0.126810519246 + 0.126833744989 + 0.12685697481 + 0.126880208708 + 0.126903446684 + 0.126926688741 + 0.126949934877 + 0.126973185094 + 0.126996439392 + 0.127019697773 + 0.127042960237 + 0.127066226784 + 0.127089497416 + 0.127112772133 + 0.127136050936 + 0.127159333825 + 0.127182620801 + 0.127205911866 + 0.127229207019 + 0.127252506261 + 0.127275809594 + 0.127299117018 + 0.127322428533 + 0.12734574414 + 0.12736906384 + 0.127392387634 + 0.127415715523 + 0.127439047507 + 0.127462383586 + 0.127485723762 + 0.127509068036 + 0.127532416407 + 0.127555768877 + 0.127579125447 + 0.127602486117 + 0.127625850888 + 0.12764921976 + 0.127672592735 + 0.127695969812 + 0.127719350994 + 0.12774273628 + 0.127766125672 + 0.127789519169 + 0.127812916773 + 0.127836318484 + 0.127859724304 + 0.127883134232 + 0.12790654827 + 0.127929966418 + 0.127953388677 + 0.127976815048 + 0.128000245531 + 0.128023680128 + 0.128047118838 + 0.128070561663 + 0.128094008603 + 0.128117459659 + 0.128140914832 + 0.128164374123 + 0.128187837532 + 0.12821130506 + 0.128234776707 + 0.128258252475 + 0.128281732364 + 0.128305216375 + 0.128328704508 + 0.128352196764 + 0.128375693145 + 0.12839919365 + 0.128422698281 + 0.128446207038 + 0.128469719922 + 0.128493236934 + 0.128516758073 + 0.128540283342 + 0.128563812741 + 0.12858734627 + 0.128610883931 + 0.128634425723 + 0.128657971649 + 0.128681521707 + 0.1287050759 + 0.128728634228 + 0.128752196691 + 0.128775763291 + 0.128799334027 + 0.128822908902 + 0.128846487915 + 0.128870071067 + 0.128893658359 + 0.128917249792 + 0.128940845366 + 0.128964445083 + 0.128988048942 + 0.129011656945 + 0.129035269092 + 0.129058885384 + 0.129082505822 + 0.129106130407 + 0.129129759139 + 0.129153392018 + 0.129177029047 + 0.129200670225 + 0.129224315553 + 0.129247965032 + 0.129271618662 + 0.129295276445 + 0.129318938381 + 0.129342604471 + 0.129366274715 + 0.129389949114 + 0.12941362767 + 0.129437310382 + 0.129460997252 + 0.129484688279 + 0.129508383466 + 0.129532082812 + 0.129555786319 + 0.129579493987 + 0.129603205816 + 0.129626921809 + 0.129650641964 + 0.129674366283 + 0.129698094768 + 0.129721827417 + 0.129745564233 + 0.129769305216 + 0.129793050366 + 0.129816799685 + 0.129840553173 + 0.129864310831 + 0.12988807266 + 0.12991183866 + 0.129935608831 + 0.129959383176 + 0.129983161694 + 0.130006944387 + 0.130030731254 + 0.130054522297 + 0.130078317517 + 0.130102116914 + 0.130125920489 + 0.130149728242 + 0.130173540175 + 0.130197356288 + 0.130221176582 + 0.130245001057 + 0.130268829715 + 0.130292662555 + 0.13031649958 + 0.130340340789 + 0.130364186183 + 0.130388035764 + 0.130411889531 + 0.130435747485 + 0.130459609628 + 0.13048347596 + 0.130507346481 + 0.130531221193 + 0.130555100096 + 0.130578983191 + 0.130602870478 + 0.130626761959 + 0.130650657634 + 0.130674557504 + 0.130698461569 + 0.130722369831 + 0.130746282289 + 0.130770198946 + 0.130794119801 + 0.130818044855 + 0.130841974109 + 0.130865907564 + 0.13088984522 + 0.130913787078 + 0.13093773314 + 0.130961683405 + 0.130985637874 + 0.131009596549 + 0.13103355943 + 0.131057526517 + 0.131081497811 + 0.131105473314 + 0.131129453026 + 0.131153436947 + 0.131177425078 + 0.13120141742 + 0.131225413975 + 0.131249414741 + 0.131273419721 + 0.131297428916 + 0.131321442324 + 0.131345459949 + 0.131369481789 + 0.131393507847 + 0.131417538122 + 0.131441572616 + 0.131465611328 + 0.131489654261 + 0.131513701415 + 0.13153775279 + 0.131561808387 + 0.131585868207 + 0.13160993225 + 0.131634000518 + 0.131658073011 + 0.13168214973 + 0.131706230676 + 0.131730315849 + 0.13175440525 + 0.13177849888 + 0.131802596739 + 0.131826698829 + 0.13185080515 + 0.131874915703 + 0.131899030488 + 0.131923149506 + 0.131947272759 + 0.131971400246 + 0.131995531969 + 0.132019667928 + 0.132043808124 + 0.132067952558 + 0.13209210123 + 0.132116254142 + 0.132140411293 + 0.132164572686 + 0.132188738319 + 0.132212908195 + 0.132237082314 + 0.132261260677 + 0.132285443284 + 0.132309630136 + 0.132333821234 + 0.132358016579 + 0.132382216172 + 0.132406420012 + 0.132430628102 + 0.132454840441 + 0.13247905703 + 0.132503277871 + 0.132527502964 + 0.132551732309 + 0.132575965908 + 0.13260020376 + 0.132624445868 + 0.132648692231 + 0.132672942851 + 0.132697197728 + 0.132721456863 + 0.132745720256 + 0.132769987909 + 0.132794259822 + 0.132818535996 + 0.132842816431 + 0.132867101129 + 0.13289139009 + 0.132915683314 + 0.132939980804 + 0.132964282558 + 0.132988588579 + 0.133012898867 + 0.133037213422 + 0.133061532246 + 0.133085855339 + 0.133110182701 + 0.133134514335 + 0.133158850239 + 0.133183190416 + 0.133207534865 + 0.133231883589 + 0.133256236586 + 0.133280593859 + 0.133304955407 + 0.133329321232 + 0.133353691335 + 0.133378065715 + 0.133402444375 + 0.133426827314 + 0.133451214533 + 0.133475606034 + 0.133500001816 + 0.133524401881 + 0.13354880623 + 0.133573214862 + 0.13359762778 + 0.133622044983 + 0.133646466472 + 0.133670892249 + 0.133695322313 + 0.133719756666 + 0.133744195308 + 0.133768638241 + 0.133793085464 + 0.13381753698 + 0.133841992787 + 0.133866452888 + 0.133890917282 + 0.133915385972 + 0.133939858956 + 0.133964336237 + 0.133988817815 + 0.13401330369 + 0.134037793864 + 0.134062288337 + 0.13408678711 + 0.134111290184 + 0.134135797559 + 0.134160309237 + 0.134184825217 + 0.134209345501 + 0.13423387009 + 0.134258398983 + 0.134282932183 + 0.13430746969 + 0.134332011504 + 0.134356557626 + 0.134381108057 + 0.134405662798 + 0.13443022185 + 0.134454785213 + 0.134479352888 + 0.134503924875 + 0.134528501176 + 0.134553081792 + 0.134577666723 + 0.134602255969 + 0.134626849532 + 0.134651447412 + 0.134676049611 + 0.134700656128 + 0.134725266965 + 0.134749882122 + 0.134774501601 + 0.134799125401 + 0.134823753524 + 0.13484838597 + 0.134873022741 + 0.134897663836 + 0.134922309257 + 0.134946959005 + 0.13497161308 + 0.134996271482 + 0.135020934214 + 0.135045601275 + 0.135070272666 + 0.135094948388 + 0.135119628442 + 0.135144312829 + 0.135169001548 + 0.135193694602 + 0.135218391991 + 0.135243093715 + 0.135267799775 + 0.135292510173 + 0.135317224908 + 0.135341943982 + 0.135366667396 + 0.135391395149 + 0.135416127244 + 0.13544086368 + 0.135465604458 + 0.13549034958 + 0.135515099046 + 0.135539852856 + 0.135564611012 + 0.135589373514 + 0.135614140363 + 0.13563891156 + 0.135663687105 + 0.135688467 + 0.135713251244 + 0.13573803984 + 0.135762832787 + 0.135787630086 + 0.135812431739 + 0.135837237745 + 0.135862048106 + 0.135886862822 + 0.135911681895 + 0.135936505324 + 0.135961333112 + 0.135986165257 + 0.136011001762 + 0.136035842627 + 0.136060687852 + 0.13608553744 + 0.136110391389 + 0.136135249701 + 0.136160112378 + 0.136184979418 + 0.136209850825 + 0.136234726597 + 0.136259606736 + 0.136284491243 + 0.136309380118 + 0.136334273363 + 0.136359170977 + 0.136384072962 + 0.136408979319 + 0.136433890047 + 0.136458805149 + 0.136483724625 + 0.136508648475 + 0.1365335767 + 0.136558509302 + 0.13658344628 + 0.136608387637 + 0.136633333371 + 0.136658283485 + 0.136683237978 + 0.136708196852 + 0.136733160108 + 0.136758127746 + 0.136783099767 + 0.136808076172 + 0.136833056961 + 0.136858042136 + 0.136883031696 + 0.136908025644 + 0.136933023979 + 0.136958026702 + 0.136983033815 + 0.137008045318 + 0.137033061211 + 0.137058081496 + 0.137083106173 + 0.137108135243 + 0.137133168707 + 0.137158206566 + 0.137183248819 + 0.137208295469 + 0.137233346516 + 0.13725840196 + 0.137283461803 + 0.137308526045 + 0.137333594687 + 0.13735866773 + 0.137383745174 + 0.137408827021 + 0.13743391327 + 0.137459003924 + 0.137484098982 + 0.137509198445 + 0.137534302315 + 0.137559410591 + 0.137584523275 + 0.137609640368 + 0.13763476187 + 0.137659887782 + 0.137685018105 + 0.137710152839 + 0.137735291985 + 0.137760435545 + 0.137785583519 + 0.137810735907 + 0.137835892711 + 0.137861053931 + 0.137886219567 + 0.137911389622 + 0.137936564095 + 0.137961742988 + 0.1379869263 + 0.138012114034 + 0.138037306189 + 0.138062502767 + 0.138087703767 + 0.138112909192 + 0.138138119042 + 0.138163333317 + 0.138188552018 + 0.138213775146 + 0.138239002702 + 0.138264234687 + 0.138289471102 + 0.138314711946 + 0.138339957222 + 0.138365206929 + 0.138390461068 + 0.138415719641 + 0.138440982649 + 0.138466250091 + 0.138491521968 + 0.138516798282 + 0.138542079033 + 0.138567364222 + 0.13859265385 + 0.138617947918 + 0.138643246426 + 0.138668549374 + 0.138693856765 + 0.138719168599 + 0.138744484875 + 0.138769805596 + 0.138795130762 + 0.138820460374 + 0.138845794433 + 0.138871132938 + 0.138896475892 + 0.138921823295 + 0.138947175147 + 0.13897253145 + 0.138997892204 + 0.13902325741 + 0.139048627069 + 0.139074001181 + 0.139099379748 + 0.13912476277 + 0.139150150248 + 0.139175542182 + 0.139200938574 + 0.139226339425 + 0.139251744734 + 0.139277154503 + 0.139302568733 + 0.139327987424 + 0.139353410578 + 0.139378838194 + 0.139404270274 + 0.139429706819 + 0.139455147829 + 0.139480593305 + 0.139506043248 + 0.139531497659 + 0.139556956538 + 0.139582419886 + 0.139607887705 + 0.139633359994 + 0.139658836755 + 0.139684317988 + 0.139709803695 + 0.139735293875 + 0.13976078853 + 0.139786287661 + 0.139811791268 + 0.139837299352 + 0.139862811913 + 0.139888328954 + 0.139913850474 + 0.139939376474 + 0.139964906955 + 0.139990441919 + 0.140015981364 + 0.140041525293 + 0.140067073707 + 0.140092626605 + 0.140118183989 + 0.140143745859 + 0.140169312217 + 0.140194883063 + 0.140220458398 + 0.140246038222 + 0.140271622537 + 0.140297211344 + 0.140322804642 + 0.140348402433 + 0.140374004718 + 0.140399611497 + 0.140425222771 + 0.140450838542 + 0.140476458809 + 0.140502083574 + 0.140527712837 + 0.140553346599 + 0.140578984861 + 0.140604627624 + 0.140630274889 + 0.140655926655 + 0.140681582925 + 0.140707243699 + 0.140732908977 + 0.140758578761 + 0.140784253052 + 0.140809931849 + 0.140835615154 + 0.140861302968 + 0.140886995291 + 0.140912692124 + 0.140938393469 + 0.140964099325 + 0.140989809694 + 0.141015524576 + 0.141041243972 + 0.141066967884 + 0.141092696311 + 0.141118429255 + 0.141144166716 + 0.141169908695 + 0.141195655193 + 0.141221406211 + 0.141247161749 + 0.141272921809 + 0.141298686391 + 0.141324455496 + 0.141350229124 + 0.141376007277 + 0.141401789955 + 0.14142757716 + 0.141453368891 + 0.14147916515 + 0.141504965937 + 0.141530771254 + 0.1415565811 + 0.141582395478 + 0.141608214387 + 0.141634037829 + 0.141659865804 + 0.141685698313 + 0.141711535356 + 0.141737376936 + 0.141763223051 + 0.141789073704 + 0.141814928895 + 0.141840788625 + 0.141866652895 + 0.141892521705 + 0.141918395056 + 0.141944272949 + 0.141970155385 + 0.141996042364 + 0.142021933888 + 0.142047829957 + 0.142073730572 + 0.142099635734 + 0.142125545443 + 0.142151459701 + 0.142177378508 + 0.142203301865 + 0.142229229773 + 0.142255162232 + 0.142281099244 + 0.142307040809 + 0.142332986928 + 0.142358937601 + 0.142384892831 + 0.142410852616 + 0.142436816959 + 0.14246278586 + 0.142488759319 + 0.142514737338 + 0.142540719918 + 0.142566707059 + 0.142592698761 + 0.142618695027 + 0.142644695856 + 0.142670701249 + 0.142696711208 + 0.142722725732 + 0.142748744823 + 0.142774768482 + 0.14280079671 + 0.142826829506 + 0.142852866873 + 0.14287890881 + 0.142904955319 + 0.1429310064 + 0.142957062055 + 0.142983122283 + 0.143009187086 + 0.143035256465 + 0.143061330421 + 0.143087408953 + 0.143113492064 + 0.143139579753 + 0.143165672022 + 0.143191768872 + 0.143217870302 + 0.143243976315 + 0.143270086911 + 0.14329620209 + 0.143322321854 + 0.143348446202 + 0.143374575138 + 0.143400708659 + 0.143426846769 + 0.143452989467 + 0.143479136754 + 0.143505288632 + 0.1435314451 + 0.14355760616 + 0.143583771813 + 0.143609942058 + 0.143636116898 + 0.143662296333 + 0.143688480364 + 0.143714668991 + 0.143740862216 + 0.143767060038 + 0.14379326246 + 0.143819469481 + 0.143845681103 + 0.143871897327 + 0.143898118152 + 0.143924343581 + 0.143950573613 + 0.14397680825 + 0.144003047492 + 0.144029291341 + 0.144055539797 + 0.14408179286 + 0.144108050532 + 0.144134312814 + 0.144160579706 + 0.144186851209 + 0.144213127324 + 0.144239408052 + 0.144265693393 + 0.144291983348 + 0.144318277919 + 0.144344577105 + 0.144370880909 + 0.14439718933 + 0.144423502369 + 0.144449820027 + 0.144476142306 + 0.144502469205 + 0.144528800726 + 0.144555136869 + 0.144581477636 + 0.144607823026 + 0.144634173042 + 0.144660527683 + 0.144686886951 + 0.144713250846 + 0.144739619369 + 0.144765992521 + 0.144792370303 + 0.144818752715 + 0.144845139759 + 0.144871531434 + 0.144897927743 + 0.144924328686 + 0.144950734263 + 0.144977144476 + 0.145003559325 + 0.145029978811 + 0.145056402935 + 0.145082831697 + 0.145109265099 + 0.145135703142 + 0.145162145825 + 0.145188593151 + 0.145215045119 + 0.145241501731 + 0.145267962987 + 0.145294428888 + 0.145320899436 + 0.14534737463 + 0.145373854472 + 0.145400338963 + 0.145426828102 + 0.145453321892 + 0.145479820333 + 0.145506323425 + 0.14553283117 + 0.145559343569 + 0.145585860621 + 0.145612382329 + 0.145638908692 + 0.145665439712 + 0.14569197539 + 0.145718515725 + 0.14574506072 + 0.145771610375 + 0.14579816469 + 0.145824723667 + 0.145851287307 + 0.145877855609 + 0.145904428576 + 0.145931006207 + 0.145957588504 + 0.145984175468 + 0.146010767098 + 0.146037363397 + 0.146063964365 + 0.146090570003 + 0.146117180311 + 0.14614379529 + 0.146170414942 + 0.146197039266 + 0.146223668265 + 0.146250301938 + 0.146276940286 + 0.146303583311 + 0.146330231013 + 0.146356883393 + 0.146383540452 + 0.14641020219 + 0.146436868609 + 0.146463539709 + 0.146490215491 + 0.146516895956 + 0.146543581104 + 0.146570270937 + 0.146596965455 + 0.14662366466 + 0.146650368551 + 0.146677077131 + 0.146703790399 + 0.146730508356 + 0.146757231004 + 0.146783958342 + 0.146810690373 + 0.146837427096 + 0.146864168513 + 0.146890914625 + 0.146917665431 + 0.146944420934 + 0.146971181133 + 0.14699794603 + 0.147024715626 + 0.147051489921 + 0.147078268916 + 0.147105052612 + 0.14713184101 + 0.147158634111 + 0.147185431915 + 0.147212234423 + 0.147239041637 + 0.147265853556 + 0.147292670182 + 0.147319491516 + 0.147346317558 + 0.14737314831 + 0.147399983771 + 0.147426823943 + 0.147453668827 + 0.147480518424 + 0.147507372734 + 0.147534231758 + 0.147561095498 + 0.147587963953 + 0.147614837125 + 0.147641715014 + 0.147668597622 + 0.147695484949 + 0.147722376995 + 0.147749273763 + 0.147776175253 + 0.147803081464 + 0.1478299924 + 0.147856908059 + 0.147883828443 + 0.147910753553 + 0.14793768339 + 0.147964617954 + 0.147991557247 + 0.148018501268 + 0.14804545002 + 0.148072403502 + 0.148099361716 + 0.148126324663 + 0.148153292343 + 0.148180264756 + 0.148207241905 + 0.14823422379 + 0.148261210411 + 0.148288201769 + 0.148315197866 + 0.148342198702 + 0.148369204278 + 0.148396214595 + 0.148423229653 + 0.148450249454 + 0.148477273998 + 0.148504303286 + 0.148531337319 + 0.148558376097 + 0.148585419623 + 0.148612467895 + 0.148639520916 + 0.148666578686 + 0.148693641206 + 0.148720708477 + 0.148747780499 + 0.148774857274 + 0.148801938802 + 0.148829025084 + 0.148856116121 + 0.148883211914 + 0.148910312463 + 0.14893741777 + 0.148964527835 + 0.14899164266 + 0.149018762244 + 0.149045886589 + 0.149073015695 + 0.149100149564 + 0.149127288196 + 0.149154431593 + 0.149181579754 + 0.149208732681 + 0.149235890375 + 0.149263052836 + 0.149290220066 + 0.149317392064 + 0.149344568833 + 0.149371750373 + 0.149398936684 + 0.149426127767 + 0.149453323624 + 0.149480524255 + 0.149507729661 + 0.149534939843 + 0.149562154802 + 0.149589374538 + 0.149616599053 + 0.149643828346 + 0.14967106242 + 0.149698301275 + 0.149725544911 + 0.14975279333 + 0.149780046532 + 0.149807304519 + 0.14983456729 + 0.149861834848 + 0.149889107192 + 0.149916384324 + 0.149943666244 + 0.149970952954 + 0.149998244453 + 0.150025540744 + 0.150052841826 + 0.150080147701 + 0.15010745837 + 0.150134773833 + 0.150162094091 + 0.150189419145 + 0.150216748995 + 0.150244083644 + 0.150271423091 + 0.150298767337 + 0.150326116384 + 0.150353470232 + 0.150380828881 + 0.150408192334 + 0.15043556059 + 0.15046293365 + 0.150490311516 + 0.150517694187 + 0.150545081666 + 0.150572473953 + 0.150599871048 + 0.150627272952 + 0.150654679667 + 0.150682091194 + 0.150709507532 + 0.150736928683 + 0.150764354648 + 0.150791785427 + 0.150819221022 + 0.150846661433 + 0.150874106661 + 0.150901556707 + 0.150929011572 + 0.150956471256 + 0.150983935761 + 0.151011405087 + 0.151038879236 + 0.151066358207 + 0.151093842003 + 0.151121330623 + 0.151148824068 + 0.15117632234 + 0.151203825439 + 0.151231333367 + 0.151258846123 + 0.151286363709 + 0.151313886126 + 0.151341413374 + 0.151368945455 + 0.151396482368 + 0.151424024116 + 0.151451570699 + 0.151479122117 + 0.151506678372 + 0.151534239465 + 0.151561805396 + 0.151589376165 + 0.151616951775 + 0.151644532226 + 0.151672117518 + 0.151699707653 + 0.151727302631 + 0.151754902454 + 0.151782507121 + 0.151810116635 + 0.151837730995 + 0.151865350203 + 0.151892974259 + 0.151920603165 + 0.151948236921 + 0.151975875528 + 0.152003518987 + 0.152031167298 + 0.152058820464 + 0.152086478483 + 0.152114141358 + 0.152141809089 + 0.152169481677 + 0.152197159123 + 0.152224841428 + 0.152252528592 + 0.152280220616 + 0.152307917502 + 0.15233561925 + 0.152363325861 + 0.152391037336 + 0.152418753675 + 0.15244647488 + 0.152474200952 + 0.15250193189 + 0.152529667697 + 0.152557408373 + 0.152585153918 + 0.152612904334 + 0.152640659622 + 0.152668419782 + 0.152696184815 + 0.152723954723 + 0.152751729505 + 0.152779509163 + 0.152807293698 + 0.15283508311 + 0.152862877401 + 0.15289067657 + 0.15291848062 + 0.152946289551 + 0.152974103364 + 0.153001922059 + 0.153029745638 + 0.153057574101 + 0.153085407449 + 0.153113245684 + 0.153141088805 + 0.153168936814 + 0.153196789712 + 0.153224647499 + 0.153252510177 + 0.153280377746 + 0.153308250207 + 0.15333612756 + 0.153364009808 + 0.153391896951 + 0.153419788988 + 0.153447685923 + 0.153475587754 + 0.153503494484 + 0.153531406112 + 0.153559322641 + 0.15358724407 + 0.1536151704 + 0.153643101633 + 0.15367103777 + 0.15369897881 + 0.153726924755 + 0.153754875606 + 0.153782831364 + 0.15381079203 + 0.153838757604 + 0.153866728087 + 0.15389470348 + 0.153922683784 + 0.153950669001 + 0.153978659129 + 0.154006654172 + 0.154034654129 + 0.154062659001 + 0.15409066879 + 0.154118683495 + 0.154146703119 + 0.154174727661 + 0.154202757123 + 0.154230791505 + 0.154258830809 + 0.154286875035 + 0.154314924184 + 0.154342978257 + 0.154371037255 + 0.154399101178 + 0.154427170029 + 0.154455243806 + 0.154483322512 + 0.154511406147 + 0.154539494712 + 0.154567588207 + 0.154595686635 + 0.154623789995 + 0.154651898289 + 0.154680011517 + 0.15470812968 + 0.154736252779 + 0.154764380816 + 0.15479251379 + 0.154820651702 + 0.154848794554 + 0.154876942347 + 0.154905095081 + 0.154933252757 + 0.154961415376 + 0.154989582939 + 0.155017755447 + 0.1550459329 + 0.1550741153 + 0.155102302647 + 0.155130494942 + 0.155158692187 + 0.155186894381 + 0.155215101526 + 0.155243313623 + 0.155271530673 + 0.155299752676 + 0.155327979633 + 0.155356211545 + 0.155384448414 + 0.155412690239 + 0.155440937022 + 0.155469188764 + 0.155497445465 + 0.155525707127 + 0.15555397375 + 0.155582245335 + 0.155610521883 + 0.155638803395 + 0.155667089872 + 0.155695381314 + 0.155723677723 + 0.155751979099 + 0.155780285444 + 0.155808596757 + 0.155836913041 + 0.155865234295 + 0.155893560521 + 0.15592189172 + 0.155950227892 + 0.155978569039 + 0.156006915161 + 0.156035266258 + 0.156063622333 + 0.156091983386 + 0.156120349417 + 0.156148720428 + 0.15617709642 + 0.156205477392 + 0.156233863347 + 0.156262254285 + 0.156290650207 + 0.156319051114 + 0.156347457007 + 0.156375867886 + 0.156404283752 + 0.156432704607 + 0.156461130451 + 0.156489561286 + 0.156517997111 + 0.156546437928 + 0.156574883737 + 0.156603334541 + 0.156631790339 + 0.156660251132 + 0.156688716921 + 0.156717187708 + 0.156745663492 + 0.156774144275 + 0.156802630058 + 0.156831120842 + 0.156859616627 + 0.156888117414 + 0.156916623205 + 0.156945134 + 0.1569736498 + 0.157002170605 + 0.157030696418 + 0.157059227238 + 0.157087763067 + 0.157116303905 + 0.157144849753 + 0.157173400612 + 0.157201956484 + 0.157230517368 + 0.157259083266 + 0.157287654179 + 0.157316230108 + 0.157344811053 + 0.157373397015 + 0.157401987995 + 0.157430583994 + 0.157459185014 + 0.157487791054 + 0.157516402116 + 0.1575450182 + 0.157573639308 + 0.157602265441 + 0.157630896598 + 0.157659532782 + 0.157688173993 + 0.157716820232 + 0.157745471499 + 0.157774127796 + 0.157802789124 + 0.157831455483 + 0.157860126874 + 0.157888803299 + 0.157917484757 + 0.157946171251 + 0.15797486278 + 0.158003559347 + 0.15803226095 + 0.158060967593 + 0.158089679274 + 0.158118395996 + 0.158147117759 + 0.158175844564 + 0.158204576412 + 0.158233313304 + 0.158262055241 + 0.158290802223 + 0.158319554251 + 0.158348311327 + 0.158377073451 + 0.158405840625 + 0.158434612848 + 0.158463390122 + 0.158492172448 + 0.158520959827 + 0.158549752259 + 0.158578549745 + 0.158607352287 + 0.158636159885 + 0.158664972541 + 0.158693790254 + 0.158722613026 + 0.158751440858 + 0.15878027375 + 0.158809111704 + 0.158837954721 + 0.158866802801 + 0.158895655945 + 0.158924514154 + 0.158953377429 + 0.158982245771 + 0.159011119181 + 0.159039997659 + 0.159068881207 + 0.159097769825 + 0.159126663515 + 0.159155562277 + 0.159184466112 + 0.159213375021 + 0.159242289005 + 0.159271208065 + 0.159300132201 + 0.159329061415 + 0.159357995707 + 0.159386935079 + 0.159415879531 + 0.159444829064 + 0.159473783679 + 0.159502743377 + 0.159531708159 + 0.159560678026 + 0.159589652978 + 0.159618633016 + 0.159647618142 + 0.159676608356 + 0.15970560366 + 0.159734604053 + 0.159763609538 + 0.159792620114 + 0.159821635783 + 0.159850656545 + 0.159879682402 + 0.159908713355 + 0.159937749404 + 0.15996679055 + 0.159995836794 + 0.160024888137 + 0.16005394458 + 0.160083006124 + 0.16011207277 + 0.160141144518 + 0.160170221369 + 0.160199303325 + 0.160228390386 + 0.160257482554 + 0.160286579828 + 0.16031568221 + 0.160344789702 + 0.160373902303 + 0.160403020014 + 0.160432142837 + 0.160461270773 + 0.160490403822 + 0.160519541985 + 0.160548685263 + 0.160577833658 + 0.160606987169 + 0.160636145798 + 0.160665309546 + 0.160694478413 + 0.160723652401 + 0.16075283151 + 0.160782015742 + 0.160811205097 + 0.160840399576 + 0.16086959918 + 0.16089880391 + 0.160928013767 + 0.160957228751 + 0.160986448864 + 0.161015674107 + 0.16104490448 + 0.161074139984 + 0.161103380621 + 0.161132626391 + 0.161161877294 + 0.161191133333 + 0.161220394508 + 0.161249660819 + 0.161278932268 + 0.161308208855 + 0.161337490582 + 0.161366777449 + 0.161396069457 + 0.161425366608 + 0.161454668901 + 0.161483976339 + 0.161513288921 + 0.161542606649 + 0.161571929524 + 0.161601257546 + 0.161630590717 + 0.161659929037 + 0.161689272508 + 0.161718621129 + 0.161747974903 + 0.16177733383 + 0.16180669791 + 0.161836067145 + 0.161865441536 + 0.161894821084 + 0.161924205789 + 0.161953595653 + 0.161982990676 + 0.162012390859 + 0.162041796203 + 0.162071206709 + 0.162100622378 + 0.162130043211 + 0.162159469209 + 0.162188900373 + 0.162218336703 + 0.1622477782 + 0.162277224866 + 0.162306676701 + 0.162336133706 + 0.162365595883 + 0.162395063231 + 0.162424535753 + 0.162454013448 + 0.162483496318 + 0.162512984364 + 0.162542477586 + 0.162571975985 + 0.162601479563 + 0.162630988321 + 0.162660502258 + 0.162690021377 + 0.162719545677 + 0.162749075161 + 0.162778609828 + 0.16280814968 + 0.162837694718 + 0.162867244942 + 0.162896800354 + 0.162926360954 + 0.162955926743 + 0.162985497723 + 0.163015073893 + 0.163044655256 + 0.163074241812 + 0.163103833561 + 0.163133430506 + 0.163163032645 + 0.163192639982 + 0.163222252516 + 0.163251870248 + 0.16328149318 + 0.163311121312 + 0.163340754645 + 0.16337039318 + 0.163400036919 + 0.163429685861 + 0.163459340007 + 0.16348899936 + 0.163518663919 + 0.163548333686 + 0.163578008661 + 0.163607688846 + 0.16363737424 + 0.163667064846 + 0.163696760664 + 0.163726461696 + 0.163756167941 + 0.163785879401 + 0.163815596076 + 0.163845317969 + 0.163875045079 + 0.163904777407 + 0.163934514955 + 0.163964257724 + 0.163994005713 + 0.164023758925 + 0.16405351736 + 0.164083281019 + 0.164113049903 + 0.164142824012 + 0.164172603349 + 0.164202387913 + 0.164232177706 + 0.164261972728 + 0.164291772981 + 0.164321578465 + 0.164351389181 + 0.164381205131 + 0.164411026314 + 0.164440852733 + 0.164470684388 + 0.164500521279 + 0.164530363409 + 0.164560210777 + 0.164590063384 + 0.164619921233 + 0.164649784322 + 0.164679652654 + 0.16470952623 + 0.164739405049 + 0.164769289114 + 0.164799178425 + 0.164829072983 + 0.164858972789 + 0.164888877843 + 0.164918788148 + 0.164948703703 + 0.164978624509 + 0.165008550568 + 0.165038481881 + 0.165068418448 + 0.16509836027 + 0.165128307349 + 0.165158259684 + 0.165188217278 + 0.165218180131 + 0.165248148243 + 0.165278121617 + 0.165308100252 + 0.16533808415 + 0.165368073311 + 0.165398067737 + 0.165428067428 + 0.165458072386 + 0.165488082611 + 0.165518098104 + 0.165548118867 + 0.165578144899 + 0.165608176203 + 0.165638212778 + 0.165668254626 + 0.165698301748 + 0.165728354145 + 0.165758411818 + 0.165788474766 + 0.165818542993 + 0.165848616498 + 0.165878695282 + 0.165908779346 + 0.165938868692 + 0.165968963319 + 0.16599906323 + 0.166029168425 + 0.166059278904 + 0.166089394669 + 0.166119515722 + 0.166149642061 + 0.16617977369 + 0.166209910608 + 0.166240052816 + 0.166270200316 + 0.166300353108 + 0.166330511193 + 0.166360674573 + 0.166390843247 + 0.166421017218 + 0.166451196486 + 0.166481381051 + 0.166511570916 + 0.16654176608 + 0.166571966545 + 0.166602172311 + 0.16663238338 + 0.166662599752 + 0.166692821429 + 0.166723048411 + 0.1667532807 + 0.166783518295 + 0.166813761199 + 0.166844009412 + 0.166874262935 + 0.166904521769 + 0.166934785914 + 0.166965055373 + 0.166995330145 + 0.167025610232 + 0.167055895634 + 0.167086186353 + 0.16711648239 + 0.167146783745 + 0.167177090419 + 0.167207402413 + 0.167237719729 + 0.167268042366 + 0.167298370327 + 0.167328703612 + 0.167359042222 + 0.167389386157 + 0.16741973542 + 0.16745009001 + 0.167480449929 + 0.167510815177 + 0.167541185756 + 0.167571561666 + 0.167601942909 + 0.167632329485 + 0.167662721396 + 0.167693118642 + 0.167723521224 + 0.167753929143 + 0.1677843424 + 0.167814760996 + 0.167845184931 + 0.167875614208 + 0.167906048827 + 0.167936488788 + 0.167966934093 + 0.167997384742 + 0.168027840737 + 0.168058302079 + 0.168088768768 + 0.168119240805 + 0.168149718192 + 0.168180200928 + 0.168210689016 + 0.168241182457 + 0.16827168125 + 0.168302185397 + 0.168332694899 + 0.168363209757 + 0.168393729971 + 0.168424255544 + 0.168454786475 + 0.168485322766 + 0.168515864417 + 0.16854641143 + 0.168576963805 + 0.168607521544 + 0.168638084647 + 0.168668653115 + 0.16869922695 + 0.168729806152 + 0.168760390721 + 0.16879098066 + 0.168821575969 + 0.168852176649 + 0.1688827827 + 0.168913394125 + 0.168944010923 + 0.168974633096 + 0.169005260645 + 0.16903589357 + 0.169066531872 + 0.169097175554 + 0.169127824614 + 0.169158479055 + 0.169189138877 + 0.169219804082 + 0.16925047467 + 0.169281150642 + 0.169311831999 + 0.169342518741 + 0.169373210871 + 0.169403908389 + 0.169434611296 + 0.169465319593 + 0.16949603328 + 0.169526752359 + 0.169557476831 + 0.169588206696 + 0.169618941956 + 0.169649682612 + 0.169680428663 + 0.169711180113 + 0.16974193696 + 0.169772699207 + 0.169803466854 + 0.169834239902 + 0.169865018353 + 0.169895802206 + 0.169926591464 + 0.169957386126 + 0.169988186195 + 0.17001899167 + 0.170049802553 + 0.170080618845 + 0.170111440547 + 0.170142267659 + 0.170173100183 + 0.170203938119 + 0.170234781469 + 0.170265630234 + 0.170296484414 + 0.17032734401 + 0.170358209024 + 0.170389079455 + 0.170419955307 + 0.170450836578 + 0.17048172327 + 0.170512615385 + 0.170543512922 + 0.170574415884 + 0.17060532427 + 0.170636238083 + 0.170667157322 + 0.170698081989 + 0.170729012085 + 0.17075994761 + 0.170790888566 + 0.170821834954 + 0.170852786774 + 0.170883744028 + 0.170914706716 + 0.17094567484 + 0.1709766484 + 0.171007627397 + 0.171038611833 + 0.171069601708 + 0.171100597023 + 0.171131597779 + 0.171162603978 + 0.171193615619 + 0.171224632704 + 0.171255655235 + 0.171286683211 + 0.171317716634 + 0.171348755506 + 0.171379799825 + 0.171410849595 + 0.171441904815 + 0.171472965487 + 0.171504031612 + 0.17153510319 + 0.171566180223 + 0.171597262711 + 0.171628350656 + 0.171659444058 + 0.171690542918 + 0.171721647238 + 0.171752757018 + 0.17178387226 + 0.171814992963 + 0.17184611913 + 0.171877250761 + 0.171908387857 + 0.171939530418 + 0.171970678447 + 0.172001831944 + 0.17203299091 + 0.172064155346 + 0.172095325252 + 0.172126500631 + 0.172157681482 + 0.172188867807 + 0.172220059606 + 0.172251256881 + 0.172282459633 + 0.172313667862 + 0.17234488157 + 0.172376100757 + 0.172407325425 + 0.172438555574 + 0.172469791206 + 0.172501032321 + 0.17253227892 + 0.172563531004 + 0.172594788575 + 0.172626051633 + 0.172657320179 + 0.172688594214 + 0.172719873739 + 0.172751158756 + 0.172782449264 + 0.172813745265 + 0.17284504676 + 0.172876353751 + 0.172907666236 + 0.172938984219 + 0.1729703077 + 0.173001636679 + 0.173032971158 + 0.173064311138 + 0.173095656619 + 0.173127007603 + 0.173158364091 + 0.173189726083 + 0.173221093581 + 0.173252466585 + 0.173283845097 + 0.173315229117 + 0.173346618646 + 0.173378013686 + 0.173409414237 + 0.1734408203 + 0.173472231877 + 0.173503648968 + 0.173535071574 + 0.173566499696 + 0.173597933336 + 0.173629372493 + 0.17366081717 + 0.173692267366 + 0.173723723084 + 0.173755184323 + 0.173786651086 + 0.173818123372 + 0.173849601183 + 0.17388108452 + 0.173912573384 + 0.173944067776 + 0.173975567697 + 0.174007073147 + 0.174038584128 + 0.17407010064 + 0.174101622686 + 0.174133150264 + 0.174164683378 + 0.174196222027 + 0.174227766213 + 0.174259315936 + 0.174290871197 + 0.174322431998 + 0.174353998339 + 0.174385570222 + 0.174417147647 + 0.174448730616 + 0.174480319129 + 0.174511913187 + 0.174543512791 + 0.174575117943 + 0.174606728643 + 0.174638344892 + 0.174669966691 + 0.174701594041 + 0.174733226943 + 0.174764865399 + 0.174796509408 + 0.174828158973 + 0.174859814093 + 0.174891474771 + 0.174923141006 + 0.1749548128 + 0.174986490155 + 0.17501817307 + 0.175049861547 + 0.175081555587 + 0.17511325519 + 0.175144960359 + 0.175176671093 + 0.175208387394 + 0.175240109263 + 0.1752718367 + 0.175303569707 + 0.175335308285 + 0.175367052434 + 0.175398802156 + 0.175430557452 + 0.175462318322 + 0.175494084767 + 0.175525856789 + 0.175557634389 + 0.175589417567 + 0.175621206325 + 0.175653000663 + 0.175684800582 + 0.175716606084 + 0.175748417169 + 0.175780233839 + 0.175812056094 + 0.175843883935 + 0.175875717363 + 0.17590755638 + 0.175939400986 + 0.175971251182 + 0.17600310697 + 0.17603496835 + 0.176066835323 + 0.17609870789 + 0.176130586052 + 0.17616246981 + 0.176194359166 + 0.176226254119 + 0.176258154672 + 0.176290060825 + 0.176321972578 + 0.176353889934 + 0.176385812893 + 0.176417741456 + 0.176449675624 + 0.176481615397 + 0.176513560778 + 0.176545511767 + 0.176577468364 + 0.176609430572 + 0.17664139839 + 0.17667337182 + 0.176705350863 + 0.17673733552 + 0.176769325792 + 0.176801321679 + 0.176833323184 + 0.176865330306 + 0.176897343047 + 0.176929361407 + 0.176961385389 + 0.176993414992 + 0.177025450218 + 0.177057491067 + 0.177089537541 + 0.177121589641 + 0.177153647368 + 0.177185710722 + 0.177217779705 + 0.177249854318 + 0.177281934561 + 0.177314020435 + 0.177346111943 + 0.177378209084 + 0.177410311859 + 0.17744242027 + 0.177474534318 + 0.177506654003 + 0.177538779327 + 0.17757091029 + 0.177603046894 + 0.177635189139 + 0.177667337026 + 0.177699490558 + 0.177731649733 + 0.177763814554 + 0.177795985022 + 0.177828161137 + 0.1778603429 + 0.177892530313 + 0.177924723377 + 0.177956922091 + 0.177989126458 + 0.178021336479 + 0.178053552154 + 0.178085773484 + 0.178118000471 + 0.178150233115 + 0.178182471417 + 0.178214715379 + 0.178246965001 + 0.178279220284 + 0.17831148123 + 0.178343747839 + 0.178376020113 + 0.178408298052 + 0.178440581657 + 0.178472870929 + 0.17850516587 + 0.17853746648 + 0.17856977276 + 0.178602084711 + 0.178634402335 + 0.178666725632 + 0.178699054604 + 0.17873138925 + 0.178763729573 + 0.178796075573 + 0.178828427252 + 0.178860784609 + 0.178893147647 + 0.178925516367 + 0.178957890768 + 0.178990270853 + 0.179022656622 + 0.179055048076 + 0.179087445216 + 0.179119848044 + 0.17915225656 + 0.179184670765 + 0.17921709066 + 0.179249516247 + 0.179281947526 + 0.179314384498 + 0.179346827164 + 0.179379275525 + 0.179411729583 + 0.179444189338 + 0.179476654791 + 0.179509125944 + 0.179541602796 + 0.17957408535 + 0.179606573606 + 0.179639067566 + 0.179671567229 + 0.179704072598 + 0.179736583673 + 0.179769100456 + 0.179801622946 + 0.179834151146 + 0.179866685056 + 0.179899224677 + 0.179931770011 + 0.179964321057 + 0.179996877819 + 0.180029440295 + 0.180062008487 + 0.180094582397 + 0.180127162025 + 0.180159747373 + 0.18019233844 + 0.180224935229 + 0.18025753774 + 0.180290145975 + 0.180322759934 + 0.180355379618 + 0.180388005028 + 0.180420636166 + 0.180453273032 + 0.180485915627 + 0.180518563953 + 0.18055121801 + 0.180583877799 + 0.180616543322 + 0.180649214579 + 0.180681891571 + 0.1807145743 + 0.180747262766 + 0.180779956971 + 0.180812656915 + 0.180845362599 + 0.180878074025 + 0.180910791193 + 0.180943514104 + 0.18097624276 + 0.181008977161 + 0.181041717309 + 0.181074463205 + 0.181107214848 + 0.181139972241 + 0.181172735385 + 0.18120550428 + 0.181238278928 + 0.181271059329 + 0.181303845485 + 0.181336637396 + 0.181369435064 + 0.181402238489 + 0.181435047673 + 0.181467862616 + 0.18150068332 + 0.181533509786 + 0.181566342014 + 0.181599180006 + 0.181632023763 + 0.181664873285 + 0.181697728573 + 0.18173058963 + 0.181763456455 + 0.18179632905 + 0.181829207415 + 0.181862091552 + 0.181894981462 + 0.181927877146 + 0.181960778604 + 0.181993685839 + 0.18202659885 + 0.182059517638 + 0.182092442206 + 0.182125372553 + 0.182158308682 + 0.182191250592 + 0.182224198285 + 0.182257151762 + 0.182290111023 + 0.182323076071 + 0.182356046906 + 0.182389023528 + 0.18242200594 + 0.182454994141 + 0.182487988134 + 0.182520987918 + 0.182553993496 + 0.182587004868 + 0.182620022034 + 0.182653044997 + 0.182686073757 + 0.182719108315 + 0.182752148672 + 0.182785194829 + 0.182818246788 + 0.182851304548 + 0.182884368112 + 0.18291743748 + 0.182950512653 + 0.182983593633 + 0.18301668042 + 0.183049773015 + 0.183082871419 + 0.183115975634 + 0.18314908566 + 0.183182201499 + 0.183215323151 + 0.183248450617 + 0.183281583899 + 0.183314722997 + 0.183347867913 + 0.183381018647 + 0.183414175201 + 0.183447337576 + 0.183480505772 + 0.18351367979 + 0.183546859632 + 0.183580045299 + 0.183613236792 + 0.183646434111 + 0.183679637258 + 0.183712846233 + 0.183746061038 + 0.183779281675 + 0.183812508142 + 0.183845740443 + 0.183878978578 + 0.183912222547 + 0.183945472353 + 0.183978727995 + 0.184011989475 + 0.184045256794 + 0.184078529953 + 0.184111808954 + 0.184145093796 + 0.184178384481 + 0.184211681011 + 0.184244983385 + 0.184278291606 + 0.184311605674 + 0.18434492559 + 0.184378251355 + 0.184411582971 + 0.184444920437 + 0.184478263756 + 0.184511612929 + 0.184544967956 + 0.184578328838 + 0.184611695577 + 0.184645068173 + 0.184678446627 + 0.184711830941 + 0.184745221116 + 0.184778617152 + 0.184812019051 + 0.184845426813 + 0.18487884044 + 0.184912259933 + 0.184945685293 + 0.18497911652 + 0.185012553616 + 0.185045996581 + 0.185079445418 + 0.185112900126 + 0.185146360708 + 0.185179827163 + 0.185213299493 + 0.185246777699 + 0.185280261783 + 0.185313751744 + 0.185347247584 + 0.185380749305 + 0.185414256906 + 0.18544777039 + 0.185481289757 + 0.185514815008 + 0.185548346144 + 0.185581883167 + 0.185615426077 + 0.185648974876 + 0.185682529564 + 0.185716090142 + 0.185749656612 + 0.185783228974 + 0.18581680723 + 0.185850391381 + 0.185883981427 + 0.185917577369 + 0.18595117921 + 0.185984786949 + 0.186018400588 + 0.186052020128 + 0.186085645569 + 0.186119276913 + 0.186152914162 + 0.186186557315 + 0.186220206374 + 0.18625386134 + 0.186287522215 + 0.186321188998 + 0.186354861691 + 0.186388540296 + 0.186422224813 + 0.186455915243 + 0.186489611587 + 0.186523313847 + 0.186557022022 + 0.186590736116 + 0.186624456128 + 0.186658182059 + 0.186691913911 + 0.186725651684 + 0.18675939538 + 0.186793144999 + 0.186826900543 + 0.186860662013 + 0.18689442941 + 0.186928202734 + 0.186961981987 + 0.18699576717 + 0.187029558284 + 0.18706335533 + 0.187097158309 + 0.187130967222 + 0.18716478207 + 0.187198602854 + 0.187232429575 + 0.187266262235 + 0.187300100833 + 0.187333945372 + 0.187367795853 + 0.187401652275 + 0.187435514641 + 0.187469382952 + 0.187503257208 + 0.187537137411 + 0.187571023561 + 0.18760491566 + 0.187638813708 + 0.187672717707 + 0.187706627658 + 0.187740543562 + 0.187774465419 + 0.187808393232 + 0.187842327 + 0.187876266726 + 0.187910212409 + 0.187944164052 + 0.187978121655 + 0.188012085218 + 0.188046054744 + 0.188080030234 + 0.188114011687 + 0.188147999106 + 0.188181992492 + 0.188215991845 + 0.188249997166 + 0.188284008457 + 0.188318025719 + 0.188352048952 + 0.188386078158 + 0.188420113337 + 0.188454154492 + 0.188488201622 + 0.188522254729 + 0.188556313814 + 0.188590378878 + 0.188624449922 + 0.188658526947 + 0.188692609955 + 0.188726698945 + 0.18876079392 + 0.18879489488 + 0.188829001826 + 0.18886311476 + 0.188897233682 + 0.188931358594 + 0.188965489496 + 0.18899962639 + 0.189033769276 + 0.189067918157 + 0.189102073032 + 0.189136233902 + 0.18917040077 + 0.189204573635 + 0.1892387525 + 0.189272937364 + 0.18930712823 + 0.189341325097 + 0.189375527968 + 0.189409736843 + 0.189443951724 + 0.18947817261 + 0.189512399504 + 0.189546632407 + 0.189580871319 + 0.189615116242 + 0.189649367176 + 0.189683624123 + 0.189717887083 + 0.189752156059 + 0.18978643105 + 0.189820712058 + 0.189854999084 + 0.189889292129 + 0.189923591194 + 0.18995789628 + 0.189992207389 + 0.19002652452 + 0.190060847676 + 0.190095176857 + 0.190129512065 + 0.1901638533 + 0.190198200564 + 0.190232553857 + 0.190266913181 + 0.190301278536 + 0.190335649924 + 0.190370027347 + 0.190404410804 + 0.190438800296 + 0.190473195826 + 0.190507597394 + 0.190542005001 + 0.190576418648 + 0.190610838337 + 0.190645264068 + 0.190679695842 + 0.19071413366 + 0.190748577524 + 0.190783027435 + 0.190817483393 + 0.1908519454 + 0.190886413456 + 0.190920887563 + 0.190955367722 + 0.190989853934 + 0.1910243462 + 0.191058844521 + 0.191093348899 + 0.191127859333 + 0.191162375825 + 0.191196898377 + 0.191231426989 + 0.191265961663 + 0.191300502399 + 0.191335049198 + 0.191369602062 + 0.191404160992 + 0.191438725989 + 0.191473297053 + 0.191507874186 + 0.19154245739 + 0.191577046664 + 0.19161164201 + 0.191646243429 + 0.191680850923 + 0.191715464492 + 0.191750084137 + 0.191784709859 + 0.19181934166 + 0.191853979541 + 0.191888623502 + 0.191923273544 + 0.19195792967 + 0.191992591879 + 0.192027260173 + 0.192061934553 + 0.192096615021 + 0.192131301576 + 0.19216599422 + 0.192200692954 + 0.19223539778 + 0.192270108698 + 0.19230482571 + 0.192339548816 + 0.192374278017 + 0.192409013316 + 0.192443754712 + 0.192478502206 + 0.192513255801 + 0.192548015496 + 0.192582781293 + 0.192617553194 + 0.192652331198 + 0.192687115308 + 0.192721905524 + 0.192756701848 + 0.192791504279 + 0.192826312821 + 0.192861127472 + 0.192895948236 + 0.192930775112 + 0.192965608102 + 0.193000447206 + 0.193035292427 + 0.193070143765 + 0.19310500122 + 0.193139864795 + 0.19317473449 + 0.193209610307 + 0.193244492245 + 0.193279380308 + 0.193314274494 + 0.193349174806 + 0.193384081245 + 0.193418993812 + 0.193453912507 + 0.193488837333 + 0.193523768289 + 0.193558705378 + 0.193593648599 + 0.193628597955 + 0.193663553446 + 0.193698515073 + 0.193733482838 + 0.193768456741 + 0.193803436784 + 0.193838422967 + 0.193873415292 + 0.19390841376 + 0.193943418372 + 0.193978429129 + 0.194013446032 + 0.194048469082 + 0.194083498281 + 0.194118533628 + 0.194153575126 + 0.194188622775 + 0.194223676577 + 0.194258736533 + 0.194293802643 + 0.194328874909 + 0.194363953332 + 0.194399037913 + 0.194434128652 + 0.194469225552 + 0.194504328613 + 0.194539437837 + 0.194574553223 + 0.194609674774 + 0.194644802491 + 0.194679936374 + 0.194715076425 + 0.194750222644 + 0.194785375034 + 0.194820533594 + 0.194855698326 + 0.194890869232 + 0.194926046311 + 0.194961229566 + 0.194996418997 + 0.195031614606 + 0.195066816393 + 0.195102024359 + 0.195137238507 + 0.195172458836 + 0.195207685348 + 0.195242918043 + 0.195278156924 + 0.195313401991 + 0.195348653245 + 0.195383910688 + 0.19541917432 + 0.195454444142 + 0.195489720155 + 0.195525002362 + 0.195560290762 + 0.195595585357 + 0.195630886147 + 0.195666193135 + 0.195701506321 + 0.195736825706 + 0.195772151291 + 0.195807483077 + 0.195842821066 + 0.195878165258 + 0.195913515655 + 0.195948872258 + 0.195984235067 + 0.196019604084 + 0.196054979311 + 0.196090360747 + 0.196125748394 + 0.196161142254 + 0.196196542326 + 0.196231948614 + 0.196267361116 + 0.196302779836 + 0.196338204772 + 0.196373635928 + 0.196409073304 + 0.1964445169 + 0.196479966719 + 0.19651542276 + 0.196550885026 + 0.196586353518 + 0.196621828235 + 0.19665730918 + 0.196692796354 + 0.196728289757 + 0.196763789391 + 0.196799295258 + 0.196834807357 + 0.19687032569 + 0.196905850258 + 0.196941381062 + 0.196976918104 + 0.197012461384 + 0.197048010904 + 0.197083566665 + 0.197119128667 + 0.197154696912 + 0.197190271401 + 0.197225852134 + 0.197261439114 + 0.197297032342 + 0.197332631817 + 0.197368237542 + 0.197403849517 + 0.197439467744 + 0.197475092224 + 0.197510722958 + 0.197546359946 + 0.19758200319 + 0.197617652692 + 0.197653308451 + 0.19768897047 + 0.19772463875 + 0.19776031329 + 0.197795994094 + 0.197831681161 + 0.197867374492 + 0.19790307409 + 0.197938779955 + 0.197974492087 + 0.198010210489 + 0.198045935161 + 0.198081666105 + 0.198117403321 + 0.198153146811 + 0.198188896575 + 0.198224652615 + 0.198260414932 + 0.198296183527 + 0.198331958401 + 0.198367739555 + 0.198403526991 + 0.198439320709 + 0.19847512071 + 0.198510926996 + 0.198546739568 + 0.198582558426 + 0.198618383573 + 0.198654215008 + 0.198690052734 + 0.19872589675 + 0.198761747059 + 0.198797603662 + 0.198833466559 + 0.198869335752 + 0.198905211241 + 0.198941093029 + 0.198976981115 + 0.199012875501 + 0.199048776189 + 0.199084683179 + 0.199120596472 + 0.199156516069 + 0.199192441973 + 0.199228374183 + 0.1992643127 + 0.199300257527 + 0.199336208664 + 0.199372166112 + 0.199408129872 + 0.199444099945 + 0.199480076333 + 0.199516059037 + 0.199552048057 + 0.199588043395 + 0.199624045051 + 0.199660053028 + 0.199696067326 + 0.199732087946 + 0.19976811489 + 0.199804148158 + 0.199840187751 + 0.199876233671 + 0.199912285919 + 0.199948344496 + 0.199984409403 + 0.200020480641 + 0.200056558211 + 0.200092642114 + 0.200128732352 + 0.200164828926 + 0.200200931836 + 0.200237041084 + 0.20027315667 + 0.200309278597 + 0.200345406865 + 0.200381541475 + 0.200417682428 + 0.200453829726 + 0.20048998337 + 0.20052614336 + 0.200562309698 + 0.200598482385 + 0.200634661422 + 0.20067084681 + 0.20070703855 + 0.200743236644 + 0.200779441092 + 0.200815651895 + 0.200851869056 + 0.200888092574 + 0.200924322451 + 0.200960558689 + 0.200996801287 + 0.201033050248 + 0.201069305572 + 0.201105567261 + 0.201141835315 + 0.201178109736 + 0.201214390525 + 0.201250677683 + 0.201286971212 + 0.201323271111 + 0.201359577383 + 0.201395890028 + 0.201432209048 + 0.201468534443 + 0.201504866216 + 0.201541204366 + 0.201577548895 + 0.201613899805 + 0.201650257096 + 0.201686620769 + 0.201722990826 + 0.201759367267 + 0.201795750095 + 0.201832139309 + 0.201868534911 + 0.201904936903 + 0.201941345284 + 0.201977760058 + 0.202014181223 + 0.202050608783 + 0.202087042737 + 0.202123483087 + 0.202159929834 + 0.202196382979 + 0.202232842523 + 0.202269308468 + 0.202305780814 + 0.202342259563 + 0.202378744716 + 0.202415236273 + 0.202451734237 + 0.202488238607 + 0.202524749386 + 0.202561266574 + 0.202597790173 + 0.202634320184 + 0.202670856607 + 0.202707399444 + 0.202743948696 + 0.202780504364 + 0.202817066449 + 0.202853634953 + 0.202890209876 + 0.20292679122 + 0.202963378986 + 0.202999973175 + 0.203036573787 + 0.203073180825 + 0.203109794289 + 0.203146414181 + 0.203183040501 + 0.20321967325 + 0.203256312431 + 0.203292958043 + 0.203329610088 + 0.203366268568 + 0.203402933483 + 0.203439604834 + 0.203476282623 + 0.203512966851 + 0.203549657518 + 0.203586354626 + 0.203623058177 + 0.203659768171 + 0.203696484609 + 0.203733207492 + 0.203769936822 + 0.2038066726 + 0.203843414827 + 0.203880163503 + 0.203916918631 + 0.203953680211 + 0.203990448245 + 0.204027222733 + 0.204064003677 + 0.204100791077 + 0.204137584936 + 0.204174385253 + 0.204211192031 + 0.20424800527 + 0.204284824972 + 0.204321651137 + 0.204358483767 + 0.204395322863 + 0.204432168425 + 0.204469020456 + 0.204505878957 + 0.204542743927 + 0.204579615369 + 0.204616493284 + 0.204653377673 + 0.204690268537 + 0.204727165877 + 0.204764069694 + 0.204800979989 + 0.204837896764 + 0.204874820019 + 0.204911749757 + 0.204948685977 + 0.204985628681 + 0.205022577871 + 0.205059533547 + 0.20509649571 + 0.205133464362 + 0.205170439504 + 0.205207421136 + 0.205244409261 + 0.205281403879 + 0.205318404991 + 0.205355412599 + 0.205392426703 + 0.205429447305 + 0.205466474405 + 0.205503508006 + 0.205540548108 + 0.205577594712 + 0.20561464782 + 0.205651707432 + 0.20568877355 + 0.205725846175 + 0.205762925308 + 0.20580001095 + 0.205837103103 + 0.205874201766 + 0.205911306943 + 0.205948418633 + 0.205985536838 + 0.206022661559 + 0.206059792797 + 0.206096930553 + 0.206134074829 + 0.206171225625 + 0.206208382943 + 0.206245546784 + 0.206282717149 + 0.20631989404 + 0.206357077456 + 0.2063942674 + 0.206431463873 + 0.206468666875 + 0.206505876408 + 0.206543092473 + 0.206580315072 + 0.206617544205 + 0.206654779873 + 0.206692022078 + 0.20672927082 + 0.206766526102 + 0.206803787924 + 0.206841056286 + 0.206878331192 + 0.20691561264 + 0.206952900634 + 0.206990195173 + 0.207027496259 + 0.207064803894 + 0.207102118077 + 0.207139438811 + 0.207176766097 + 0.207214099935 + 0.207251440327 + 0.207288787274 + 0.207326140778 + 0.207363500838 + 0.207400867457 + 0.207438240636 + 0.207475620376 + 0.207513006677 + 0.207550399541 + 0.20758779897 + 0.207625204964 + 0.207662617525 + 0.207700036653 + 0.20773746235 + 0.207774894617 + 0.207812333455 + 0.207849778866 + 0.20788723085 + 0.207924689409 + 0.207962154543 + 0.207999626254 + 0.208037104544 + 0.208074589412 + 0.208112080861 + 0.208149578891 + 0.208187083505 + 0.208224594702 + 0.208262112484 + 0.208299636852 + 0.208337167807 + 0.208374705351 + 0.208412249485 + 0.208449800209 + 0.208487357525 + 0.208524921434 + 0.208562491938 + 0.208600069037 + 0.208637652733 + 0.208675243026 + 0.208712839918 + 0.20875044341 + 0.208788053504 + 0.2088256702 + 0.208863293499 + 0.208900923403 + 0.208938559913 + 0.208976203029 + 0.209013852754 + 0.209051509089 + 0.209089172033 + 0.20912684159 + 0.209164517759 + 0.209202200542 + 0.20923988994 + 0.209277585955 + 0.209315288587 + 0.209352997837 + 0.209390713708 + 0.209428436199 + 0.209466165312 + 0.209503901049 + 0.20954164341 + 0.209579392397 + 0.20961714801 + 0.209654910251 + 0.209692679122 + 0.209730454622 + 0.209768236754 + 0.209806025519 + 0.209843820917 + 0.20988162295 + 0.209919431619 + 0.209957246926 + 0.20999506887 + 0.210032897455 + 0.21007073268 + 0.210108574547 + 0.210146423057 + 0.210184278211 + 0.21022214001 + 0.210260008457 + 0.21029788355 + 0.210335765293 + 0.210373653686 + 0.21041154873 + 0.210449450426 + 0.210487358776 + 0.210525273781 + 0.210563195441 + 0.210601123759 + 0.210639058734 + 0.21067700037 + 0.210714948665 + 0.210752903623 + 0.210790865243 + 0.210828833527 + 0.210866808477 + 0.210904790093 + 0.210942778377 + 0.210980773329 + 0.211018774951 + 0.211056783245 + 0.211094798211 + 0.21113281985 + 0.211170848163 + 0.211208883153 + 0.211246924819 + 0.211284973164 + 0.211323028188 + 0.211361089892 + 0.211399158278 + 0.211437233347 + 0.211475315099 + 0.211513403537 + 0.211551498661 + 0.211589600473 + 0.211627708973 + 0.211665824164 + 0.211703946045 + 0.211742074619 + 0.211780209885 + 0.211818351847 + 0.211856500504 + 0.211894655858 + 0.21193281791 + 0.211970986661 + 0.212009162113 + 0.212047344267 + 0.212085533123 + 0.212123728683 + 0.212161930948 + 0.21220013992 + 0.212238355599 + 0.212276577987 + 0.212314807084 + 0.212353042893 + 0.212391285414 + 0.212429534648 + 0.212467790597 + 0.212506053261 + 0.212544322643 + 0.212582598742 + 0.212620881561 + 0.2126591711 + 0.212697467361 + 0.212735770345 + 0.212774080052 + 0.212812396485 + 0.212850719644 + 0.212889049531 + 0.212927386147 + 0.212965729492 + 0.213004079568 + 0.213042436377 + 0.213080799919 + 0.213119170196 + 0.213157547209 + 0.213195930958 + 0.213234321446 + 0.213272718673 + 0.213311122641 + 0.21334953335 + 0.213387950802 + 0.213426374998 + 0.21346480594 + 0.213503243628 + 0.213541688064 + 0.213580139248 + 0.213618597183 + 0.213657061869 + 0.213695533307 + 0.213734011498 + 0.213772496445 + 0.213810988147 + 0.213849486607 + 0.213887991825 + 0.213926503802 + 0.21396502254 + 0.21400354804 + 0.214042080303 + 0.21408061933 + 0.214119165122 + 0.214157717682 + 0.214196277009 + 0.214234843105 + 0.214273415971 + 0.214311995608 + 0.214350582018 + 0.214389175202 + 0.214427775161 + 0.214466381896 + 0.214504995408 + 0.214543615699 + 0.214582242769 + 0.214620876621 + 0.214659517254 + 0.214698164671 + 0.214736818872 + 0.214775479859 + 0.214814147632 + 0.214852822194 + 0.214891503545 + 0.214930191686 + 0.214968886619 + 0.215007588345 + 0.215046296865 + 0.215085012179 + 0.215123734291 + 0.215162463199 + 0.215201198907 + 0.215239941415 + 0.215278690723 + 0.215317446834 + 0.215356209749 + 0.215394979468 + 0.215433755993 + 0.215472539326 + 0.215511329467 + 0.215550126417 + 0.215588930178 + 0.21562774075 + 0.215666558136 + 0.215705382337 + 0.215744213352 + 0.215783051185 + 0.215821895835 + 0.215860747304 + 0.215899605594 + 0.215938470705 + 0.215977342639 + 0.216016221396 + 0.216055106979 + 0.216093999388 + 0.216132898625 + 0.21617180469 + 0.216210717585 + 0.216249637311 + 0.216288563869 + 0.216327497261 + 0.216366437487 + 0.21640538455 + 0.216444338449 + 0.216483299187 + 0.216522266764 + 0.216561241181 + 0.216600222441 + 0.216639210544 + 0.216678205491 + 0.216717207283 + 0.216756215922 + 0.216795231409 + 0.216834253745 + 0.216873282931 + 0.216912318969 + 0.216951361859 + 0.216990411604 + 0.217029468203 + 0.217068531659 + 0.217107601972 + 0.217146679144 + 0.217185763176 + 0.217224854068 + 0.217263951824 + 0.217303056442 + 0.217342167926 + 0.217381286275 + 0.217420411492 + 0.217459543576 + 0.217498682531 + 0.217537828356 + 0.217576981053 + 0.217616140623 + 0.217655307068 + 0.217694480388 + 0.217733660585 + 0.21777284766 + 0.217812041614 + 0.217851242448 + 0.217890450164 + 0.217929664763 + 0.217968886246 + 0.218008114615 + 0.218047349869 + 0.218086592011 + 0.218125841043 + 0.218165096964 + 0.218204359776 + 0.218243629481 + 0.21828290608 + 0.218322189574 + 0.218361479963 + 0.21840077725 + 0.218440081436 + 0.218479392521 + 0.218518710508 + 0.218558035396 + 0.218597367188 + 0.218636705884 + 0.218676051487 + 0.218715403996 + 0.218754763414 + 0.21879412974 + 0.218833502978 + 0.218872883128 + 0.21891227019 + 0.218951664167 + 0.21899106506 + 0.219030472869 + 0.219069887596 + 0.219109309242 + 0.219148737809 + 0.219188173297 + 0.219227615708 + 0.219267065043 + 0.219306521303 + 0.21934598449 + 0.219385454604 + 0.219424931648 + 0.219464415621 + 0.219503906526 + 0.219543404363 + 0.219582909134 + 0.21962242084 + 0.219661939482 + 0.219701465061 + 0.219740997579 + 0.219780537037 + 0.219820083436 + 0.219859636778 + 0.219899197062 + 0.219938764292 + 0.219978338467 + 0.22001791959 + 0.220057507661 + 0.220097102681 + 0.220136704652 + 0.220176313576 + 0.220215929452 + 0.220255552283 + 0.22029518207 + 0.220334818814 + 0.220374462516 + 0.220414113177 + 0.220453770799 + 0.220493435382 + 0.220533106929 + 0.220572785439 + 0.220612470916 + 0.220652163358 + 0.220691862769 + 0.220731569149 + 0.2207712825 + 0.220811002822 + 0.220850730116 + 0.220890464385 + 0.220930205629 + 0.220969953849 + 0.221009709048 + 0.221049471225 + 0.221089240382 + 0.221129016521 + 0.221168799642 + 0.221208589747 + 0.221248386837 + 0.221288190913 + 0.221328001977 + 0.22136782003 + 0.221407645072 + 0.221447477106 + 0.221487316132 + 0.221527162152 + 0.221567015167 + 0.221606875178 + 0.221646742186 + 0.221686616193 + 0.221726497199 + 0.221766385207 + 0.221806280216 + 0.221846182229 + 0.221886091247 + 0.221926007271 + 0.221965930302 + 0.222005860342 + 0.222045797391 + 0.22208574145 + 0.222125692522 + 0.222165650607 + 0.222205615707 + 0.222245587823 + 0.222285566955 + 0.222325553106 + 0.222365546276 + 0.222405546467 + 0.22244555368 + 0.222485567916 + 0.222525589177 + 0.222565617463 + 0.222605652776 + 0.222645695117 + 0.222685744487 + 0.222725800888 + 0.222765864321 + 0.222805934787 + 0.222846012287 + 0.222886096822 + 0.222926188395 + 0.222966287005 + 0.223006392655 + 0.223046505345 + 0.223086625076 + 0.223126751851 + 0.223166885669 + 0.223207026534 + 0.223247174444 + 0.223287329403 + 0.223327491411 + 0.223367660469 + 0.223407836578 + 0.223448019741 + 0.223488209957 + 0.223528407229 + 0.223568611557 + 0.223608822943 + 0.223649041388 + 0.223689266894 + 0.223729499461 + 0.22376973909 + 0.223809985784 + 0.223850239542 + 0.223890500368 + 0.22393076826 + 0.223971043222 + 0.224011325254 + 0.224051614358 + 0.224091910534 + 0.224132213784 + 0.224172524109 + 0.22421284151 + 0.224253165989 + 0.224293497547 + 0.224333836185 + 0.224374181904 + 0.224414534706 + 0.224454894592 + 0.224495261563 + 0.22453563562 + 0.224576016765 + 0.224616404999 + 0.224656800322 + 0.224697202737 + 0.224737612245 + 0.224778028846 + 0.224818452542 + 0.224858883335 + 0.224899321225 + 0.224939766214 + 0.224980218303 + 0.225020677493 + 0.225061143785 + 0.225101617182 + 0.225142097683 + 0.225182585291 + 0.225223080006 + 0.22526358183 + 0.225304090764 + 0.225344606809 + 0.225385129967 + 0.225425660238 + 0.225466197624 + 0.225506742127 + 0.225547293747 + 0.225587852486 + 0.225628418345 + 0.225668991325 + 0.225709571427 + 0.225750158654 + 0.225790753005 + 0.225831354482 + 0.225871963087 + 0.225912578821 + 0.225953201685 + 0.22599383168 + 0.226034468807 + 0.226075113069 + 0.226115764465 + 0.226156422997 + 0.226197088667 + 0.226237761476 + 0.226278441425 + 0.226319128515 + 0.226359822747 + 0.226400524123 + 0.226441232645 + 0.226481948312 + 0.226522671128 + 0.226563401091 + 0.226604138205 + 0.226644882471 + 0.226685633888 + 0.22672639246 + 0.226767158187 + 0.22680793107 + 0.22684871111 + 0.22688949831 + 0.226930292669 + 0.22697109419 + 0.227011902874 + 0.227052718721 + 0.227093541733 + 0.227134371912 + 0.227175209259 + 0.227216053774 + 0.22725690546 + 0.227297764317 + 0.227338630346 + 0.22737950355 + 0.227420383928 + 0.227461271484 + 0.227502166217 + 0.227543068128 + 0.22758397722 + 0.227624893494 + 0.22766581695 + 0.227706747591 + 0.227747685416 + 0.227788630428 + 0.227829582628 + 0.227870542017 + 0.227911508597 + 0.227952482368 + 0.227993463331 + 0.228034451489 + 0.228075446842 + 0.228116449392 + 0.22815745914 + 0.228198476087 + 0.228239500234 + 0.228280531583 + 0.228321570135 + 0.228362615891 + 0.228403668853 + 0.228444729021 + 0.228485796398 + 0.228526870983 + 0.22856795278 + 0.228609041788 + 0.228650138009 + 0.228691241444 + 0.228732352095 + 0.228773469963 + 0.228814595049 + 0.228855727355 + 0.228896866881 + 0.228938013629 + 0.2289791676 + 0.229020328796 + 0.229061497218 + 0.229102672866 + 0.229143855743 + 0.229185045849 + 0.229226243187 + 0.229267447756 + 0.229308659559 + 0.229349878596 + 0.229391104869 + 0.229432338379 + 0.229473579128 + 0.229514827117 + 0.229556082346 + 0.229597344818 + 0.229638614533 + 0.229679891493 + 0.229721175699 + 0.229762467153 + 0.229803765855 + 0.229845071807 + 0.22988638501 + 0.229927705465 + 0.229969033175 + 0.230010368139 + 0.230051710359 + 0.230093059837 + 0.230134416574 + 0.230175780571 + 0.230217151829 + 0.23025853035 + 0.230299916135 + 0.230341309185 + 0.230382709501 + 0.230424117085 + 0.230465531938 + 0.230506954062 + 0.230548383457 + 0.230589820124 + 0.230631264066 + 0.230672715283 + 0.230714173777 + 0.230755639549 + 0.2307971126 + 0.230838592932 + 0.230880080545 + 0.230921575441 + 0.230963077622 + 0.231004587088 + 0.231046103841 + 0.231087627883 + 0.231129159213 + 0.231170697835 + 0.231212243748 + 0.231253796955 + 0.231295357456 + 0.231336925253 + 0.231378500348 + 0.23142008274 + 0.231461672433 + 0.231503269426 + 0.231544873722 + 0.231586485321 + 0.231628104225 + 0.231669730435 + 0.231711363952 + 0.231753004778 + 0.231794652914 + 0.231836308362 + 0.231877971121 + 0.231919641195 + 0.231961318584 + 0.232003003289 + 0.232044695311 + 0.232086394653 + 0.232128101315 + 0.232169815298 + 0.232211536604 + 0.232253265234 + 0.23229500119 + 0.232336744472 + 0.232378495082 + 0.232420253021 + 0.232462018291 + 0.232503790892 + 0.232545570827 + 0.232587358096 + 0.232629152701 + 0.232670954642 + 0.232712763922 + 0.232754580542 + 0.232796404502 + 0.232838235804 + 0.23288007445 + 0.23292192044 + 0.232963773776 + 0.23300563446 + 0.233047502492 + 0.233089377874 + 0.233131260607 + 0.233173150692 + 0.233215048131 + 0.233256952925 + 0.233298865076 + 0.233340784584 + 0.23338271145 + 0.233424645677 + 0.233466587266 + 0.233508536217 + 0.233550492532 + 0.233592456213 + 0.23363442726 + 0.233676405675 + 0.233718391459 + 0.233760384614 + 0.233802385141 + 0.23384439304 + 0.233886408314 + 0.233928430964 + 0.233970460991 + 0.234012498396 + 0.23405454318 + 0.234096595346 + 0.234138654893 + 0.234180721824 + 0.23422279614 + 0.234264877842 + 0.234306966931 + 0.234349063408 + 0.234391167276 + 0.234433278535 + 0.234475397186 + 0.234517523232 + 0.234559656672 + 0.234601797509 + 0.234643945743 + 0.234686101377 + 0.234728264411 + 0.234770434846 + 0.234812612685 + 0.234854797927 + 0.234896990575 + 0.23493919063 + 0.234981398093 + 0.235023612966 + 0.235065835249 + 0.235108064944 + 0.235150302053 + 0.235192546576 + 0.235234798515 + 0.235277057871 + 0.235319324646 + 0.23536159884 + 0.235403880456 + 0.235446169494 + 0.235488465956 + 0.235530769843 + 0.235573081157 + 0.235615399898 + 0.235657726067 + 0.235700059668 + 0.235742400699 + 0.235784749164 + 0.235827105063 + 0.235869468397 + 0.235911839168 + 0.235954217377 + 0.235996603025 + 0.236038996115 + 0.236081396646 + 0.23612380462 + 0.236166220039 + 0.236208642904 + 0.236251073217 + 0.236293510977 + 0.236335956188 + 0.23637840885 + 0.236420868964 + 0.236463336532 + 0.236505811555 + 0.236548294035 + 0.236590783972 + 0.236633281368 + 0.236675786224 + 0.236718298542 + 0.236760818323 + 0.236803345569 + 0.23684588028 + 0.236888422457 + 0.236930972103 + 0.236973529218 + 0.237016093805 + 0.237058665863 + 0.237101245394 + 0.237143832401 + 0.237186426883 + 0.237229028843 + 0.237271638282 + 0.2373142552 + 0.2373568796 + 0.237399511482 + 0.237442150848 + 0.2374847977 + 0.237527452038 + 0.237570113864 + 0.237612783179 + 0.237655459984 + 0.237698144282 + 0.237740836072 + 0.237783535357 + 0.237826242138 + 0.237868956416 + 0.237911678192 + 0.237954407468 + 0.237997144245 + 0.238039888524 + 0.238082640307 + 0.238125399595 + 0.238168166389 + 0.23821094069 + 0.238253722501 + 0.238296511822 + 0.238339308654 + 0.238382113 + 0.238424924859 + 0.238467744234 + 0.238510571126 + 0.238553405536 + 0.238596247466 + 0.238639096916 + 0.238681953888 + 0.238724818384 + 0.238767690405 + 0.238810569952 + 0.238853457026 + 0.238896351628 + 0.238939253761 + 0.238982163426 + 0.239025080622 + 0.239068005353 + 0.23911093762 + 0.239153877422 + 0.239196824763 + 0.239239779643 + 0.239282742064 + 0.239325712027 + 0.239368689533 + 0.239411674584 + 0.23945466718 + 0.239497667324 + 0.239540675016 + 0.239583690258 + 0.239626713052 + 0.239669743398 + 0.239712781298 + 0.239755826753 + 0.239798879764 + 0.239841940334 + 0.239885008462 + 0.239928084151 + 0.239971167402 + 0.240014258216 + 0.240057356595 + 0.240100462539 + 0.240143576051 + 0.240186697131 + 0.240229825781 + 0.240272962002 + 0.240316105795 + 0.240359257162 + 0.240402416104 + 0.240445582623 + 0.24048875672 + 0.240531938395 + 0.240575127651 + 0.240618324489 + 0.24066152891 + 0.240704740915 + 0.240747960506 + 0.240791187685 + 0.240834422451 + 0.240877664808 + 0.240920914755 + 0.240964172295 + 0.241007437428 + 0.241050710157 + 0.241093990482 + 0.241137278405 + 0.241180573927 + 0.24122387705 + 0.241267187774 + 0.241310506101 + 0.241353832033 + 0.24139716557 + 0.241440506715 + 0.241483855468 + 0.24152721183 + 0.241570575804 + 0.24161394739 + 0.24165732659 + 0.241700713406 + 0.241744107837 + 0.241787509887 + 0.241830919555 + 0.241874336844 + 0.241917761755 + 0.241961194289 + 0.242004634447 + 0.242048082231 + 0.242091537643 + 0.242135000682 + 0.242178471352 + 0.242221949653 + 0.242265435586 + 0.242308929153 + 0.242352430356 + 0.242395939195 + 0.242439455671 + 0.242482979787 + 0.242526511544 + 0.242570050942 + 0.242613597984 + 0.24265715267 + 0.242700715002 + 0.242744284982 + 0.24278786261 + 0.242831447888 + 0.242875040817 + 0.242918641399 + 0.242962249635 + 0.243005865526 + 0.243049489074 + 0.243093120279 + 0.243136759145 + 0.24318040567 + 0.243224059858 + 0.24326772171 + 0.243311391226 + 0.243355068408 + 0.243398753257 + 0.243442445775 + 0.243486145964 + 0.243529853824 + 0.243573569356 + 0.243617292563 + 0.243661023446 + 0.243704762005 + 0.243748508242 + 0.243792262159 + 0.243836023757 + 0.243879793037 + 0.24392357 + 0.243967354649 + 0.244011146984 + 0.244054947006 + 0.244098754718 + 0.24414257012 + 0.244186393213 + 0.244230224 + 0.24427406248 + 0.244317908657 + 0.244361762531 + 0.244405624103 + 0.244449493375 + 0.244493370348 + 0.244537255024 + 0.244581147403 + 0.244625047488 + 0.244668955279 + 0.244712870778 + 0.244756793986 + 0.244800724905 + 0.244844663536 + 0.244888609881 + 0.244932563939 + 0.244976525714 + 0.245020495207 + 0.245064472418 + 0.245108457349 + 0.245152450002 + 0.245196450377 + 0.245240458476 + 0.245284474302 + 0.245328497853 + 0.245372529134 + 0.245416568143 + 0.245460614884 + 0.245504669357 + 0.245548731564 + 0.245592801505 + 0.245636879183 + 0.245680964599 + 0.245725057754 + 0.245769158649 + 0.245813267286 + 0.245857383666 + 0.245901507791 + 0.245945639662 + 0.24598977928 + 0.246033926646 + 0.246078081763 + 0.24612224463 + 0.246166415251 + 0.246210593625 + 0.246254779755 + 0.246298973642 + 0.246343175287 + 0.246387384691 + 0.246431601856 + 0.246475826783 + 0.246520059474 + 0.24656429993 + 0.246608548152 + 0.246652804142 + 0.246697067901 + 0.24674133943 + 0.246785618731 + 0.246829905805 + 0.246874200654 + 0.246918503278 + 0.24696281368 + 0.24700713186 + 0.24705145782 + 0.247095791562 + 0.247140133086 + 0.247184482394 + 0.247228839488 + 0.247273204368 + 0.247317577037 + 0.247361957495 + 0.247406345744 + 0.247450741785 + 0.24749514562 + 0.24753955725 + 0.247583976676 + 0.2476284039 + 0.247672838923 + 0.247717281746 + 0.247761732371 + 0.2478061908 + 0.247850657033 + 0.247895131072 + 0.247939612918 + 0.247984102573 + 0.248028600038 + 0.248073105314 + 0.248117618404 + 0.248162139307 + 0.248206668026 + 0.248251204562 + 0.248295748916 + 0.248340301089 + 0.248384861084 + 0.248429428901 + 0.248474004542 + 0.248518588008 + 0.248563179301 + 0.248607778421 + 0.248652385371 + 0.248697000151 + 0.248741622764 + 0.24878625321 + 0.24883089149 + 0.248875537607 + 0.248920191561 + 0.248964853354 + 0.249009522987 + 0.249054200462 + 0.24909888578 + 0.249143578943 + 0.249188279951 + 0.249232988806 + 0.24927770551 + 0.249322430064 + 0.249367162469 + 0.249411902727 + 0.249456650838 + 0.249501406806 + 0.24954617063 + 0.249590942312 + 0.249635721854 + 0.249680509256 + 0.249725304521 + 0.24977010765 + 0.249814918644 + 0.249859737504 + 0.249904564232 + 0.249949398829 + 0.249994241297 + 0.250039091637 + 0.25008394985 + 0.250128815938 + 0.250173689902 + 0.250218571744 + 0.250263461464 + 0.250308359065 + 0.250353264547 + 0.250398177913 + 0.250443099163 + 0.250488028299 + 0.250532965321 + 0.250577910233 + 0.250622863034 + 0.250667823727 + 0.250712792313 + 0.250757768793 + 0.250802753168 + 0.25084774544 + 0.25089274561 + 0.25093775368 + 0.250982769651 + 0.251027793525 + 0.251072825302 + 0.251117864985 + 0.251162912574 + 0.251207968071 + 0.251253031478 + 0.251298102795 + 0.251343182025 + 0.251388269168 + 0.251433364226 + 0.2514784672 + 0.251523578092 + 0.251568696903 + 0.251613823635 + 0.251658958288 + 0.251704100865 + 0.251749251367 + 0.251794409794 + 0.251839576149 + 0.251884750433 + 0.251929932647 + 0.251975122793 + 0.252020320871 + 0.252065526884 + 0.252110740833 + 0.252155962719 + 0.252201192544 + 0.252246430309 + 0.252291676015 + 0.252336929664 + 0.252382191257 + 0.252427460795 + 0.252472738281 + 0.252518023714 + 0.252563317098 + 0.252608618433 + 0.25265392772 + 0.252699244961 + 0.252744570158 + 0.252789903311 + 0.252835244422 + 0.252880593493 + 0.252925950525 + 0.252971315519 + 0.253016688477 + 0.2530620694 + 0.25310745829 + 0.253152855147 + 0.253198259974 + 0.253243672771 + 0.253289093541 + 0.253334522283 + 0.253379959001 + 0.253425403696 + 0.253470856367 + 0.253516317018 + 0.25356178565 + 0.253607262263 + 0.25365274686 + 0.253698239442 + 0.253743740009 + 0.253789248564 + 0.253834765108 + 0.253880289642 + 0.253925822168 + 0.253971362688 + 0.254016911201 + 0.254062467711 + 0.254108032218 + 0.254153604723 + 0.254199185229 + 0.254244773736 + 0.254290370247 + 0.254335974761 + 0.254381587282 + 0.254427207809 + 0.254472836345 + 0.254518472891 + 0.254564117449 + 0.254609770019 + 0.254655430604 + 0.254701099204 + 0.254746775821 + 0.254792460456 + 0.254838153112 + 0.254883853788 + 0.254929562487 + 0.254975279211 + 0.255021003959 + 0.255066736735 + 0.255112477539 + 0.255158226372 + 0.255203983237 + 0.255249748134 + 0.255295521065 + 0.255341302031 + 0.255387091035 + 0.255432888076 + 0.255478693157 + 0.255524506278 + 0.255570327443 + 0.25561615665 + 0.255661993904 + 0.255707839203 + 0.255753692551 + 0.255799553948 + 0.255845423397 + 0.255891300897 + 0.255937186451 + 0.25598308006 + 0.256028981726 + 0.256074891449 + 0.256120809232 + 0.256166735076 + 0.256212668982 + 0.256258610951 + 0.256304560985 + 0.256350519086 + 0.256396485255 + 0.256442459493 + 0.256488441801 + 0.256534432182 + 0.256580430636 + 0.256626437165 + 0.256672451771 + 0.256718474454 + 0.256764505216 + 0.256810544059 + 0.256856590984 + 0.256902645992 + 0.256948709085 + 0.256994780265 + 0.257040859532 + 0.257086946888 + 0.257133042335 + 0.257179145873 + 0.257225257505 + 0.257271377232 + 0.257317505055 + 0.257363640976 + 0.257409784996 + 0.257455937116 + 0.257502097338 + 0.257548265663 + 0.257594442093 + 0.257640626629 + 0.257686819273 + 0.257733020026 + 0.257779228889 + 0.257825445865 + 0.257871670953 + 0.257917904156 + 0.257964145475 + 0.258010394912 + 0.258056652468 + 0.258102918144 + 0.258149191942 + 0.258195473863 + 0.258241763909 + 0.258288062081 + 0.25833436838 + 0.258380682809 + 0.258427005368 + 0.258473336058 + 0.258519674882 + 0.258566021841 + 0.258612376936 + 0.258658740168 + 0.258705111539 + 0.25875149105 + 0.258797878704 + 0.2588442745 + 0.258890678442 + 0.258937090529 + 0.258983510764 + 0.259029939148 + 0.259076375682 + 0.259122820368 + 0.259169273207 + 0.259215734201 + 0.259262203351 + 0.259308680659 + 0.259355166125 + 0.259401659752 + 0.259448161541 + 0.259494671493 + 0.25954118961 + 0.259587715893 + 0.259634250343 + 0.259680792963 + 0.259727343753 + 0.259773902715 + 0.25982046985 + 0.25986704516 + 0.259913628646 + 0.25996022031 + 0.260006820152 + 0.260053428176 + 0.260100044381 + 0.260146668769 + 0.260193301343 + 0.260239942102 + 0.260286591049 + 0.260333248186 + 0.260379913512 + 0.260426587031 + 0.260473268744 + 0.260519958651 + 0.260566656754 + 0.260613363055 + 0.260660077556 + 0.260706800257 + 0.26075353116 + 0.260800270266 + 0.260847017578 + 0.260893773095 + 0.260940536821 + 0.260987308756 + 0.261034088901 + 0.261080877259 + 0.26112767383 + 0.261174478617 + 0.26122129162 + 0.26126811284 + 0.26131494228 + 0.261361779941 + 0.261408625824 + 0.261455479931 + 0.261502342263 + 0.261549212821 + 0.261596091608 + 0.261642978624 + 0.26168987387 + 0.26173677735 + 0.261783689062 + 0.261830609011 + 0.261877537195 + 0.261924473618 + 0.261971418281 + 0.262018371185 + 0.262065332331 + 0.262112301721 + 0.262159279356 + 0.262206265238 + 0.262253259368 + 0.262300261748 + 0.26234727238 + 0.262394291263 + 0.262441318401 + 0.262488353795 + 0.262535397445 + 0.262582449354 + 0.262629509522 + 0.262676577952 + 0.262723654645 + 0.262770739601 + 0.262817832824 + 0.262864934313 + 0.262912044072 + 0.2629591621 + 0.263006288399 + 0.263053422972 + 0.263100565818 + 0.263147716941 + 0.263194876341 + 0.26324204402 + 0.263289219978 + 0.263336404219 + 0.263383596742 + 0.26343079755 + 0.263478006644 + 0.263525224025 + 0.263572449696 + 0.263619683656 + 0.263666925909 + 0.263714176455 + 0.263761435295 + 0.263808702432 + 0.263855977866 + 0.263903261599 + 0.263950553633 + 0.263997853969 + 0.264045162608 + 0.264092479553 + 0.264139804803 + 0.264187138362 + 0.264234480229 + 0.264281830408 + 0.264329188899 + 0.264376555703 + 0.264423930822 + 0.264471314258 + 0.264518706012 + 0.264566106086 + 0.264613514481 + 0.264660931198 + 0.264708356239 + 0.264755789605 + 0.264803231298 + 0.264850681319 + 0.26489813967 + 0.264945606352 + 0.264993081367 + 0.265040564716 + 0.265088056401 + 0.265135556423 + 0.265183064783 + 0.265230581483 + 0.265278106525 + 0.265325639909 + 0.265373181638 + 0.265420731713 + 0.265468290135 + 0.265515856905 + 0.265563432026 + 0.265611015499 + 0.265658607325 + 0.265706207505 + 0.265753816042 + 0.265801432936 + 0.265849058189 + 0.265896691803 + 0.265944333778 + 0.265991984117 + 0.266039642821 + 0.266087309892 + 0.26613498533 + 0.266182669137 + 0.266230361315 + 0.266278061866 + 0.26632577079 + 0.266373488089 + 0.266421213765 + 0.266468947819 + 0.266516690253 + 0.266564441068 + 0.266612200265 + 0.266659967847 + 0.266707743813 + 0.266755528167 + 0.266803320909 + 0.266851122041 + 0.266898931565 + 0.266946749481 + 0.266994575792 + 0.267042410498 + 0.267090253602 + 0.267138105104 + 0.267185965007 + 0.267233833311 + 0.267281710019 + 0.267329595131 + 0.267377488649 + 0.267425390575 + 0.26747330091 + 0.267521219655 + 0.267569146813 + 0.267617082383 + 0.267665026369 + 0.267712978772 + 0.267760939592 + 0.267808908832 + 0.267856886492 + 0.267904872575 + 0.267952867082 + 0.268000870014 + 0.268048881373 + 0.26809690116 + 0.268144929377 + 0.268192966025 + 0.268241011106 + 0.268289064621 + 0.268337126572 + 0.268385196959 + 0.268433275786 + 0.268481363053 + 0.268529458761 + 0.268577562912 + 0.268625675508 + 0.26867379655 + 0.268721926039 + 0.268770063978 + 0.268818210367 + 0.268866365208 + 0.268914528502 + 0.268962700251 + 0.269010880457 + 0.269059069121 + 0.269107266244 + 0.269155471828 + 0.269203685874 + 0.269251908384 + 0.26930013936 + 0.269348378802 + 0.269396626713 + 0.269444883094 + 0.269493147945 + 0.26954142127 + 0.269589703069 + 0.269637993343 + 0.269686292095 + 0.269734599326 + 0.269782915036 + 0.269831239229 + 0.269879571904 + 0.269927913065 + 0.269976262711 + 0.270024620845 + 0.270072987469 + 0.270121362583 + 0.270169746189 + 0.270218138288 + 0.270266538883 + 0.270314947975 + 0.270363365564 + 0.270411791653 + 0.270460226243 + 0.270508669336 + 0.270557120933 + 0.270605581035 + 0.270654049645 + 0.270702526763 + 0.270751012391 + 0.27079950653 + 0.270848009183 + 0.27089652035 + 0.270945040033 + 0.270993568234 + 0.271042104953 + 0.271090650193 + 0.271139203956 + 0.271187766241 + 0.271236337052 + 0.271284916389 + 0.271333504254 + 0.271382100648 + 0.271430705574 + 0.271479319032 + 0.271527941024 + 0.271576571551 + 0.271625210616 + 0.271673858219 + 0.271722514361 + 0.271771179046 + 0.271819852273 + 0.271868534045 + 0.271917224362 + 0.271965923228 + 0.272014630642 + 0.272063346606 + 0.272112071123 + 0.272160804193 + 0.272209545818 + 0.272258295999 + 0.272307054739 + 0.272355822038 + 0.272404597897 + 0.27245338232 + 0.272502175306 + 0.272550976858 + 0.272599786977 + 0.272648605664 + 0.272697432922 + 0.27274626875 + 0.272795113152 + 0.272843966129 + 0.272892827681 + 0.272941697811 + 0.27299057652 + 0.273039463809 + 0.273088359681 + 0.273137264136 + 0.273186177176 + 0.273235098803 + 0.273284029017 + 0.273332967822 + 0.273381915217 + 0.273430871205 + 0.273479835787 + 0.273528808965 + 0.27357779074 + 0.273626781113 + 0.273675780087 + 0.273724787662 + 0.27377380384 + 0.273822828624 + 0.273871862013 + 0.27392090401 + 0.273969954616 + 0.274019013833 + 0.274068081662 + 0.274117158105 + 0.274166243163 + 0.274215336838 + 0.274264439131 + 0.274313550044 + 0.274362669578 + 0.274411797735 + 0.274460934516 + 0.274510079923 + 0.274559233958 + 0.274608396621 + 0.274657567915 + 0.274706747841 + 0.2747559364 + 0.274805133594 + 0.274854339424 + 0.274903553893 + 0.274952777 + 0.275002008749 + 0.275051249141 + 0.275100498176 + 0.275149755857 + 0.275199022185 + 0.275248297162 + 0.275297580789 + 0.275346873067 + 0.275396173998 + 0.275445483585 + 0.275494801827 + 0.275544128727 + 0.275593464286 + 0.275642808506 + 0.275692161388 + 0.275741522934 + 0.275790893146 + 0.275840272024 + 0.27588965957 + 0.275939055786 + 0.275988460674 + 0.276037874235 + 0.27608729647 + 0.276136727381 + 0.276186166969 + 0.276235615237 + 0.276285072185 + 0.276334537815 + 0.276384012128 + 0.276433495127 + 0.276482986812 + 0.276532487185 + 0.276581996249 + 0.276631514003 + 0.27668104045 + 0.276730575591 + 0.276780119428 + 0.276829671963 + 0.276879233196 + 0.276928803129 + 0.276978381765 + 0.277027969103 + 0.277077565147 + 0.277127169897 + 0.277176783355 + 0.277226405523 + 0.277276036402 + 0.277325675993 + 0.277375324299 + 0.27742498132 + 0.277474647058 + 0.277524321515 + 0.277574004692 + 0.277623696591 + 0.277673397213 + 0.27772310656 + 0.277772824633 + 0.277822551435 + 0.277872286965 + 0.277922031227 + 0.277971784221 + 0.278021545949 + 0.278071316413 + 0.278121095614 + 0.278170883553 + 0.278220680233 + 0.278270485654 + 0.278320299818 + 0.278370122727 + 0.278419954383 + 0.278469794786 + 0.278519643939 + 0.278569501842 + 0.278619368498 + 0.278669243908 + 0.278719128074 + 0.278769020996 + 0.278818922677 + 0.278868833118 + 0.278918752321 + 0.278968680287 + 0.279018617018 + 0.279068562515 + 0.27911851678 + 0.279168479814 + 0.279218451619 + 0.279268432197 + 0.279318421548 + 0.279368419675 + 0.279418426579 + 0.279468442262 + 0.279518466724 + 0.279568499969 + 0.279618541996 + 0.279668592809 + 0.279718652407 + 0.279768720794 + 0.27981879797 + 0.279868883937 + 0.279918978696 + 0.279969082249 + 0.280019194598 + 0.280069315744 + 0.280119445689 + 0.280169584433 + 0.28021973198 + 0.28026988833 + 0.280320053484 + 0.280370227445 + 0.280420410214 + 0.280470601792 + 0.280520802182 + 0.280571011384 + 0.2806212294 + 0.280671456231 + 0.28072169188 + 0.280771936348 + 0.280822189636 + 0.280872451745 + 0.280922722678 + 0.280973002437 + 0.281023291021 + 0.281073588434 + 0.281123894676 + 0.281174209749 + 0.281224533655 + 0.281274866395 + 0.281325207971 + 0.281375558385 + 0.281425917637 + 0.28147628573 + 0.281526662664 + 0.281577048442 + 0.281627443066 + 0.281677846536 + 0.281728258854 + 0.281778680022 + 0.281829110041 + 0.281879548913 + 0.28192999664 + 0.281980453222 + 0.282030918662 + 0.282081392961 + 0.282131876121 + 0.282182368143 + 0.282232869029 + 0.28228337878 + 0.282333897398 + 0.282384424884 + 0.28243496124 + 0.282485506468 + 0.282536060569 + 0.282586623544 + 0.282637195396 + 0.282687776125 + 0.282738365734 + 0.282788964224 + 0.282839571596 + 0.282890187852 + 0.282940812994 + 0.282991447023 + 0.28304208994 + 0.283092741748 + 0.283143402447 + 0.28319407204 + 0.283244750528 + 0.283295437912 + 0.283346134195 + 0.283396839377 + 0.28344755346 + 0.283498276446 + 0.283549008336 + 0.283599749132 + 0.283650498835 + 0.283701257447 + 0.28375202497 + 0.283802801405 + 0.283853586754 + 0.283904381018 + 0.283955184199 + 0.284005996298 + 0.284056817317 + 0.284107647258 + 0.284158486121 + 0.28420933391 + 0.284260190624 + 0.284311056266 + 0.284361930838 + 0.284412814341 + 0.284463706776 + 0.284514608145 + 0.284565518449 + 0.284616437691 + 0.284667365872 + 0.284718302993 + 0.284769249055 + 0.284820204061 + 0.284871168013 + 0.284922140911 + 0.284973122757 + 0.285024113552 + 0.285075113299 + 0.285126121999 + 0.285177139654 + 0.285228166264 + 0.285279201832 + 0.285330246359 + 0.285381299847 + 0.285432362297 + 0.285483433711 + 0.285534514091 + 0.285585603438 + 0.285636701753 + 0.285687809038 + 0.285738925295 + 0.285790050526 + 0.285841184731 + 0.285892327913 + 0.285943480073 + 0.285994641213 + 0.286045811333 + 0.286096990437 + 0.286148178525 + 0.286199375599 + 0.28625058166 + 0.286301796711 + 0.286353020752 + 0.286404253785 + 0.286455495812 + 0.286506746835 + 0.286558006855 + 0.286609275873 + 0.286660553891 + 0.286711840911 + 0.286763136935 + 0.286814441963 + 0.286865755998 + 0.286917079041 + 0.286968411093 + 0.287019752157 + 0.287071102233 + 0.287122461324 + 0.287173829431 + 0.287225206555 + 0.287276592699 + 0.287327987863 + 0.287379392049 + 0.28743080526 + 0.287482227495 + 0.287533658758 + 0.28758509905 + 0.287636548371 + 0.287688006725 + 0.287739474112 + 0.287790950534 + 0.287842435992 + 0.287893930489 + 0.287945434025 + 0.287996946603 + 0.288048468223 + 0.288099998888 + 0.288151538599 + 0.288203087358 + 0.288254645166 + 0.288306212025 + 0.288357787936 + 0.288409372901 + 0.288460966922 + 0.28851257 + 0.288564182137 + 0.288615803335 + 0.288667433594 + 0.288719072917 + 0.288770721305 + 0.28882237876 + 0.288874045283 + 0.288925720876 + 0.28897740554 + 0.289029099278 + 0.28908080209 + 0.289132513979 + 0.289184234945 + 0.289235964991 + 0.289287704119 + 0.289339452328 + 0.289391209622 + 0.289442976002 + 0.28949475147 + 0.289546536026 + 0.289598329673 + 0.289650132413 + 0.289701944246 + 0.289753765174 + 0.2898055952 + 0.289857434324 + 0.289909282549 + 0.289961139875 + 0.290013006305 + 0.29006488184 + 0.290116766481 + 0.290168660231 + 0.29022056309 + 0.290272475061 + 0.290324396145 + 0.290376326344 + 0.290428265658 + 0.290480214091 + 0.290532171643 + 0.290584138316 + 0.290636114112 + 0.290688099031 + 0.290740093077 + 0.29079209625 + 0.290844108552 + 0.290896129985 + 0.29094816055 + 0.291000200249 + 0.291052249083 + 0.291104307054 + 0.291156374164 + 0.291208450414 + 0.291260535806 + 0.291312630342 + 0.291364734022 + 0.29141684685 + 0.291468968825 + 0.291521099951 + 0.291573240228 + 0.291625389658 + 0.291677548242 + 0.291729715983 + 0.291781892882 + 0.291834078941 + 0.29188627416 + 0.291938478543 + 0.291990692089 + 0.292042914802 + 0.292095146682 + 0.292147387731 + 0.292199637952 + 0.292251897344 + 0.292304165911 + 0.292356443653 + 0.292408730572 + 0.292461026671 + 0.292513331949 + 0.29256564641 + 0.292617970054 + 0.292670302884 + 0.292722644901 + 0.292774996106 + 0.292827356501 + 0.292879726088 + 0.292932104869 + 0.292984492844 + 0.293036890016 + 0.293089296386 + 0.293141711956 + 0.293194136727 + 0.293246570701 + 0.29329901388 + 0.293351466266 + 0.293403927859 + 0.293456398661 + 0.293508878675 + 0.293561367902 + 0.293613866343 + 0.293666374 + 0.293718890874 + 0.293771416968 + 0.293823952282 + 0.293876496819 + 0.29392905058 + 0.293981613567 + 0.294034185781 + 0.294086767223 + 0.294139357897 + 0.294191957802 + 0.294244566942 + 0.294297185317 + 0.294349812928 + 0.294402449779 + 0.29445509587 + 0.294507751202 + 0.294560415778 + 0.2946130896 + 0.294665772668 + 0.294718464984 + 0.29477116655 + 0.294823877368 + 0.29487659744 + 0.294929326766 + 0.294982065348 + 0.295034813189 + 0.29508757029 + 0.295140336652 + 0.295193112277 + 0.295245897166 + 0.295298691322 + 0.295351494746 + 0.295404307439 + 0.295457129403 + 0.29550996064 + 0.295562801152 + 0.295615650939 + 0.295668510005 + 0.295721378349 + 0.295774255974 + 0.295827142882 + 0.295880039074 + 0.295932944552 + 0.295985859317 + 0.296038783372 + 0.296091716717 + 0.296144659354 + 0.296197611285 + 0.296250572512 + 0.296303543036 + 0.296356522859 + 0.296409511983 + 0.296462510408 + 0.296515518137 + 0.296568535172 + 0.296621561514 + 0.296674597164 + 0.296727642124 + 0.296780696397 + 0.296833759983 + 0.296886832884 + 0.296939915102 + 0.296993006639 + 0.297046107495 + 0.297099217673 + 0.297152337175 + 0.297205466002 + 0.297258604155 + 0.297311751636 + 0.297364908448 + 0.297418074591 + 0.297471250067 + 0.297524434878 + 0.297577629025 + 0.297630832511 + 0.297684045336 + 0.297737267503 + 0.297790499013 + 0.297843739867 + 0.297896990068 + 0.297950249616 + 0.298003518514 + 0.298056796764 + 0.298110084366 + 0.298163381323 + 0.298216687636 + 0.298270003307 + 0.298323328337 + 0.298376662728 + 0.298430006482 + 0.2984833596 + 0.298536722084 + 0.298590093936 + 0.298643475158 + 0.29869686575 + 0.298750265715 + 0.298803675054 + 0.298857093769 + 0.298910521861 + 0.298963959333 + 0.299017406185 + 0.29907086242 + 0.299124328039 + 0.299177803044 + 0.299231287436 + 0.299284781217 + 0.299338284389 + 0.299391796953 + 0.299445318911 + 0.299498850265 + 0.299552391016 + 0.299605941166 + 0.299659500717 + 0.29971306967 + 0.299766648027 + 0.299820235789 + 0.299873832959 + 0.299927439537 + 0.299981055526 + 0.300034680928 + 0.300088315742 + 0.300141959973 + 0.30019561362 + 0.300249276687 + 0.300302949173 + 0.300356631082 + 0.300410322415 + 0.300464023172 + 0.300517733357 + 0.300571452971 + 0.300625182015 + 0.300678920491 + 0.3007326684 + 0.300786425745 + 0.300840192527 + 0.300893968748 + 0.300947754408 + 0.301001549511 + 0.301055354057 + 0.301109168049 + 0.301162991487 + 0.301216824374 + 0.301270666712 + 0.301324518501 + 0.301378379744 + 0.301432250441 + 0.301486130596 + 0.30154002021 + 0.301593919283 + 0.301647827818 + 0.301701745817 + 0.301755673281 + 0.301809610212 + 0.301863556612 + 0.301917512481 + 0.301971477822 + 0.302025452637 + 0.302079436927 + 0.302133430694 + 0.302187433939 + 0.302241446665 + 0.302295468872 + 0.302349500562 + 0.302403541738 + 0.302457592401 + 0.302511652552 + 0.302565722193 + 0.302619801326 + 0.302673889952 + 0.302727988074 + 0.302782095692 + 0.302836212809 + 0.302890339426 + 0.302944475544 + 0.302998621167 + 0.303052776294 + 0.303106940928 + 0.30316111507 + 0.303215298723 + 0.303269491888 + 0.303323694566 + 0.303377906759 + 0.303432128469 + 0.303486359697 + 0.303540600446 + 0.303594850716 + 0.30364911051 + 0.303703379829 + 0.303757658675 + 0.303811947049 + 0.303866244954 + 0.30392055239 + 0.30397486936 + 0.304029195866 + 0.304083531908 + 0.304137877488 + 0.304192232609 + 0.304246597272 + 0.304300971479 + 0.30435535523 + 0.304409748529 + 0.304464151376 + 0.304518563773 + 0.304572985723 + 0.304627417226 + 0.304681858284 + 0.3047363089 + 0.304790769074 + 0.304845238808 + 0.304899718105 + 0.304954206965 + 0.30500870539 + 0.305063213383 + 0.305117730944 + 0.305172258076 + 0.30522679478 + 0.305281341057 + 0.305335896911 + 0.305390462341 + 0.30544503735 + 0.305499621939 + 0.305554216111 + 0.305608819867 + 0.305663433208 + 0.305718056136 + 0.305772688654 + 0.305827330762 + 0.305881982462 + 0.305936643756 + 0.305991314646 + 0.306045995133 + 0.306100685219 + 0.306155384906 + 0.306210094196 + 0.306264813089 + 0.306319541588 + 0.306374279695 + 0.306429027411 + 0.306483784737 + 0.306538551676 + 0.30659332823 + 0.306648114399 + 0.306702910186 + 0.306757715592 + 0.306812530619 + 0.306867355268 + 0.306922189542 + 0.306977033442 + 0.30703188697 + 0.307086750127 + 0.307141622915 + 0.307196505336 + 0.307251397392 + 0.307306299083 + 0.307361210413 + 0.307416131382 + 0.307471061992 + 0.307526002245 + 0.307580952143 + 0.307635911687 + 0.307690880879 + 0.307745859721 + 0.307800848214 + 0.307855846361 + 0.307910854162 + 0.307965871619 + 0.308020898735 + 0.308075935511 + 0.308130981948 + 0.308186038048 + 0.308241103814 + 0.308296179246 + 0.308351264346 + 0.308406359117 + 0.308461463559 + 0.308516577675 + 0.308571701466 + 0.308626834933 + 0.30868197808 + 0.308737130906 + 0.308792293415 + 0.308847465607 + 0.308902647484 + 0.308957839049 + 0.309013040302 + 0.309068251245 + 0.309123471881 + 0.309178702211 + 0.309233942236 + 0.309289191958 + 0.30934445138 + 0.309399720502 + 0.309454999326 + 0.309510287855 + 0.309565586089 + 0.309620894031 + 0.309676211682 + 0.309731539043 + 0.309786876118 + 0.309842222906 + 0.309897579411 + 0.309952945633 + 0.310008321575 + 0.310063707238 + 0.310119102623 + 0.310174507733 + 0.31022992257 + 0.310285347134 + 0.310340781428 + 0.310396225453 + 0.310451679212 + 0.310507142705 + 0.310562615934 + 0.310618098902 + 0.31067359161 + 0.310729094059 + 0.310784606252 + 0.310840128189 + 0.310895659874 + 0.310951201307 + 0.31100675249 + 0.311062313425 + 0.311117884113 + 0.311173464557 + 0.311229054758 + 0.311284654717 + 0.311340264437 + 0.311395883919 + 0.311451513165 + 0.311507152176 + 0.311562800955 + 0.311618459503 + 0.311674127822 + 0.311729805913 + 0.311785493778 + 0.311841191419 + 0.311896898837 + 0.311952616035 + 0.312008343014 + 0.312064079776 + 0.312119826322 + 0.312175582654 + 0.312231348774 + 0.312287124684 + 0.312342910385 + 0.312398705879 + 0.312454511168 + 0.312510326253 + 0.312566151136 + 0.31262198582 + 0.312677830305 + 0.312733684593 + 0.312789548687 + 0.312845422587 + 0.312901306296 + 0.312957199815 + 0.313013103146 + 0.313069016291 + 0.313124939251 + 0.313180872028 + 0.313236814625 + 0.313292767041 + 0.31334872928 + 0.313404701344 + 0.313460683232 + 0.313516674949 + 0.313572676494 + 0.313628687871 + 0.31368470908 + 0.313740740123 + 0.313796781003 + 0.31385283172 + 0.313908892278 + 0.313964962676 + 0.314021042917 + 0.314077133003 + 0.314133232936 + 0.314189342717 + 0.314245462347 + 0.31430159183 + 0.314357731165 + 0.314413880356 + 0.314470039404 + 0.31452620831 + 0.314582387077 + 0.314638575706 + 0.314694774198 + 0.314750982556 + 0.314807200781 + 0.314863428875 + 0.31491966684 + 0.314975914677 + 0.315032172389 + 0.315088439976 + 0.315144717441 + 0.315201004786 + 0.315257302011 + 0.315313609119 + 0.315369926112 + 0.315426252991 + 0.315482589759 + 0.315538936416 + 0.315595292964 + 0.315651659406 + 0.315708035743 + 0.315764421976 + 0.315820818108 + 0.31587722414 + 0.315933640074 + 0.315990065912 + 0.316046501655 + 0.316102947306 + 0.316159402865 + 0.316215868335 + 0.316272343717 + 0.316328829013 + 0.316385324226 + 0.316441829355 + 0.316498344404 + 0.316554869375 + 0.316611404268 + 0.316667949085 + 0.316724503829 + 0.316781068501 + 0.316837643103 + 0.316894227636 + 0.316950822103 + 0.317007426504 + 0.317064040843 + 0.317120665119 + 0.317177299336 + 0.317233943496 + 0.317290597598 + 0.317347261647 + 0.317403935642 + 0.317460619587 + 0.317517313482 + 0.31757401733 + 0.317630731132 + 0.317687454889 + 0.317744188605 + 0.31780093228 + 0.317857685916 + 0.317914449516 + 0.31797122308 + 0.31802800661 + 0.318084800109 + 0.318141603577 + 0.318198417018 + 0.318255240431 + 0.31831207382 + 0.318368917186 + 0.318425770531 + 0.318482633856 + 0.318539507163 + 0.318596390454 + 0.318653283731 + 0.318710186996 + 0.31876710025 + 0.318824023494 + 0.318880956732 + 0.318937899964 + 0.318994853192 + 0.319051816418 + 0.319108789644 + 0.319165772871 + 0.319222766102 + 0.319279769338 + 0.31933678258 + 0.319393805831 + 0.319450839092 + 0.319507882366 + 0.319564935653 + 0.319621998956 + 0.319679072276 + 0.319736155615 + 0.319793248975 + 0.319850352357 + 0.319907465764 + 0.319964589197 + 0.320021722658 + 0.320078866148 + 0.32013601967 + 0.320193183225 + 0.320250356815 + 0.320307540442 + 0.320364734107 + 0.320421937813 + 0.32047915156 + 0.320536375351 + 0.320593609188 + 0.320650853071 + 0.320708107004 + 0.320765370988 + 0.320822645024 + 0.320879929114 + 0.320937223261 + 0.320994527465 + 0.321051841729 + 0.321109166055 + 0.321166500443 + 0.321223844897 + 0.321281199417 + 0.321338564005 + 0.321395938664 + 0.321453323395 + 0.321510718199 + 0.321568123079 + 0.321625538037 + 0.321682963073 + 0.32174039819 + 0.32179784339 + 0.321855298674 + 0.321912764044 + 0.321970239502 + 0.32202772505 + 0.322085220689 + 0.322142726422 + 0.322200242249 + 0.322257768174 + 0.322315304196 + 0.32237285032 + 0.322430406545 + 0.322487972874 + 0.322545549308 + 0.32260313585 + 0.322660732502 + 0.322718339264 + 0.322775956139 + 0.322833583128 + 0.322891220234 + 0.322948867457 + 0.323006524801 + 0.323064192266 + 0.323121869855 + 0.323179557568 + 0.323237255409 + 0.323294963378 + 0.323352681478 + 0.32341040971 + 0.323468148076 + 0.323525896578 + 0.323583655218 + 0.323641423997 + 0.323699202917 + 0.32375699198 + 0.323814791188 + 0.323872600542 + 0.323930420045 + 0.323988249697 + 0.324046089502 + 0.32410393946 + 0.324161799574 + 0.324219669844 + 0.324277550274 + 0.324335440865 + 0.324393341618 + 0.324451252535 + 0.324509173619 + 0.32456710487 + 0.324625046291 + 0.324682997884 + 0.324740959649 + 0.32479893159 + 0.324856913708 + 0.324914906004 + 0.324972908481 + 0.32503092114 + 0.325088943983 + 0.325146977012 + 0.325205020228 + 0.325263073633 + 0.32532113723 + 0.32537921102 + 0.325437295004 + 0.325495389185 + 0.325553493564 + 0.325611608143 + 0.325669732924 + 0.325727867909 + 0.325786013099 + 0.325844168497 + 0.325902334103 + 0.32596050992 + 0.32601869595 + 0.326076892195 + 0.326135098655 + 0.326193315334 + 0.326251542232 + 0.326309779352 + 0.326368026695 + 0.326426284264 + 0.326484552059 + 0.326542830083 + 0.326601118338 + 0.326659416825 + 0.326717725546 + 0.326776044504 + 0.326834373699 + 0.326892713133 + 0.326951062809 + 0.327009422728 + 0.327067792892 + 0.327126173303 + 0.327184563962 + 0.327242964871 + 0.327301376033 + 0.327359797449 + 0.32741822912 + 0.327476671049 + 0.327535123237 + 0.327593585687 + 0.327652058399 + 0.327710541376 + 0.327769034619 + 0.327827538131 + 0.327886051914 + 0.327944575968 + 0.328003110295 + 0.328061654899 + 0.328120209779 + 0.328178774939 + 0.32823735038 + 0.328295936104 + 0.328354532112 + 0.328413138406 + 0.328471754989 + 0.328530381862 + 0.328589019026 + 0.328647666485 + 0.328706324238 + 0.328764992289 + 0.328823670639 + 0.328882359289 + 0.328941058243 + 0.328999767501 + 0.329058487065 + 0.329117216937 + 0.329175957119 + 0.329234707612 + 0.32929346842 + 0.329352239542 + 0.329411020982 + 0.32946981274 + 0.32952861482 + 0.329587427221 + 0.329646249948 + 0.329705083 + 0.329763926381 + 0.329822780091 + 0.329881644133 + 0.329940518508 + 0.329999403218 + 0.330058298266 + 0.330117203653 + 0.33017611938 + 0.330235045449 + 0.330293981863 + 0.330352928624 + 0.330411885732 + 0.33047085319 + 0.330529830999 + 0.330588819162 + 0.33064781768 + 0.330706826555 + 0.330765845789 + 0.330824875384 + 0.330883915341 + 0.330942965663 + 0.33100202635 + 0.331061097406 + 0.331120178831 + 0.331179270628 + 0.331238372799 + 0.331297485344 + 0.331356608267 + 0.331415741569 + 0.331474885251 + 0.331534039316 + 0.331593203765 + 0.3316523786 + 0.331711563824 + 0.331770759437 + 0.331829965442 + 0.33188918184 + 0.331948408633 + 0.332007645824 + 0.332066893414 + 0.332126151404 + 0.332185419797 + 0.332244698594 + 0.332303987798 + 0.33236328741 + 0.332422597431 + 0.332481917865 + 0.332541248712 + 0.332600589974 + 0.332659941653 + 0.332719303752 + 0.332778676271 + 0.332838059213 + 0.33289745258 + 0.332956856373 + 0.333016270594 + 0.333075695245 + 0.333135130328 + 0.333194575845 + 0.333254031797 + 0.333313498187 + 0.333372975016 + 0.333432462286 + 0.333491959998 + 0.333551468155 + 0.333610986759 + 0.333670515811 + 0.333730055314 + 0.333789605268 + 0.333849165676 + 0.33390873654 + 0.333968317861 + 0.334027909642 + 0.334087511884 + 0.334147124589 + 0.334206747759 + 0.334266381395 + 0.3343260255 + 0.334385680076 + 0.334445345123 + 0.334505020645 + 0.334564706643 + 0.334624403118 + 0.334684110073 + 0.334743827509 + 0.334803555429 + 0.334863293833 + 0.334923042725 + 0.334982802105 + 0.335042571976 + 0.335102352339 + 0.335162143197 + 0.335221944551 + 0.335281756403 + 0.335341578754 + 0.335401411608 + 0.335461254964 + 0.335521108827 + 0.335580973196 + 0.335640848074 + 0.335700733463 + 0.335760629365 + 0.335820535782 + 0.335880452715 + 0.335940380166 + 0.336000318138 + 0.336060266631 + 0.336120225648 + 0.336180195191 + 0.336240175261 + 0.336300165861 + 0.336360166992 + 0.336420178656 + 0.336480200855 + 0.33654023359 + 0.336600276864 + 0.336660330679 + 0.336720395036 + 0.336780469937 + 0.336840555384 + 0.336900651379 + 0.336960757923 + 0.33702087502 + 0.337081002669 + 0.337141140874 + 0.337201289636 + 0.337261448957 + 0.337321618838 + 0.337381799283 + 0.337441990292 + 0.337502191867 + 0.337562404011 + 0.337622626724 + 0.33768286001 + 0.337743103869 + 0.337803358304 + 0.337863623317 + 0.337923898909 + 0.337984185082 + 0.338044481838 + 0.338104789179 + 0.338165107108 + 0.338225435624 + 0.338285774731 + 0.338346124431 + 0.338406484725 + 0.338466855615 + 0.338527237103 + 0.33858762919 + 0.33864803188 + 0.338708445173 + 0.338768869071 + 0.338829303576 + 0.338889748691 + 0.338950204417 + 0.339010670755 + 0.339071147709 + 0.339131635279 + 0.339192133467 + 0.339252642275 + 0.339313161706 + 0.339373691761 + 0.339434232442 + 0.33949478375 + 0.339555345688 + 0.339615918258 + 0.339676501461 + 0.339737095299 + 0.339797699774 + 0.339858314889 + 0.339918940644 + 0.339979577042 + 0.340040224084 + 0.340100881773 + 0.34016155011 + 0.340222229097 + 0.340282918737 + 0.34034361903 + 0.340404329979 + 0.340465051586 + 0.340525783852 + 0.340586526779 + 0.34064728037 + 0.340708044626 + 0.340768819549 + 0.340829605141 + 0.340890401404 + 0.340951208339 + 0.341012025949 + 0.341072854235 + 0.3411336932 + 0.341194542844 + 0.341255403171 + 0.341316274182 + 0.341377155878 + 0.341438048262 + 0.341498951335 + 0.3415598651 + 0.341620789558 + 0.341681724711 + 0.341742670561 + 0.34180362711 + 0.34186459436 + 0.341925572312 + 0.34198656097 + 0.342047560333 + 0.342108570405 + 0.342169591187 + 0.34223062268 + 0.342291664888 + 0.342352717812 + 0.342413781453 + 0.342474855814 + 0.342535940897 + 0.342597036702 + 0.342658143233 + 0.342719260491 + 0.342780388478 + 0.342841527196 + 0.342902676647 + 0.342963836832 + 0.343025007754 + 0.343086189414 + 0.343147381814 + 0.343208584957 + 0.343269798844 + 0.343331023476 + 0.343392258857 + 0.343453504987 + 0.343514761869 + 0.343576029504 + 0.343637307895 + 0.343698597043 + 0.34375989695 + 0.343821207618 + 0.343882529049 + 0.343943861245 + 0.344005204208 + 0.344066557939 + 0.344127922441 + 0.344189297715 + 0.344250683763 + 0.344312080588 + 0.34437348819 + 0.344434906573 + 0.344496335737 + 0.344557775686 + 0.344619226419 + 0.344680687941 + 0.344742160251 + 0.344803643353 + 0.344865137249 + 0.344926641939 + 0.344988157426 + 0.345049683713 + 0.3451112208 + 0.345172768689 + 0.345234327384 + 0.345295896884 + 0.345357477193 + 0.345419068313 + 0.345480670244 + 0.34554228299 + 0.345603906552 + 0.345665540931 + 0.34572718613 + 0.345788842151 + 0.345850508996 + 0.345912186666 + 0.345973875163 + 0.346035574489 + 0.346097284647 + 0.346159005638 + 0.346220737464 + 0.346282480126 + 0.346344233628 + 0.34640599797 + 0.346467773154 + 0.346529559183 + 0.346591356059 + 0.346653163783 + 0.346714982357 + 0.346776811783 + 0.346838652063 + 0.346900503199 + 0.346962365193 + 0.347024238046 + 0.347086121761 + 0.34714801634 + 0.347209921784 + 0.347271838095 + 0.347333765276 + 0.347395703328 + 0.347457652253 + 0.347519612053 + 0.34758158273 + 0.347643564285 + 0.347705556722 + 0.347767560041 + 0.347829574244 + 0.347891599334 + 0.347953635312 + 0.348015682181 + 0.348077739942 + 0.348139808596 + 0.348201888147 + 0.348263978596 + 0.348326079944 + 0.348388192195 + 0.348450315348 + 0.348512449408 + 0.348574594375 + 0.348636750251 + 0.348698917039 + 0.34876109474 + 0.348823283356 + 0.348885482889 + 0.348947693341 + 0.349009914714 + 0.34907214701 + 0.34913439023 + 0.349196644377 + 0.349258909453 + 0.349321185459 + 0.349383472398 + 0.349445770271 + 0.34950807908 + 0.349570398827 + 0.349632729514 + 0.349695071144 + 0.349757423717 + 0.349819787236 + 0.349882161703 + 0.349944547119 + 0.350006943488 + 0.350069350809 + 0.350131769086 + 0.350194198321 + 0.350256638515 + 0.35031908967 + 0.350381551788 + 0.350444024871 + 0.350506508921 + 0.35056900394 + 0.35063150993 + 0.350694026893 + 0.350756554831 + 0.350819093745 + 0.350881643637 + 0.350944204511 + 0.351006776366 + 0.351069359206 + 0.351131953032 + 0.351194557846 + 0.351257173651 + 0.351319800447 + 0.351382438238 + 0.351445087024 + 0.351507746808 + 0.351570417592 + 0.351633099378 + 0.351695792167 + 0.351758495962 + 0.351821210765 + 0.351883936576 + 0.3519466734 + 0.352009421236 + 0.352072180088 + 0.352134949957 + 0.352197730845 + 0.352260522753 + 0.352323325685 + 0.352386139642 + 0.352448964626 + 0.352511800638 + 0.352574647681 + 0.352637505757 + 0.352700374868 + 0.352763255015 + 0.3528261462 + 0.352889048426 + 0.352951961694 + 0.353014886006 + 0.353077821364 + 0.353140767771 + 0.353203725228 + 0.353266693737 + 0.353329673299 + 0.353392663918 + 0.353455665595 + 0.353518678331 + 0.353581702129 + 0.353644736991 + 0.353707782918 + 0.353770839913 + 0.353833907977 + 0.353896987113 + 0.353960077322 + 0.354023178607 + 0.354086290969 + 0.35414941441 + 0.354212548932 + 0.354275694537 + 0.354338851227 + 0.354402019005 + 0.354465197871 + 0.354528387828 + 0.354591588878 + 0.354654801023 + 0.354718024265 + 0.354781258605 + 0.354844504046 + 0.354907760589 + 0.354971028237 + 0.355034306991 + 0.355097596854 + 0.355160897828 + 0.355224209913 + 0.355287533113 + 0.355350867429 + 0.355414212863 + 0.355477569418 + 0.355540937094 + 0.355604315895 + 0.355667705821 + 0.355731106876 + 0.35579451906 + 0.355857942376 + 0.355921376826 + 0.355984822412 + 0.356048279136 + 0.356111746999 + 0.356175226004 + 0.356238716152 + 0.356302217446 + 0.356365729887 + 0.356429253478 + 0.356492788221 + 0.356556334116 + 0.356619891167 + 0.356683459375 + 0.356747038743 + 0.356810629272 + 0.356874230963 + 0.35693784382 + 0.357001467844 + 0.357065103038 + 0.357128749402 + 0.357192406939 + 0.357256075651 + 0.35731975554 + 0.357383446607 + 0.357447148856 + 0.357510862287 + 0.357574586903 + 0.357638322706 + 0.357702069697 + 0.357765827879 + 0.357829597254 + 0.357893377823 + 0.357957169589 + 0.358020972553 + 0.358084786717 + 0.358148612084 + 0.358212448656 + 0.358276296433 + 0.35834015542 + 0.358404025616 + 0.358467907025 + 0.358531799647 + 0.358595703486 + 0.358659618544 + 0.358723544821 + 0.35878748232 + 0.358851431044 + 0.358915390993 + 0.358979362171 + 0.359043344579 + 0.359107338218 + 0.359171343091 + 0.359235359201 + 0.359299386548 + 0.359363425135 + 0.359427474964 + 0.359491536036 + 0.359555608355 + 0.359619691921 + 0.359683786737 + 0.359747892804 + 0.359812010125 + 0.359876138702 + 0.359940278537 + 0.360004429631 + 0.360068591986 + 0.360132765605 + 0.36019695049 + 0.360261146642 + 0.360325354064 + 0.360389572757 + 0.360453802723 + 0.360518043965 + 0.360582296485 + 0.360646560283 + 0.360710835363 + 0.360775121727 + 0.360839419375 + 0.360903728311 + 0.360968048536 + 0.361032380053 + 0.361096722863 + 0.361161076968 + 0.36122544237 + 0.361289819071 + 0.361354207074 + 0.361418606379 + 0.36148301699 + 0.361547438908 + 0.361611872135 + 0.361676316673 + 0.361740772524 + 0.361805239691 + 0.361869718174 + 0.361934207976 + 0.3619987091 + 0.362063221546 + 0.362127745317 + 0.362192280416 + 0.362256826843 + 0.362321384601 + 0.362385953693 + 0.362450534119 + 0.362515125882 + 0.362579728984 + 0.362644343427 + 0.362708969213 + 0.362773606344 + 0.362838254822 + 0.362902914648 + 0.362967585826 + 0.363032268356 + 0.363096962241 + 0.363161667483 + 0.363226384084 + 0.363291112046 + 0.36335585137 + 0.36342060206 + 0.363485364116 + 0.363550137541 + 0.363614922336 + 0.363679718505 + 0.363744526049 + 0.363809344969 + 0.363874175268 + 0.363939016948 + 0.36400387001 + 0.364068734458 + 0.364133610292 + 0.364198497515 + 0.364263396129 + 0.364328306135 + 0.364393227537 + 0.364458160335 + 0.364523104532 + 0.36458806013 + 0.36465302713 + 0.364718005535 + 0.364782995348 + 0.364847996568 + 0.3649130092 + 0.364978033245 + 0.365043068704 + 0.36510811558 + 0.365173173875 + 0.365238243591 + 0.36530332473 + 0.365368417293 + 0.365433521284 + 0.365498636703 + 0.365563763553 + 0.365628901836 + 0.365694051553 + 0.365759212708 + 0.365824385301 + 0.365889569336 + 0.365954764813 + 0.366019971735 + 0.366085190104 + 0.366150419922 + 0.366215661191 + 0.366280913913 + 0.36634617809 + 0.366411453724 + 0.366476740816 + 0.36654203937 + 0.366607349387 + 0.366672670869 + 0.366738003818 + 0.366803348235 + 0.366868704124 + 0.366934071486 + 0.366999450323 + 0.367064840637 + 0.367130242431 + 0.367195655705 + 0.367261080462 + 0.367326516705 + 0.367391964435 + 0.367457423654 + 0.367522894364 + 0.367588376567 + 0.367653870266 + 0.367719375462 + 0.367784892157 + 0.367850420354 + 0.367915960053 + 0.367981511259 + 0.368047073971 + 0.368112648193 + 0.368178233926 + 0.368243831173 + 0.368309439935 + 0.368375060214 + 0.368440692013 + 0.368506335334 + 0.368571990178 + 0.368637656548 + 0.368703334445 + 0.368769023871 + 0.36883472483 + 0.368900437322 + 0.368966161349 + 0.369031896915 + 0.36909764402 + 0.369163402667 + 0.369229172857 + 0.369294954594 + 0.369360747878 + 0.369426552712 + 0.369492369098 + 0.369558197038 + 0.369624036533 + 0.369689887587 + 0.369755750201 + 0.369821624377 + 0.369887510116 + 0.369953407422 + 0.370019316296 + 0.37008523674 + 0.370151168756 + 0.370217112347 + 0.370283067514 + 0.370349034259 + 0.370415012584 + 0.370481002491 + 0.370547003983 + 0.370613017062 + 0.370679041729 + 0.370745077986 + 0.370811125836 + 0.37087718528 + 0.370943256321 + 0.37100933896 + 0.3710754332 + 0.371141539043 + 0.371207656491 + 0.371273785545 + 0.371339926208 + 0.371406078482 + 0.371472242369 + 0.37153841787 + 0.371604604989 + 0.371670803727 + 0.371737014085 + 0.371803236067 + 0.371869469674 + 0.371935714908 + 0.372001971771 + 0.372068240265 + 0.372134520393 + 0.372200812156 + 0.372267115556 + 0.372333430596 + 0.372399757277 + 0.372466095601 + 0.372532445571 + 0.372598807189 + 0.372665180456 + 0.372731565375 + 0.372797961948 + 0.372864370177 + 0.372930790063 + 0.372997221609 + 0.373063664817 + 0.373130119689 + 0.373196586227 + 0.373263064433 + 0.373329554309 + 0.373396055857 + 0.373462569079 + 0.373529093978 + 0.373595630555 + 0.373662178812 + 0.373728738752 + 0.373795310376 + 0.373861893686 + 0.373928488685 + 0.373995095375 + 0.374061713757 + 0.374128343834 + 0.374194985608 + 0.37426163908 + 0.374328304253 + 0.37439498113 + 0.374461669711 + 0.374528369999 + 0.374595081996 + 0.374661805705 + 0.374728541126 + 0.374795288263 + 0.374862047117 + 0.374928817691 + 0.374995599986 + 0.375062394004 + 0.375129199748 + 0.375196017219 + 0.37526284642 + 0.375329687353 + 0.37539654002 + 0.375463404422 + 0.375530280563 + 0.375597168443 + 0.375664068065 + 0.375730979431 + 0.375797902544 + 0.375864837404 + 0.375931784015 + 0.375998742378 + 0.376065712496 + 0.37613269437 + 0.376199688002 + 0.376266693395 + 0.376333710551 + 0.376400739471 + 0.376467780158 + 0.376534832614 + 0.376601896841 + 0.376668972841 + 0.376736060616 + 0.376803160167 + 0.376870271499 + 0.376937394611 + 0.377004529506 + 0.377071676187 + 0.377138834656 + 0.377206004914 + 0.377273186963 + 0.377340380806 + 0.377407586445 + 0.377474803882 + 0.377542033118 + 0.377609274156 + 0.377676526999 + 0.377743791647 + 0.377811068104 + 0.377878356371 + 0.37794565645 + 0.378012968343 + 0.378080292053 + 0.378147627581 + 0.37821497493 + 0.378282334102 + 0.378349705098 + 0.378417087922 + 0.378484482574 + 0.378551889057 + 0.378619307373 + 0.378686737524 + 0.378754179512 + 0.37882163334 + 0.378889099009 + 0.378956576522 + 0.37902406588 + 0.379091567085 + 0.37915908014 + 0.379226605047 + 0.379294141808 + 0.379361690425 + 0.3794292509 + 0.379496823234 + 0.379564407431 + 0.379632003492 + 0.37969961142 + 0.379767231216 + 0.379834862882 + 0.379902506421 + 0.379970161835 + 0.380037829125 + 0.380105508294 + 0.380173199344 + 0.380240902277 + 0.380308617096 + 0.380376343801 + 0.380444082396 + 0.380511832881 + 0.380579595261 + 0.380647369536 + 0.380715155708 + 0.38078295378 + 0.380850763754 + 0.380918585632 + 0.380986419416 + 0.381054265108 + 0.38112212271 + 0.381189992224 + 0.381257873653 + 0.381325766998 + 0.381393672261 + 0.381461589445 + 0.381529518552 + 0.381597459583 + 0.381665412542 + 0.381733377429 + 0.381801354248 + 0.381869342999 + 0.381937343686 + 0.382005356311 + 0.382073380874 + 0.382141417379 + 0.382209465828 + 0.382277526223 + 0.382345598565 + 0.382413682858 + 0.382481779102 + 0.382549887301 + 0.382618007456 + 0.382686139569 + 0.382754283642 + 0.382822439678 + 0.382890607679 + 0.382958787646 + 0.383026979582 + 0.383095183489 + 0.38316339937 + 0.383231627225 + 0.383299867057 + 0.383368118869 + 0.383436382663 + 0.383504658439 + 0.383572946202 + 0.383641245952 + 0.383709557692 + 0.383777881424 + 0.38384621715 + 0.383914564872 + 0.383982924593 + 0.384051296314 + 0.384119680037 + 0.384188075765 + 0.3842564835 + 0.384324903243 + 0.384393334998 + 0.384461778765 + 0.384530234548 + 0.384598702348 + 0.384667182167 + 0.384735674007 + 0.384804177872 + 0.384872693762 + 0.384941221679 + 0.385009761627 + 0.385078313606 + 0.38514687762 + 0.38521545367 + 0.385284041758 + 0.385352641887 + 0.385421254059 + 0.385489878275 + 0.385558514538 + 0.385627162849 + 0.385695823212 + 0.385764495628 + 0.385833180099 + 0.385901876628 + 0.385970585216 + 0.386039305866 + 0.38610803858 + 0.386176783359 + 0.386245540206 + 0.386314309124 + 0.386383090114 + 0.386451883178 + 0.386520688318 + 0.386589505537 + 0.386658334837 + 0.386727176219 + 0.386796029687 + 0.386864895241 + 0.386933772885 + 0.38700266262 + 0.387071564448 + 0.387140478372 + 0.387209404394 + 0.387278342515 + 0.387347292739 + 0.387416255066 + 0.3874852295 + 0.387554216042 + 0.387623214694 + 0.387692225459 + 0.387761248338 + 0.387830283334 + 0.38789933045 + 0.387968389686 + 0.388037461045 + 0.38810654453 + 0.388175640142 + 0.388244747884 + 0.388313867757 + 0.388382999764 + 0.388452143908 + 0.388521300189 + 0.38859046861 + 0.388659649174 + 0.388728841883 + 0.388798046737 + 0.388867263741 + 0.388936492896 + 0.389005734203 + 0.389074987666 + 0.389144253286 + 0.389213531065 + 0.389282821006 + 0.389352123111 + 0.389421437381 + 0.389490763819 + 0.389560102428 + 0.389629453208 + 0.389698816163 + 0.389768191295 + 0.389837578605 + 0.389906978096 + 0.38997638977 + 0.390045813629 + 0.390115249675 + 0.39018469791 + 0.390254158337 + 0.390323630957 + 0.390393115773 + 0.390462612787 + 0.390532122002 + 0.390601643418 + 0.390671177038 + 0.390740722865 + 0.390810280901 + 0.390879851147 + 0.390949433607 + 0.391019028281 + 0.391088635172 + 0.391158254283 + 0.391227885615 + 0.391297529171 + 0.391367184953 + 0.391436852962 + 0.391506533202 + 0.391576225674 + 0.39164593038 + 0.391715647322 + 0.391785376503 + 0.391855117925 + 0.39192487159 + 0.3919946375 + 0.392064415658 + 0.392134206064 + 0.392204008722 + 0.392273823634 + 0.392343650802 + 0.392413490227 + 0.392483341913 + 0.392553205861 + 0.392623082074 + 0.392692970553 + 0.392762871301 + 0.39283278432 + 0.392902709611 + 0.392972647179 + 0.393042597023 + 0.393112559147 + 0.393182533552 + 0.393252520242 + 0.393322519217 + 0.393392530481 + 0.393462554035 + 0.393532589881 + 0.393602638022 + 0.39367269846 + 0.393742771196 + 0.393812856234 + 0.393882953575 + 0.393953063222 + 0.394023185176 + 0.394093319439 + 0.394163466015 + 0.394233624905 + 0.394303796111 + 0.394373979635 + 0.39444417548 + 0.394514383647 + 0.39458460414 + 0.394654836959 + 0.394725082108 + 0.394795339588 + 0.394865609402 + 0.394935891551 + 0.395006186038 + 0.395076492865 + 0.395146812034 + 0.395217143548 + 0.395287487408 + 0.395357843617 + 0.395428212177 + 0.395498593089 + 0.395568986357 + 0.395639391983 + 0.395709809968 + 0.395780240314 + 0.395850683024 + 0.395921138101 + 0.395991605546 + 0.396062085361 + 0.396132577548 + 0.396203082111 + 0.39627359905 + 0.396344128368 + 0.396414670068 + 0.396485224151 + 0.396555790619 + 0.396626369476 + 0.396696960722 + 0.39676756436 + 0.396838180393 + 0.396908808822 + 0.39697944965 + 0.397050102879 + 0.39712076851 + 0.397191446547 + 0.397262136991 + 0.397332839845 + 0.397403555111 + 0.39747428279 + 0.397545022885 + 0.397615775399 + 0.397686540333 + 0.39775731769 + 0.397828107471 + 0.397898909679 + 0.397969724317 + 0.398040551386 + 0.398111390888 + 0.398182242826 + 0.398253107202 + 0.398323984019 + 0.398394873277 + 0.39846577498 + 0.398536689129 + 0.398607615727 + 0.398678554776 + 0.398749506279 + 0.398820470236 + 0.398891446652 + 0.398962435527 + 0.399033436863 + 0.399104450664 + 0.399175476932 + 0.399246515668 + 0.399317566874 + 0.399388630553 + 0.399459706708 + 0.399530795339 + 0.39960189645 + 0.399673010043 + 0.39974413612 + 0.399815274682 + 0.399886425733 + 0.399957589274 + 0.400028765307 + 0.400099953836 + 0.400171154861 + 0.400242368386 + 0.400313594412 + 0.400384832941 + 0.400456083977 + 0.40052734752 + 0.400598623573 + 0.400669912139 + 0.400741213219 + 0.400812526816 + 0.400883852932 + 0.400955191569 + 0.401026542729 + 0.401097906415 + 0.401169282628 + 0.401240671372 + 0.401312072647 + 0.401383486457 + 0.401454912803 + 0.401526351689 + 0.401597803115 + 0.401669267084 + 0.401740743598 + 0.40181223266 + 0.401883734272 + 0.401955248435 + 0.402026775153 + 0.402098314427 + 0.40216986626 + 0.402241430653 + 0.40231300761 + 0.402384597131 + 0.40245619922 + 0.402527813879 + 0.402599441109 + 0.402671080913 + 0.402742733293 + 0.402814398252 + 0.402886075792 + 0.402957765914 + 0.403029468621 + 0.403101183916 + 0.4031729118 + 0.403244652275 + 0.403316405344 + 0.40338817101 + 0.403459949274 + 0.403531740138 + 0.403603543605 + 0.403675359677 + 0.403747188356 + 0.403819029644 + 0.403890883544 + 0.403962750058 + 0.404034629188 + 0.404106520936 + 0.404178425304 + 0.404250342295 + 0.404322271911 + 0.404394214154 + 0.404466169026 + 0.40453813653 + 0.404610116667 + 0.40468210944 + 0.404754114852 + 0.404826132904 + 0.404898163598 + 0.404970206937 + 0.405042262923 + 0.405114331559 + 0.405186412846 + 0.405258506787 + 0.405330613383 + 0.405402732638 + 0.405474864553 + 0.405547009131 + 0.405619166373 + 0.405691336283 + 0.405763518861 + 0.405835714112 + 0.405907922035 + 0.405980142635 + 0.406052375913 + 0.406124621872 + 0.406196880513 + 0.406269151838 + 0.406341435851 + 0.406413732553 + 0.406486041947 + 0.406558364034 + 0.406630698818 + 0.406703046299 + 0.406775406481 + 0.406847779366 + 0.406920164955 + 0.406992563252 + 0.407064974257 + 0.407137397975 + 0.407209834406 + 0.407282283554 + 0.407354745419 + 0.407427220005 + 0.407499707314 + 0.407572207348 + 0.407644720109 + 0.407717245599 + 0.407789783821 + 0.407862334777 + 0.407934898469 + 0.4080074749 + 0.408080064071 + 0.408152665985 + 0.408225280644 + 0.408297908051 + 0.408370548206 + 0.408443201114 + 0.408515866776 + 0.408588545194 + 0.408661236371 + 0.408733940308 + 0.408806657008 + 0.408879386474 + 0.408952128707 + 0.40902488371 + 0.409097651484 + 0.409170432033 + 0.409243225359 + 0.409316031463 + 0.409388850348 + 0.409461682016 + 0.409534526469 + 0.409607383711 + 0.409680253742 + 0.409753136565 + 0.409826032183 + 0.409898940597 + 0.40997186181 + 0.410044795825 + 0.410117742643 + 0.410190702266 + 0.410263674697 + 0.410336659939 + 0.410409657992 + 0.410482668861 + 0.410555692546 + 0.410628729051 + 0.410701778376 + 0.410774840526 + 0.410847915501 + 0.410921003304 + 0.410994103938 + 0.411067217405 + 0.411140343706 + 0.411213482845 + 0.411286634822 + 0.411359799642 + 0.411432977305 + 0.411506167815 + 0.411579371173 + 0.411652587382 + 0.411725816443 + 0.41179905836 + 0.411872313134 + 0.411945580768 + 0.412018861264 + 0.412092154624 + 0.41216546085 + 0.412238779946 + 0.412312111912 + 0.412385456751 + 0.412458814466 + 0.412532185059 + 0.412605568532 + 0.412678964887 + 0.412752374127 + 0.412825796253 + 0.412899231268 + 0.412972679175 + 0.413046139976 + 0.413119613672 + 0.413193100266 + 0.413266599761 + 0.413340112159 + 0.413413637461 + 0.413487175671 + 0.41356072679 + 0.41363429082 + 0.413707867765 + 0.413781457626 + 0.413855060405 + 0.413928676106 + 0.414002304729 + 0.414075946278 + 0.414149600754 + 0.41422326816 + 0.414296948498 + 0.414370641771 + 0.41444434798 + 0.414518067128 + 0.414591799218 + 0.414665544251 + 0.414739302229 + 0.414813073156 + 0.414886857033 + 0.414960653863 + 0.415034463647 + 0.415108286389 + 0.41518212209 + 0.415255970752 + 0.415329832379 + 0.415403706972 + 0.415477594533 + 0.415551495065 + 0.41562540857 + 0.415699335051 + 0.415773274509 + 0.415847226947 + 0.415921192367 + 0.415995170772 + 0.416069162163 + 0.416143166543 + 0.416217183915 + 0.41629121428 + 0.416365257641 + 0.416439314 + 0.41651338336 + 0.416587465722 + 0.416661561089 + 0.416735669464 + 0.416809790848 + 0.416883925244 + 0.416958072654 + 0.41703223308 + 0.417106406525 + 0.417180592991 + 0.41725479248 + 0.417329004995 + 0.417403230538 + 0.417477469111 + 0.417551720716 + 0.417625985356 + 0.417700263032 + 0.417774553748 + 0.417848857506 + 0.417923174307 + 0.417997504155 + 0.418071847051 + 0.418146202998 + 0.418220571997 + 0.418294954052 + 0.418369349165 + 0.418443757337 + 0.418518178572 + 0.418592612871 + 0.418667060237 + 0.418741520672 + 0.418815994178 + 0.418890480758 + 0.418964980414 + 0.419039493148 + 0.419114018962 + 0.41918855786 + 0.419263109842 + 0.419337674912 + 0.419412253072 + 0.419486844323 + 0.419561448669 + 0.419636066112 + 0.419710696653 + 0.419785340296 + 0.419859997042 + 0.419934666894 + 0.420009349854 + 0.420084045925 + 0.420158755108 + 0.420233477406 + 0.420308212822 + 0.420382961357 + 0.420457723014 + 0.420532497796 + 0.420607285703 + 0.42068208674 + 0.420756900908 + 0.420831728209 + 0.420906568646 + 0.420981422221 + 0.421056288936 + 0.421131168795 + 0.421206061798 + 0.421280967948 + 0.421355887248 + 0.4214308197 + 0.421505765306 + 0.421580724068 + 0.42165569599 + 0.421730681072 + 0.421805679318 + 0.42188069073 + 0.421955715309 + 0.42203075306 + 0.422105803982 + 0.42218086808 + 0.422255945355 + 0.42233103581 + 0.422406139447 + 0.422481256268 + 0.422556386275 + 0.422631529472 + 0.422706685859 + 0.422781855441 + 0.422857038218 + 0.422932234193 + 0.423007443368 + 0.423082665747 + 0.42315790133 + 0.423233150121 + 0.423308412122 + 0.423383687335 + 0.423458975762 + 0.423534277405 + 0.423609592268 + 0.423684920352 + 0.42376026166 + 0.423835616194 + 0.423910983956 + 0.423986364949 + 0.424061759174 + 0.424137166635 + 0.424212587334 + 0.424288021272 + 0.424363468453 + 0.424438928878 + 0.42451440255 + 0.424589889471 + 0.424665389644 + 0.424740903071 + 0.424816429754 + 0.424891969696 + 0.424967522898 + 0.425043089363 + 0.425118669094 + 0.425194262093 + 0.425269868362 + 0.425345487904 + 0.42542112072 + 0.425496766813 + 0.425572426186 + 0.425648098841 + 0.42572378478 + 0.425799484005 + 0.42587519652 + 0.425950922325 + 0.426026661424 + 0.426102413818 + 0.426178179511 + 0.426253958504 + 0.426329750801 + 0.426405556402 + 0.42648137531 + 0.426557207529 + 0.42663305306 + 0.426708911905 + 0.426784784067 + 0.426860669548 + 0.426936568351 + 0.427012480477 + 0.42708840593 + 0.427164344711 + 0.427240296823 + 0.427316262269 + 0.42739224105 + 0.427468233168 + 0.427544238627 + 0.427620257429 + 0.427696289575 + 0.427772335069 + 0.427848393912 + 0.427924466108 + 0.428000551657 + 0.428076650563 + 0.428152762828 + 0.428228888455 + 0.428305027445 + 0.428381179801 + 0.428457345526 + 0.428533524621 + 0.428609717089 + 0.428685922933 + 0.428762142154 + 0.428838374756 + 0.42891462074 + 0.428990880108 + 0.429067152864 + 0.429143439009 + 0.429219738547 + 0.429296051478 + 0.429372377806 + 0.429448717533 + 0.429525070661 + 0.429601437193 + 0.42967781713 + 0.429754210476 + 0.429830617233 + 0.429907037403 + 0.429983470988 + 0.43005991799 + 0.430136378413 + 0.430212852258 + 0.430289339528 + 0.430365840226 + 0.430442354352 + 0.430518881911 + 0.430595422904 + 0.430671977333 + 0.430748545201 + 0.430825126511 + 0.430901721264 + 0.430978329464 + 0.431054951111 + 0.43113158621 + 0.431208234761 + 0.431284896768 + 0.431361572233 + 0.431438261158 + 0.431514963546 + 0.431591679398 + 0.431668408718 + 0.431745151507 + 0.431821907768 + 0.431898677504 + 0.431975460717 + 0.432052257408 + 0.432129067581 + 0.432205891238 + 0.432282728381 + 0.432359579013 + 0.432436443136 + 0.432513320752 + 0.432590211863 + 0.432667116473 + 0.432744034583 + 0.432820966196 + 0.432897911314 + 0.432974869939 + 0.433051842075 + 0.433128827722 + 0.433205826885 + 0.433282839564 + 0.433359865763 + 0.433436905483 + 0.433513958728 + 0.433591025499 + 0.433668105799 + 0.43374519963 + 0.433822306995 + 0.433899427896 + 0.433976562335 + 0.434053710315 + 0.434130871838 + 0.434208046907 + 0.434285235523 + 0.43436243769 + 0.43443965341 + 0.434516882684 + 0.434594125516 + 0.434671381908 + 0.434748651862 + 0.43482593538 + 0.434903232466 + 0.43498054312 + 0.435057867347 + 0.435135205147 + 0.435212556524 + 0.43528992148 + 0.435367300017 + 0.435444692137 + 0.435522097844 + 0.435599517139 + 0.435676950024 + 0.435754396503 + 0.435831856578 + 0.43590933025 + 0.435986817523 + 0.436064318398 + 0.436141832878 + 0.436219360966 + 0.436296902664 + 0.436374457974 + 0.436452026899 + 0.43652960944 + 0.436607205601 + 0.436684815384 + 0.436762438791 + 0.436840075825 + 0.436917726488 + 0.436995390782 + 0.43707306871 + 0.437150760274 + 0.437228465477 + 0.43730618432 + 0.437383916807 + 0.43746166294 + 0.43753942272 + 0.437617196152 + 0.437694983236 + 0.437772783976 + 0.437850598373 + 0.43792842643 + 0.43800626815 + 0.438084123535 + 0.438161992587 + 0.438239875309 + 0.438317771703 + 0.438395681772 + 0.438473605517 + 0.438551542942 + 0.438629494049 + 0.438707458839 + 0.438785437317 + 0.438863429483 + 0.43894143534 + 0.439019454891 + 0.439097488139 + 0.439175535084 + 0.439253595731 + 0.439331670081 + 0.439409758137 + 0.439487859901 + 0.439565975376 + 0.439644104564 + 0.439722247467 + 0.439800404087 + 0.439878574428 + 0.439956758492 + 0.440034956281 + 0.440113167797 + 0.440191393042 + 0.440269632021 + 0.440347884733 + 0.440426151183 + 0.440504431373 + 0.440582725304 + 0.440661032979 + 0.440739354402 + 0.440817689573 + 0.440896038496 + 0.440974401173 + 0.441052777606 + 0.441131167798 + 0.441209571752 + 0.441287989468 + 0.441366420951 + 0.441444866203 + 0.441523325225 + 0.44160179802 + 0.441680284592 + 0.441758784941 + 0.441837299071 + 0.441915826984 + 0.441994368682 + 0.442072924168 + 0.442151493444 + 0.442230076513 + 0.442308673377 + 0.442387284039 + 0.4424659085 + 0.442544546764 + 0.442623198832 + 0.442701864708 + 0.442780544393 + 0.44285923789 + 0.442937945202 + 0.44301666633 + 0.443095401278 + 0.443174150048 + 0.443252912642 + 0.443331689062 + 0.443410479311 + 0.443489283392 + 0.443568101307 + 0.443646933058 + 0.443725778647 + 0.443804638078 + 0.443883511352 + 0.443962398473 + 0.444041299441 + 0.444120214261 + 0.444199142934 + 0.444278085463 + 0.44435704185 + 0.444436012097 + 0.444514996208 + 0.444593994183 + 0.444673006027 + 0.444752031741 + 0.444831071328 + 0.444910124791 + 0.44498919213 + 0.44506827335 + 0.445147368453 + 0.44522647744 + 0.445305600315 + 0.445384737079 + 0.445463887736 + 0.445543052288 + 0.445622230736 + 0.445701423084 + 0.445780629335 + 0.445859849489 + 0.445939083551 + 0.446018331522 + 0.446097593405 + 0.446176869202 + 0.446256158915 + 0.446335462548 + 0.446414780102 + 0.446494111581 + 0.446573456985 + 0.446652816319 + 0.446732189584 + 0.446811576783 + 0.446890977918 + 0.446970392991 + 0.447049822006 + 0.447129264964 + 0.447208721869 + 0.447288192722 + 0.447367677525 + 0.447447176282 + 0.447526688995 + 0.447606215666 + 0.447685756298 + 0.447765310893 + 0.447844879454 + 0.447924461983 + 0.448004058482 + 0.448083668954 + 0.448163293402 + 0.448242931827 + 0.448322584233 + 0.448402250622 + 0.448481930995 + 0.448561625357 + 0.448641333709 + 0.448721056053 + 0.448800792392 + 0.448880542729 + 0.448960307066 + 0.449040085405 + 0.449119877749 + 0.449199684101 + 0.449279504462 + 0.449359338835 + 0.449439187224 + 0.449519049629 + 0.449598926054 + 0.449678816502 + 0.449758720973 + 0.449838639472 + 0.449918572001 + 0.449998518561 + 0.450078479156 + 0.450158453787 + 0.450238442458 + 0.450318445171 + 0.450398461928 + 0.450478492732 + 0.450558537585 + 0.450638596489 + 0.450718669448 + 0.450798756463 + 0.450878857538 + 0.450958972674 + 0.451039101874 + 0.45111924514 + 0.451199402476 + 0.451279573883 + 0.451359759364 + 0.451439958921 + 0.451520172557 + 0.451600400274 + 0.451680642075 + 0.451760897962 + 0.451841167938 + 0.451921452006 + 0.452001750167 + 0.452082062424 + 0.452162388779 + 0.452242729236 + 0.452323083796 + 0.452403452463 + 0.452483835238 + 0.452564232123 + 0.452644643123 + 0.452725068238 + 0.452805507472 + 0.452885960827 + 0.452966428305 + 0.453046909908 + 0.453127405641 + 0.453207915504 + 0.4532884395 + 0.453368977632 + 0.453449529903 + 0.453530096314 + 0.453610676868 + 0.453691271568 + 0.453771880417 + 0.453852503416 + 0.453933140568 + 0.454013791876 + 0.454094457342 + 0.454175136968 + 0.454255830758 + 0.454336538713 + 0.454417260837 + 0.454497997131 + 0.454578747598 + 0.45465951224 + 0.454740291061 + 0.454821084062 + 0.454901891246 + 0.454982712616 + 0.455063548173 + 0.455144397921 + 0.455225261862 + 0.455306139999 + 0.455387032333 + 0.455467938868 + 0.455548859606 + 0.45562979455 + 0.455710743701 + 0.455791707062 + 0.455872684637 + 0.455953676427 + 0.456034682435 + 0.456115702663 + 0.456196737114 + 0.456277785791 + 0.456358848695 + 0.45643992583 + 0.456521017198 + 0.456602122801 + 0.456683242642 + 0.456764376724 + 0.456845525048 + 0.456926687618 + 0.457007864435 + 0.457089055503 + 0.457170260824 + 0.457251480401 + 0.457332714235 + 0.457413962329 + 0.457495224687 + 0.45757650131 + 0.4576577922 + 0.457739097362 + 0.457820416796 + 0.457901750505 + 0.457983098493 + 0.458064460761 + 0.458145837311 + 0.458227228148 + 0.458308633272 + 0.458390052687 + 0.458471486394 + 0.458552934398 + 0.458634396699 + 0.458715873301 + 0.458797364205 + 0.458878869415 + 0.458960388934 + 0.459041922763 + 0.459123470904 + 0.459205033362 + 0.459286610137 + 0.459368201234 + 0.459449806653 + 0.459531426398 + 0.459613060471 + 0.459694708874 + 0.459776371611 + 0.459858048684 + 0.459939740095 + 0.460021445846 + 0.460103165941 + 0.460184900381 + 0.46026664917 + 0.46034841231 + 0.460430189803 + 0.460511981651 + 0.460593787858 + 0.460675608426 + 0.460757443358 + 0.460839292655 + 0.460921156321 + 0.461003034357 + 0.461084926767 + 0.461166833554 + 0.461248754718 + 0.461330690264 + 0.461412640193 + 0.461494604509 + 0.461576583213 + 0.461658576308 + 0.461740583797 + 0.461822605682 + 0.461904641966 + 0.461986692651 + 0.46206875774 + 0.462150837235 + 0.462232931139 + 0.462315039455 + 0.462397162184 + 0.46247929933 + 0.462561450895 + 0.462643616881 + 0.462725797292 + 0.462807992129 + 0.462890201395 + 0.462972425092 + 0.463054663224 + 0.463136915793 + 0.4632191828 + 0.46330146425 + 0.463383760144 + 0.463466070484 + 0.463548395274 + 0.463630734516 + 0.463713088213 + 0.463795456366 + 0.463877838979 + 0.463960236054 + 0.464042647594 + 0.4641250736 + 0.464207514077 + 0.464289969025 + 0.464372438449 + 0.464454922349 + 0.46453742073 + 0.464619933593 + 0.464702460941 + 0.464785002776 + 0.464867559101 + 0.464950129919 + 0.465032715232 + 0.465115315043 + 0.465197929354 + 0.465280558167 + 0.465363201486 + 0.465445859313 + 0.46552853165 + 0.4656112185 + 0.465693919865 + 0.465776635749 + 0.465859366153 + 0.46594211108 + 0.466024870533 + 0.466107644514 + 0.466190433026 + 0.466273236071 + 0.466356053652 + 0.466438885771 + 0.466521732432 + 0.466604593636 + 0.466687469386 + 0.466770359684 + 0.466853264534 + 0.466936183938 + 0.467019117897 + 0.467102066416 + 0.467185029496 + 0.46726800714 + 0.467350999351 + 0.467434006131 + 0.467517027482 + 0.467600063407 + 0.46768311391 + 0.467766178991 + 0.467849258655 + 0.467932352902 + 0.468015461737 + 0.468098585162 + 0.468181723178 + 0.468264875789 + 0.468348042998 + 0.468431224806 + 0.468514421217 + 0.468597632232 + 0.468680857855 + 0.468764098088 + 0.468847352934 + 0.468930622394 + 0.469013906473 + 0.469097205172 + 0.469180518494 + 0.469263846441 + 0.469347189016 + 0.469430546222 + 0.469513918061 + 0.469597304536 + 0.469680705649 + 0.469764121402 + 0.4698475518 + 0.469930996843 + 0.470014456535 + 0.470097930878 + 0.470181419874 + 0.470264923527 + 0.470348441839 + 0.470431974813 + 0.47051552245 + 0.470599084754 + 0.470682661727 + 0.470766253371 + 0.47084985969 + 0.470933480686 + 0.471017116362 + 0.471100766719 + 0.471184431761 + 0.47126811149 + 0.471351805909 + 0.471435515021 + 0.471519238827 + 0.471602977331 + 0.471686730535 + 0.471770498441 + 0.471854281053 + 0.471938078373 + 0.472021890403 + 0.472105717146 + 0.472189558604 + 0.472273414781 + 0.472357285678 + 0.472441171299 + 0.472525071646 + 0.472608986721 + 0.472692916527 + 0.472776861067 + 0.472860820344 + 0.472944794359 + 0.473028783115 + 0.473112786616 + 0.473196804863 + 0.473280837859 + 0.473364885607 + 0.47344894811 + 0.473533025369 + 0.473617117388 + 0.473701224169 + 0.473785345715 + 0.473869482029 + 0.473953633112 + 0.474037798967 + 0.474121979598 + 0.474206175007 + 0.474290385195 + 0.474374610167 + 0.474458849924 + 0.474543104469 + 0.474627373805 + 0.474711657934 + 0.474795956859 + 0.474880270583 + 0.474964599107 + 0.475048942436 + 0.47513330057 + 0.475217673513 + 0.475302061268 + 0.475386463837 + 0.475470881223 + 0.475555313427 + 0.475639760454 + 0.475724222305 + 0.475808698983 + 0.475893190491 + 0.475977696831 + 0.476062218006 + 0.476146754019 + 0.476231304872 + 0.476315870567 + 0.476400451107 + 0.476485046496 + 0.476569656735 + 0.476654281827 + 0.476738921775 + 0.476823576581 + 0.476908246248 + 0.476992930779 + 0.477077630176 + 0.477162344441 + 0.477247073578 + 0.477331817589 + 0.477416576477 + 0.477501350243 + 0.477586138892 + 0.477670942425 + 0.477755760845 + 0.477840594155 + 0.477925442357 + 0.478010305454 + 0.478095183448 + 0.478180076343 + 0.47826498414 + 0.478349906843 + 0.478434844453 + 0.478519796974 + 0.478604764409 + 0.478689746759 + 0.478774744028 + 0.478859756217 + 0.478944783331 + 0.47902982537 + 0.479114882339 + 0.479199954239 + 0.479285041074 + 0.479370142845 + 0.479455259555 + 0.479540391208 + 0.479625537805 + 0.479710699349 + 0.479795875844 + 0.479881067291 + 0.479966273693 + 0.480051495052 + 0.480136731373 + 0.480221982656 + 0.480307248905 + 0.480392530122 + 0.48047782631 + 0.480563137471 + 0.480648463609 + 0.480733804726 + 0.480819160824 + 0.480904531906 + 0.480989917974 + 0.481075319032 + 0.481160735082 + 0.481246166127 + 0.481331612169 + 0.48141707321 + 0.481502549254 + 0.481588040303 + 0.48167354636 + 0.481759067428 + 0.481844603508 + 0.481930154604 + 0.482015720718 + 0.482101301853 + 0.482186898012 + 0.482272509197 + 0.48235813541 + 0.482443776656 + 0.482529432935 + 0.482615104251 + 0.482700790606 + 0.482786492004 + 0.482872208446 + 0.482957939935 + 0.483043686475 + 0.483129448067 + 0.483215224714 + 0.483301016419 + 0.483386823185 + 0.483472645013 + 0.483558481908 + 0.483644333871 + 0.483730200905 + 0.483816083013 + 0.483901980197 + 0.483987892461 + 0.484073819806 + 0.484159762235 + 0.484245719751 + 0.484331692357 + 0.484417680055 + 0.484503682849 + 0.484589700739 + 0.48467573373 + 0.484761781824 + 0.484847845023 + 0.484933923331 + 0.485020016749 + 0.485106125281 + 0.485192248929 + 0.485278387696 + 0.485364541584 + 0.485450710596 + 0.485536894736 + 0.485623094004 + 0.485709308405 + 0.48579553794 + 0.485881782613 + 0.485968042425 + 0.486054317381 + 0.486140607481 + 0.48622691273 + 0.48631323313 + 0.486399568682 + 0.486485919391 + 0.486572285259 + 0.486658666287 + 0.48674506248 + 0.486831473839 + 0.486917900368 + 0.487004342069 + 0.487090798944 + 0.487177270997 + 0.487263758229 + 0.487350260644 + 0.487436778244 + 0.487523311033 + 0.487609859012 + 0.487696422184 + 0.487783000552 + 0.487869594119 + 0.487956202887 + 0.488042826859 + 0.488129466038 + 0.488216120426 + 0.488302790026 + 0.48838947484 + 0.488476174872 + 0.488562890124 + 0.488649620598 + 0.488736366298 + 0.488823127226 + 0.488909903385 + 0.488996694776 + 0.489083501404 + 0.489170323271 + 0.489257160379 + 0.48934401273 + 0.489430880329 + 0.489517763177 + 0.489604661277 + 0.489691574632 + 0.489778503244 + 0.489865447117 + 0.489952406252 + 0.490039380652 + 0.490126370321 + 0.490213375261 + 0.490300395474 + 0.490387430963 + 0.490474481731 + 0.490561547781 + 0.490648629115 + 0.490735725735 + 0.490822837646 + 0.490909964848 + 0.490997107346 + 0.491084265141 + 0.491171438237 + 0.491258626636 + 0.49134583034 + 0.491433049353 + 0.491520283677 + 0.491607533314 + 0.491694798268 + 0.491782078541 + 0.491869374136 + 0.491956685056 + 0.492044011303 + 0.492131352879 + 0.492218709789 + 0.492306082033 + 0.492393469616 + 0.492480872539 + 0.492568290806 + 0.492655724418 + 0.49274317338 + 0.492830637692 + 0.492918117359 + 0.493005612383 + 0.493093122767 + 0.493180648512 + 0.493268189623 + 0.493355746101 + 0.493443317949 + 0.493530905171 + 0.493618507768 + 0.493706125744 + 0.4937937591 + 0.493881407841 + 0.493969071968 + 0.494056751484 + 0.494144446393 + 0.494232156695 + 0.494319882396 + 0.494407623496 + 0.494495379999 + 0.494583151907 + 0.494670939224 + 0.494758741951 + 0.494846560092 + 0.494934393649 + 0.495022242625 + 0.495110107023 + 0.495197986845 + 0.495285882094 + 0.495373792773 + 0.495461718885 + 0.495549660432 + 0.495637617416 + 0.495725589842 + 0.49581357771 + 0.495901581025 + 0.495989599789 + 0.496077634004 + 0.496165683673 + 0.496253748799 + 0.496341829384 + 0.496429925432 + 0.496518036945 + 0.496606163926 + 0.496694306377 + 0.496782464302 + 0.496870637702 + 0.496958826581 + 0.497047030942 + 0.497135250786 + 0.497223486117 + 0.497311736938 + 0.497400003251 + 0.497488285058 + 0.497576582364 + 0.49766489517 + 0.497753223478 + 0.497841567293 + 0.497929926616 + 0.498018301451 + 0.498106691799 + 0.498195097665 + 0.498283519049 + 0.498371955956 + 0.498460408388 + 0.498548876347 + 0.498637359837 + 0.498725858859 + 0.498814373418 + 0.498902903515 + 0.498991449153 + 0.499080010335 + 0.499168587064 + 0.499257179342 + 0.499345787173 + 0.499434410558 + 0.499523049501 + 0.499611704004 + 0.49970037407 + 0.499789059703 + 0.499877760903 + 0.499966477675 + 0.500055210021 + 0.500143957944 + 0.500232721446 + 0.500321500531 + 0.5004102952 + 0.500499105457 + 0.500587931305 + 0.500676772745 + 0.500765629782 + 0.500854502417 + 0.500943390654 + 0.501032294494 + 0.501121213942 + 0.501210148999 + 0.501299099668 + 0.501388065953 + 0.501477047855 + 0.501566045378 + 0.501655058524 + 0.501744087296 + 0.501833131697 + 0.50192219173 + 0.502011267396 + 0.5021003587 + 0.502189465644 + 0.50227858823 + 0.502367726461 + 0.50245688034 + 0.50254604987 + 0.502635235054 + 0.502724435893 + 0.502813652392 + 0.502902884553 + 0.502992132378 + 0.50308139587 + 0.503170675032 + 0.503259969867 + 0.503349280377 + 0.503438606566 + 0.503527948435 + 0.503617305989 + 0.503706679229 + 0.503796068158 + 0.503885472779 + 0.503974893095 + 0.504064329108 + 0.504153780822 + 0.504243248239 + 0.504332731361 + 0.504422230192 + 0.504511744734 + 0.504601274991 + 0.504690820964 + 0.504780382657 + 0.504869960072 + 0.504959553212 + 0.50504916208 + 0.505138786678 + 0.505228427011 + 0.505318083079 + 0.505407754886 + 0.505497442434 + 0.505587145728 + 0.505676864768 + 0.505766599558 + 0.505856350101 + 0.5059461164 + 0.506035898456 + 0.506125696274 + 0.506215509856 + 0.506305339204 + 0.506395184321 + 0.506485045211 + 0.506574921875 + 0.506664814317 + 0.50675472254 + 0.506844646545 + 0.506934586337 + 0.507024541917 + 0.507114513288 + 0.507204500454 + 0.507294503417 + 0.50738452218 + 0.507474556745 + 0.507564607116 + 0.507654673295 + 0.507744755285 + 0.507834853088 + 0.507924966708 + 0.508015096147 + 0.508105241408 + 0.508195402493 + 0.508285579407 + 0.50837577215 + 0.508465980727 + 0.50855620514 + 0.508646445391 + 0.508736701484 + 0.508826973421 + 0.508917261205 + 0.509007564839 + 0.509097884325 + 0.509188219667 + 0.509278570867 + 0.509368937928 + 0.509459320853 + 0.509549719644 + 0.509640134304 + 0.509730564837 + 0.509821011244 + 0.509911473529 + 0.510001951694 + 0.510092445743 + 0.510182955677 + 0.510273481501 + 0.510364023216 + 0.510454580825 + 0.510545154331 + 0.510635743738 + 0.510726349047 + 0.510816970262 + 0.510907607385 + 0.510998260419 + 0.511088929367 + 0.511179614232 + 0.511270315016 + 0.511361031723 + 0.511451764355 + 0.511542512914 + 0.511633277404 + 0.511724057828 + 0.511814854188 + 0.511905666487 + 0.511996494728 + 0.512087338914 + 0.512178199047 + 0.512269075131 + 0.512359967167 + 0.512450875159 + 0.51254179911 + 0.512632739023 + 0.5127236949 + 0.512814666743 + 0.512905654557 + 0.512996658344 + 0.513087678105 + 0.513178713846 + 0.513269765567 + 0.513360833272 + 0.513451916964 + 0.513543016646 + 0.513634132319 + 0.513725263988 + 0.513816411655 + 0.513907575323 + 0.513998754994 + 0.514089950671 + 0.514181162358 + 0.514272390056 + 0.51436363377 + 0.514454893501 + 0.514546169252 + 0.514637461027 + 0.514728768828 + 0.514820092657 + 0.514911432519 + 0.515002788414 + 0.515094160347 + 0.515185548321 + 0.515276952337 + 0.515368372399 + 0.515459808509 + 0.515551260671 + 0.515642728887 + 0.51573421316 + 0.515825713493 + 0.515917229888 + 0.516008762349 + 0.516100310879 + 0.516191875479 + 0.516283456153 + 0.516375052904 + 0.516466665735 + 0.516558294648 + 0.516649939646 + 0.516741600733 + 0.51683327791 + 0.516924971181 + 0.517016680549 + 0.517108406015 + 0.517200147584 + 0.517291905258 + 0.51738367904 + 0.517475468933 + 0.517567274939 + 0.517659097061 + 0.517750935302 + 0.517842789666 + 0.517934660154 + 0.51802654677 + 0.518118449516 + 0.518210368396 + 0.518302303412 + 0.518394254567 + 0.518486221863 + 0.518578205304 + 0.518670204893 + 0.518762220632 + 0.518854252524 + 0.518946300572 + 0.519038364779 + 0.519130445147 + 0.51922254168 + 0.51931465438 + 0.519406783251 + 0.519498928294 + 0.519591089514 + 0.519683266911 + 0.519775460491 + 0.519867670255 + 0.519959896206 + 0.520052138347 + 0.520144396681 + 0.52023667121 + 0.520328961939 + 0.520421268868 + 0.520513592002 + 0.520605931343 + 0.520698286894 + 0.520790658658 + 0.520883046637 + 0.520975450835 + 0.521067871254 + 0.521160307897 + 0.521252760767 + 0.521345229868 + 0.521437715201 + 0.521530216769 + 0.521622734576 + 0.521715268624 + 0.521807818917 + 0.521900385456 + 0.521992968245 + 0.522085567287 + 0.522178182584 + 0.52227081414 + 0.522363461957 + 0.522456126038 + 0.522548806386 + 0.522641503004 + 0.522734215894 + 0.52282694506 + 0.522919690504 + 0.52301245223 + 0.52310523024 + 0.523198024536 + 0.523290835123 + 0.523383662002 + 0.523476505176 + 0.523569364649 + 0.523662240424 + 0.523755132502 + 0.523848040887 + 0.523940965583 + 0.524033906591 + 0.524126863914 + 0.524219837556 + 0.524312827519 + 0.524405833806 + 0.524498856421 + 0.524591895365 + 0.524684950642 + 0.524778022255 + 0.524871110206 + 0.524964214498 + 0.525057335135 + 0.525150472119 + 0.525243625452 + 0.525336795139 + 0.525429981181 + 0.525523183582 + 0.525616402345 + 0.525709637471 + 0.525802888965 + 0.525896156829 + 0.525989441066 + 0.526082741679 + 0.52617605867 + 0.526269392043 + 0.5263627418 + 0.526456107945 + 0.52654949048 + 0.526642889408 + 0.526736304732 + 0.526829736455 + 0.526923184579 + 0.527016649108 + 0.527110130045 + 0.527203627391 + 0.527297141152 + 0.527390671328 + 0.527484217923 + 0.52757778094 + 0.527671360382 + 0.527764956251 + 0.527858568551 + 0.527952197285 + 0.528045842454 + 0.528139504063 + 0.528233182114 + 0.52832687661 + 0.528420587554 + 0.528514314948 + 0.528608058796 + 0.528701819101 + 0.528795595864 + 0.528889389091 + 0.528983198782 + 0.529077024941 + 0.529170867572 + 0.529264726676 + 0.529358602257 + 0.529452494318 + 0.529546402861 + 0.529640327889 + 0.529734269406 + 0.529828227414 + 0.529922201916 + 0.530016192915 + 0.530110200414 + 0.530204224416 + 0.530298264923 + 0.530392321939 + 0.530486395467 + 0.530580485509 + 0.530674592068 + 0.530768715147 + 0.53086285475 + 0.530957010878 + 0.531051183535 + 0.531145372724 + 0.531239578448 + 0.531333800709 + 0.531428039511 + 0.531522294856 + 0.531616566748 + 0.531710855188 + 0.531805160181 + 0.531899481729 + 0.531993819834 + 0.532088174501 + 0.532182545731 + 0.532276933528 + 0.532371337894 + 0.532465758833 + 0.532560196347 + 0.53265465044 + 0.532749121114 + 0.532843608371 + 0.532938112216 + 0.533032632651 + 0.533127169678 + 0.533221723302 + 0.533316293523 + 0.533410880347 + 0.533505483775 + 0.53360010381 + 0.533694740456 + 0.533789393715 + 0.53388406359 + 0.533978750084 + 0.5340734532 + 0.534168172941 + 0.53426290931 + 0.534357662309 + 0.534452431942 + 0.534547218212 + 0.534642021121 + 0.534736840673 + 0.53483167687 + 0.534926529715 + 0.535021399212 + 0.535116285362 + 0.53521118817 + 0.535306107637 + 0.535401043768 + 0.535495996564 + 0.535590966029 + 0.535685952165 + 0.535780954977 + 0.535875974465 + 0.535971010634 + 0.536066063487 + 0.536161133026 + 0.536256219253 + 0.536351322174 + 0.536446441789 + 0.536541578102 + 0.536636731116 + 0.536731900834 + 0.536827087259 + 0.536922290394 + 0.537017510241 + 0.537112746804 + 0.537208000085 + 0.537303270088 + 0.537398556816 + 0.53749386027 + 0.537589180455 + 0.537684517373 + 0.537779871028 + 0.537875241421 + 0.537970628556 + 0.538066032437 + 0.538161453065 + 0.538256890444 + 0.538352344577 + 0.538447815467 + 0.538543303117 + 0.538638807529 + 0.538734328706 + 0.538829866652 + 0.53892542137 + 0.539020992862 + 0.539116581131 + 0.539212186181 + 0.539307808014 + 0.539403446632 + 0.539499102041 + 0.539594774241 + 0.539690463236 + 0.539786169029 + 0.539881891623 + 0.539977631021 + 0.540073387226 + 0.54016916024 + 0.540264950068 + 0.54036075671 + 0.540456580172 + 0.540552420455 + 0.540648277563 + 0.540744151498 + 0.540840042263 + 0.540935949862 + 0.541031874297 + 0.541127815572 + 0.541223773689 + 0.541319748651 + 0.541415740461 + 0.541511749122 + 0.541607774637 + 0.54170381701 + 0.541799876242 + 0.541895952338 + 0.541992045299 + 0.542088155129 + 0.542184281831 + 0.542280425408 + 0.542376585862 + 0.542472763198 + 0.542568957417 + 0.542665168522 + 0.542761396518 + 0.542857641406 + 0.542953903189 + 0.543050181871 + 0.543146477454 + 0.543242789942 + 0.543339119338 + 0.543435465643 + 0.543531828862 + 0.543628208998 + 0.543724606052 + 0.543821020029 + 0.543917450931 + 0.544013898762 + 0.544110363523 + 0.544206845219 + 0.544303343852 + 0.544399859425 + 0.544496391941 + 0.544592941403 + 0.544689507814 + 0.544786091177 + 0.544882691495 + 0.544979308771 + 0.545075943007 + 0.545172594208 + 0.545269262376 + 0.545365947513 + 0.545462649624 + 0.54555936871 + 0.545656104775 + 0.545752857822 + 0.545849627853 + 0.545946414872 + 0.546043218882 + 0.546140039886 + 0.546236877886 + 0.546333732886 + 0.546430604889 + 0.546527493897 + 0.546624399914 + 0.546721322943 + 0.546818262986 + 0.546915220046 + 0.547012194128 + 0.547109185233 + 0.547206193364 + 0.547303218525 + 0.547400260718 + 0.547497319947 + 0.547594396215 + 0.547691489524 + 0.547788599877 + 0.547885727278 + 0.54798287173 + 0.548080033234 + 0.548177211796 + 0.548274407417 + 0.5483716201 + 0.548468849849 + 0.548566096666 + 0.548663360554 + 0.548760641517 + 0.548857939558 + 0.548955254679 + 0.549052586883 + 0.549149936174 + 0.549247302554 + 0.549344686026 + 0.549442086595 + 0.549539504261 + 0.549636939029 + 0.549734390901 + 0.549831859881 + 0.549929345971 + 0.550026849175 + 0.550124369495 + 0.550221906934 + 0.550319461496 + 0.550417033184 + 0.550514622 + 0.550612227947 + 0.550709851029 + 0.550807491248 + 0.550905148608 + 0.551002823111 + 0.551100514761 + 0.551198223561 + 0.551295949513 + 0.55139369262 + 0.551491452886 + 0.551589230314 + 0.551687024906 + 0.551784836666 + 0.551882665596 + 0.5519805117 + 0.552078374981 + 0.552176255441 + 0.552274153084 + 0.552372067913 + 0.55246999993 + 0.552567949139 + 0.552665915543 + 0.552763899145 + 0.552861899947 + 0.552959917953 + 0.553057953166 + 0.553156005589 + 0.553254075225 + 0.553352162077 + 0.553450266147 + 0.553548387439 + 0.553646525957 + 0.553744681702 + 0.553842854679 + 0.553941044889 + 0.554039252336 + 0.554137477024 + 0.554235718954 + 0.554333978131 + 0.554432254557 + 0.554530548235 + 0.554628859168 + 0.55472718736 + 0.554825532813 + 0.55492389553 + 0.555022275514 + 0.555120672769 + 0.555219087297 + 0.555317519102 + 0.555415968186 + 0.555514434552 + 0.555612918204 + 0.555711419145 + 0.555809937377 + 0.555908472904 + 0.556007025728 + 0.556105595854 + 0.556204183283 + 0.556302788018 + 0.556401410064 + 0.556500049422 + 0.556598706097 + 0.55669738009 + 0.556796071405 + 0.556894780045 + 0.556993506014 + 0.557092249313 + 0.557191009947 + 0.557289787917 + 0.557388583228 + 0.557487395883 + 0.557586225883 + 0.557685073233 + 0.557783937935 + 0.557882819993 + 0.557981719409 + 0.558080636187 + 0.558179570329 + 0.55827852184 + 0.55837749072 + 0.558476476975 + 0.558575480606 + 0.558674501617 + 0.558773540011 + 0.558872595791 + 0.55897166896 + 0.559070759521 + 0.559169867477 + 0.559268992831 + 0.559368135587 + 0.559467295747 + 0.559566473314 + 0.559665668291 + 0.559764880682 + 0.559864110489 + 0.559963357716 + 0.560062622366 + 0.560161904441 + 0.560261203945 + 0.56036052088 + 0.560459855251 + 0.560559207059 + 0.560658576309 + 0.560757963002 + 0.560857367142 + 0.560956788733 + 0.561056227777 + 0.561155684277 + 0.561255158237 + 0.561354649658 + 0.561454158546 + 0.561553684902 + 0.561653228729 + 0.561752790031 + 0.561852368811 + 0.561951965072 + 0.562051578816 + 0.562151210048 + 0.56225085877 + 0.562350524984 + 0.562450208695 + 0.562549909905 + 0.562649628617 + 0.562749364835 + 0.562849118561 + 0.562948889799 + 0.563048678551 + 0.563148484821 + 0.563248308612 + 0.563348149926 + 0.563448008767 + 0.563547885139 + 0.563647779043 + 0.563747690484 + 0.563847619463 + 0.563947565985 + 0.564047530053 + 0.564147511669 + 0.564247510836 + 0.564347527558 + 0.564447561838 + 0.564547613678 + 0.564647683082 + 0.564747770053 + 0.564847874595 + 0.564947996709 + 0.5650481364 + 0.565148293669 + 0.565248468521 + 0.565348660959 + 0.565448870985 + 0.565549098603 + 0.565649343815 + 0.565749606626 + 0.565849887037 + 0.565950185052 + 0.566050500674 + 0.566150833906 + 0.566251184752 + 0.566351553214 + 0.566451939295 + 0.566552342999 + 0.566652764329 + 0.566753203287 + 0.566853659877 + 0.566954134102 + 0.567054625965 + 0.567155135469 + 0.567255662617 + 0.567356207413 + 0.567456769859 + 0.567557349958 + 0.567657947714 + 0.56775856313 + 0.567859196208 + 0.567959846953 + 0.568060515366 + 0.568161201451 + 0.568261905212 + 0.568362626651 + 0.568463365771 + 0.568564122576 + 0.568664897069 + 0.568765689252 + 0.568866499129 + 0.568967326703 + 0.569068171976 + 0.569169034954 + 0.569269915637 + 0.569370814029 + 0.569471730135 + 0.569572663955 + 0.569673615495 + 0.569774584756 + 0.569875571742 + 0.569976576456 + 0.570077598901 + 0.570178639081 + 0.570279696997 + 0.570380772655 + 0.570481866056 + 0.570582977203 + 0.5706841061 + 0.570785252751 + 0.570886417157 + 0.570987599323 + 0.57108879925 + 0.571190016944 + 0.571291252405 + 0.571392505639 + 0.571493776647 + 0.571595065433 + 0.571696371999 + 0.571797696351 + 0.571899038489 + 0.572000398417 + 0.57210177614 + 0.572203171658 + 0.572304584977 + 0.572406016098 + 0.572507465025 + 0.572608931762 + 0.572710416311 + 0.572811918675 + 0.572913438857 + 0.573014976861 + 0.57311653269 + 0.573218106347 + 0.573319697835 + 0.573421307156 + 0.573522934316 + 0.573624579315 + 0.573726242158 + 0.573827922848 + 0.573929621387 + 0.57403133778 + 0.574133072028 + 0.574234824136 + 0.574336594106 + 0.574438381942 + 0.574540187646 + 0.574642011222 + 0.574743852672 + 0.574845712001 + 0.574947589211 + 0.575049484305 + 0.575151397287 + 0.575253328159 + 0.575355276925 + 0.575457243587 + 0.57555922815 + 0.575661230616 + 0.575763250988 + 0.57586528927 + 0.575967345464 + 0.576069419574 + 0.576171511602 + 0.576273621553 + 0.576375749429 + 0.576477895233 + 0.576580058969 + 0.576682240639 + 0.576784440247 + 0.576886657796 + 0.576988893289 + 0.577091146729 + 0.577193418119 + 0.577295707463 + 0.577398014763 + 0.577500340024 + 0.577602683247 + 0.577705044436 + 0.577807423595 + 0.577909820726 + 0.578012235832 + 0.578114668918 + 0.578217119985 + 0.578319589037 + 0.578422076077 + 0.578524581109 + 0.578627104135 + 0.578729645159 + 0.578832204184 + 0.578934781213 + 0.579037376249 + 0.579139989295 + 0.579242620354 + 0.579345269431 + 0.579447936527 + 0.579550621646 + 0.579653324791 + 0.579756045965 + 0.579858785172 + 0.579961542414 + 0.580064317696 + 0.580167111019 + 0.580269922387 + 0.580372751804 + 0.580475599272 + 0.580578464794 + 0.580681348375 + 0.580784250016 + 0.580887169721 + 0.580990107494 + 0.581093063338 + 0.581196037254 + 0.581299029248 + 0.581402039322 + 0.581505067479 + 0.581608113722 + 0.581711178055 + 0.58181426048 + 0.581917361001 + 0.582020479622 + 0.582123616344 + 0.582226771172 + 0.582329944109 + 0.582433135157 + 0.58253634432 + 0.582639571602 + 0.582742817004 + 0.582846080531 + 0.582949362186 + 0.583052661972 + 0.583155979891 + 0.583259315948 + 0.583362670145 + 0.583466042486 + 0.583569432973 + 0.583672841611 + 0.583776268401 + 0.583879713348 + 0.583983176455 + 0.584086657724 + 0.584190157159 + 0.584293674763 + 0.584397210539 + 0.584500764491 + 0.584604336621 + 0.584707926934 + 0.584811535431 + 0.584915162116 + 0.585018806993 + 0.585122470065 + 0.585226151334 + 0.585329850804 + 0.585433568479 + 0.585537304361 + 0.585641058453 + 0.585744830759 + 0.585848621282 + 0.585952430026 + 0.586056256992 + 0.586160102186 + 0.586263965609 + 0.586367847265 + 0.586471747157 + 0.586575665288 + 0.586679601662 + 0.586783556282 + 0.586887529151 + 0.586991520272 + 0.587095529648 + 0.587199557283 + 0.58730360318 + 0.587407667342 + 0.587511749772 + 0.587615850473 + 0.587719969449 + 0.587824106703 + 0.587928262238 + 0.588032436057 + 0.588136628164 + 0.588240838561 + 0.588345067252 + 0.58844931424 + 0.588553579529 + 0.588657863121 + 0.58876216502 + 0.588866485228 + 0.58897082375 + 0.589075180588 + 0.589179555746 + 0.589283949227 + 0.589388361033 + 0.589492791169 + 0.589597239638 + 0.589701706442 + 0.589806191584 + 0.589910695069 + 0.5900152169 + 0.590119757079 + 0.590224315609 + 0.590328892495 + 0.590433487739 + 0.590538101344 + 0.590642733314 + 0.590747383652 + 0.59085205236 + 0.590956739444 + 0.591061444904 + 0.591166168746 + 0.591270910972 + 0.591375671584 + 0.591480450588 + 0.591585247985 + 0.591690063779 + 0.591794897973 + 0.59189975057 + 0.592004621574 + 0.592109510988 + 0.592214418815 + 0.592319345058 + 0.592424289721 + 0.592529252807 + 0.592634234318 + 0.592739234259 + 0.592844252633 + 0.592949289442 + 0.59305434469 + 0.59315941838 + 0.593264510515 + 0.5933696211 + 0.593474750136 + 0.593579897627 + 0.593685063577 + 0.593790247988 + 0.593895450865 + 0.594000672209 + 0.594105912024 + 0.594211170315 + 0.594316447083 + 0.594421742332 + 0.594527056065 + 0.594632388286 + 0.594737738998 + 0.594843108204 + 0.594948495907 + 0.595053902111 + 0.595159326819 + 0.595264770033 + 0.595370231758 + 0.595475711996 + 0.595581210752 + 0.595686728027 + 0.595792263825 + 0.595897818151 + 0.596003391005 + 0.596108982393 + 0.596214592318 + 0.596320220782 + 0.596425867788 + 0.596531533341 + 0.596637217443 + 0.596742920098 + 0.596848641308 + 0.596954381078 + 0.597060139409 + 0.597165916307 + 0.597271711773 + 0.597377525812 + 0.597483358426 + 0.597589209618 + 0.597695079393 + 0.597800967752 + 0.597906874701 + 0.59801280024 + 0.598118744375 + 0.598224707108 + 0.598330688443 + 0.598436688382 + 0.598542706929 + 0.598648744088 + 0.598754799861 + 0.598860874252 + 0.598966967264 + 0.5990730789 + 0.599179209164 + 0.599285358059 + 0.599391525588 + 0.599497711755 + 0.599603916562 + 0.599710140014 + 0.599816382112 + 0.599922642861 + 0.600028922264 + 0.600135220324 + 0.600241537044 + 0.600347872428 + 0.600454226479 + 0.6005605992 + 0.600666990595 + 0.600773400666 + 0.600879829418 + 0.600986276852 + 0.601092742973 + 0.601199227785 + 0.601305731289 + 0.601412253489 + 0.60151879439 + 0.601625353993 + 0.601731932303 + 0.601838529322 + 0.601945145054 + 0.602051779502 + 0.60215843267 + 0.60226510456 + 0.602371795176 + 0.602478504522 + 0.6025852326 + 0.602691979414 + 0.602798744967 + 0.602905529262 + 0.603012332303 + 0.603119154094 + 0.603225994636 + 0.603332853934 + 0.603439731991 + 0.60354662881 + 0.603653544395 + 0.603760478748 + 0.603867431874 + 0.603974403775 + 0.604081394454 + 0.604188403916 + 0.604295432162 + 0.604402479198 + 0.604509545025 + 0.604616629647 + 0.604723733068 + 0.60483085529 + 0.604937996317 + 0.605045156153 + 0.6051523348 + 0.605259532263 + 0.605366748543 + 0.605473983646 + 0.605581237573 + 0.605688510328 + 0.605795801914 + 0.605903112336 + 0.606010441595 + 0.606117789696 + 0.606225156642 + 0.606332542435 + 0.60643994708 + 0.60654737058 + 0.606654812937 + 0.606762274156 + 0.606869754239 + 0.60697725319 + 0.607084771012 + 0.607192307709 + 0.607299863284 + 0.607407437739 + 0.607515031079 + 0.607622643307 + 0.607730274426 + 0.607837924439 + 0.60794559335 + 0.608053281162 + 0.608160987878 + 0.608268713502 + 0.608376458037 + 0.608484221486 + 0.608592003853 + 0.608699805141 + 0.608807625353 + 0.608915464493 + 0.609023322563 + 0.609131199568 + 0.60923909551 + 0.609347010393 + 0.60945494422 + 0.609562896995 + 0.60967086872 + 0.6097788594 + 0.609886869038 + 0.609994897636 + 0.610102945198 + 0.610211011728 + 0.610319097228 + 0.610427201703 + 0.610535325155 + 0.610643467588 + 0.610751629005 + 0.61085980941 + 0.610968008805 + 0.611076227194 + 0.611184464581 + 0.611292720969 + 0.611400996361 + 0.61150929076 + 0.611617604171 + 0.611725936595 + 0.611834288037 + 0.6119426585 + 0.612051047986 + 0.612159456501 + 0.612267884046 + 0.612376330625 + 0.612484796242 + 0.6125932809 + 0.612701784602 + 0.612810307351 + 0.612918849152 + 0.613027410007 + 0.613135989919 + 0.613244588892 + 0.61335320693 + 0.613461844035 + 0.613570500211 + 0.613679175461 + 0.613787869789 + 0.613896583198 + 0.614005315692 + 0.614114067273 + 0.614222837945 + 0.614331627712 + 0.614440436576 + 0.614549264542 + 0.614658111612 + 0.61476697779 + 0.614875863079 + 0.614984767483 + 0.615093691004 + 0.615202633647 + 0.615311595414 + 0.61542057631 + 0.615529576336 + 0.615638595498 + 0.615747633797 + 0.615856691238 + 0.615965767824 + 0.616074863557 + 0.616183978442 + 0.616293112483 + 0.616402265681 + 0.616511438041 + 0.616620629565 + 0.616729840258 + 0.616839070123 + 0.616948319163 + 0.617057587381 + 0.617166874781 + 0.617276181366 + 0.61738550714 + 0.617494852105 + 0.617604216266 + 0.617713599625 + 0.617823002186 + 0.617932423953 + 0.618041864928 + 0.618151325115 + 0.618260804518 + 0.61837030314 + 0.618479820984 + 0.618589358053 + 0.618698914352 + 0.618808489883 + 0.618918084649 + 0.619027698655 + 0.619137331903 + 0.619246984397 + 0.61935665614 + 0.619466347136 + 0.619576057387 + 0.619685786898 + 0.619795535672 + 0.619905303712 + 0.620015091022 + 0.620124897604 + 0.620234723463 + 0.620344568601 + 0.620454433022 + 0.62056431673 + 0.620674219727 + 0.620784142018 + 0.620894083606 + 0.621004044493 + 0.621114024684 + 0.621224024181 + 0.621334042989 + 0.62144408111 + 0.621554138548 + 0.621664215306 + 0.621774311388 + 0.621884426797 + 0.621994561537 + 0.62210471561 + 0.622214889021 + 0.622325081772 + 0.622435293868 + 0.622545525311 + 0.622655776105 + 0.622766046253 + 0.622876335758 + 0.622986644625 + 0.623096972856 + 0.623207320455 + 0.623317687426 + 0.623428073771 + 0.623538479494 + 0.623648904598 + 0.623759349087 + 0.623869812965 + 0.623980296234 + 0.624090798899 + 0.624201320961 + 0.624311862426 + 0.624422423296 + 0.624533003574 + 0.624643603265 + 0.624754222371 + 0.624864860896 + 0.624975518844 + 0.625086196217 + 0.625196893019 + 0.625307609254 + 0.625418344925 + 0.625529100035 + 0.625639874588 + 0.625750668587 + 0.625861482036 + 0.625972314938 + 0.626083167296 + 0.626194039114 + 0.626304930395 + 0.626415841143 + 0.626526771362 + 0.626637721053 + 0.626748690222 + 0.626859678871 + 0.626970687004 + 0.627081714624 + 0.627192761734 + 0.627303828339 + 0.627414914441 + 0.627526020044 + 0.627637145151 + 0.627748289766 + 0.627859453892 + 0.627970637533 + 0.628081840692 + 0.628193063372 + 0.628304305577 + 0.628415567311 + 0.628526848576 + 0.628638149376 + 0.628749469715 + 0.628860809596 + 0.628972169022 + 0.629083547997 + 0.629194946525 + 0.629306364608 + 0.62941780225 + 0.629529259455 + 0.629640736226 + 0.629752232567 + 0.62986374848 + 0.62997528397 + 0.63008683904 + 0.630198413692 + 0.630310007932 + 0.630421621761 + 0.630533255184 + 0.630644908204 + 0.630756580825 + 0.630868273049 + 0.63097998488 + 0.631091716323 + 0.631203467379 + 0.631315238053 + 0.631427028348 + 0.631538838268 + 0.631650667816 + 0.631762516995 + 0.631874385808 + 0.63198627426 + 0.632098182354 + 0.632210110093 + 0.632322057481 + 0.632434024521 + 0.632546011216 + 0.632658017571 + 0.632770043587 + 0.63288208927 + 0.632994154622 + 0.633106239647 + 0.633218344348 + 0.633330468728 + 0.633442612792 + 0.633554776543 + 0.633666959983 + 0.633779163117 + 0.633891385948 + 0.63400362848 + 0.634115890715 + 0.634228172658 + 0.634340474312 + 0.63445279568 + 0.634565136765 + 0.634677497572 + 0.634789878103 + 0.634902278363 + 0.635014698354 + 0.63512713808 + 0.635239597545 + 0.635352076752 + 0.635464575704 + 0.635577094405 + 0.635689632858 + 0.635802191068 + 0.635914769036 + 0.636027366768 + 0.636139984265 + 0.636252621533 + 0.636365278573 + 0.636477955391 + 0.636590651988 + 0.636703368369 + 0.636816104537 + 0.636928860496 + 0.637041636248 + 0.637154431798 + 0.637267247149 + 0.637380082305 + 0.637492937268 + 0.637605812043 + 0.637718706633 + 0.637831621041 + 0.637944555271 + 0.638057509327 + 0.638170483211 + 0.638283476927 + 0.638396490479 + 0.638509523871 + 0.638622577105 + 0.638735650185 + 0.638848743115 + 0.638961855899 + 0.639074988539 + 0.639188141039 + 0.639301313402 + 0.639414505633 + 0.639527717735 + 0.63964094971 + 0.639754201563 + 0.639867473298 + 0.639980764917 + 0.640094076423 + 0.640207407822 + 0.640320759115 + 0.640434130307 + 0.640547521401 + 0.640660932401 + 0.64077436331 + 0.640887814131 + 0.641001284868 + 0.641114775524 + 0.641228286104 + 0.64134181661 + 0.641455367046 + 0.641568937416 + 0.641682527723 + 0.64179613797 + 0.641909768161 + 0.642023418299 + 0.642137088389 + 0.642250778433 + 0.642364488435 + 0.642478218399 + 0.642591968328 + 0.642705738225 + 0.642819528094 + 0.642933337939 + 0.643047167762 + 0.643161017569 + 0.643274887361 + 0.643388777143 + 0.643502686918 + 0.64361661669 + 0.643730566461 + 0.643844536236 + 0.643958526019 + 0.644072535812 + 0.644186565619 + 0.644300615444 + 0.64441468529 + 0.64452877516 + 0.644642885059 + 0.644757014989 + 0.644871164955 + 0.64498533496 + 0.645099525006 + 0.645213735099 + 0.645327965241 + 0.645442215435 + 0.645556485686 + 0.645670775997 + 0.645785086371 + 0.645899416813 + 0.646013767324 + 0.64612813791 + 0.646242528573 + 0.646356939316 + 0.646471370145 + 0.646585821062 + 0.64670029207 + 0.646814783173 + 0.646929294375 + 0.647043825679 + 0.647158377088 + 0.647272948607 + 0.647387540239 + 0.647502151987 + 0.647616783855 + 0.647731435846 + 0.647846107964 + 0.647960800212 + 0.648075512594 + 0.648190245114 + 0.648304997775 + 0.64841977058 + 0.648534563533 + 0.648649376638 + 0.648764209899 + 0.648879063317 + 0.648993936899 + 0.649108830645 + 0.649223744562 + 0.649338678651 + 0.649453632916 + 0.649568607361 + 0.64968360199 + 0.649798616806 + 0.649913651813 + 0.650028707013 + 0.650143782411 + 0.650258878011 + 0.650373993815 + 0.650489129827 + 0.650604286052 + 0.650719462491 + 0.65083465915 + 0.650949876031 + 0.651065113138 + 0.651180370475 + 0.651295648045 + 0.651410945851 + 0.651526263898 + 0.651641602189 + 0.651756960727 + 0.651872339515 + 0.651987738559 + 0.65210315786 + 0.652218597423 + 0.652334057251 + 0.652449537348 + 0.652565037717 + 0.652680558361 + 0.652796099286 + 0.652911660493 + 0.653027241986 + 0.65314284377 + 0.653258465847 + 0.653374108221 + 0.653489770896 + 0.653605453876 + 0.653721157163 + 0.653836880762 + 0.653952624675 + 0.654068388907 + 0.654184173462 + 0.654299978342 + 0.654415803551 + 0.654531649093 + 0.654647514972 + 0.65476340119 + 0.654879307752 + 0.654995234661 + 0.655111181921 + 0.655227149535 + 0.655343137507 + 0.65545914584 + 0.655575174539 + 0.655691223605 + 0.655807293044 + 0.655923382859 + 0.656039493053 + 0.65615562363 + 0.656271774593 + 0.656387945946 + 0.656504137693 + 0.656620349837 + 0.656736582382 + 0.656852835331 + 0.656969108688 + 0.657085402456 + 0.65720171664 + 0.657318051242 + 0.657434406267 + 0.657550781717 + 0.657667177597 + 0.65778359391 + 0.657900030659 + 0.658016487848 + 0.658132965482 + 0.658249463562 + 0.658365982094 + 0.65848252108 + 0.658599080525 + 0.658715660431 + 0.658832260802 + 0.658948881642 + 0.659065522955 + 0.659182184744 + 0.659298867012 + 0.659415569764 + 0.659532293003 + 0.659649036732 + 0.659765800955 + 0.659882585676 + 0.659999390898 + 0.660116216625 + 0.660233062861 + 0.660349929608 + 0.660466816871 + 0.660583724654 + 0.660700652959 + 0.660817601791 + 0.660934571153 + 0.661051561049 + 0.661168571481 + 0.661285602455 + 0.661402653973 + 0.66151972604 + 0.661636818658 + 0.661753931831 + 0.661871065564 + 0.661988219859 + 0.66210539472 + 0.66222259015 + 0.662339806154 + 0.662457042736 + 0.662574299897 + 0.662691577643 + 0.662808875977 + 0.662926194902 + 0.663043534422 + 0.663160894541 + 0.663278275262 + 0.663395676589 + 0.663513098526 + 0.663630541076 + 0.663748004242 + 0.663865488029 + 0.66398299244 + 0.664100517478 + 0.664218063148 + 0.664335629452 + 0.664453216395 + 0.66457082398 + 0.664688452211 + 0.664806101091 + 0.664923770624 + 0.665041460814 + 0.665159171664 + 0.665276903177 + 0.665394655359 + 0.665512428211 + 0.665630221738 + 0.665748035943 + 0.665865870831 + 0.665983726404 + 0.666101602666 + 0.666219499621 + 0.666337417273 + 0.666455355625 + 0.66657331468 + 0.666691294444 + 0.666809294918 + 0.666927316106 + 0.667045358013 + 0.667163420643 + 0.667281503997 + 0.667399608081 + 0.667517732898 + 0.667635878451 + 0.667754044745 + 0.667872231782 + 0.667990439567 + 0.668108668103 + 0.668226917393 + 0.668345187442 + 0.668463478253 + 0.668581789829 + 0.668700122175 + 0.668818475294 + 0.66893684919 + 0.669055243865 + 0.669173659325 + 0.669292095572 + 0.66941055261 + 0.669529030443 + 0.669647529075 + 0.669766048509 + 0.669884588748 + 0.670003149797 + 0.670121731659 + 0.670240334338 + 0.670358957837 + 0.670477602161 + 0.670596267312 + 0.670714953294 + 0.670833660112 + 0.670952387768 + 0.671071136266 + 0.671189905611 + 0.671308695805 + 0.671427506852 + 0.671546338757 + 0.671665191522 + 0.671784065151 + 0.671902959648 + 0.672021875017 + 0.672140811262 + 0.672259768385 + 0.672378746391 + 0.672497745283 + 0.672616765065 + 0.672735805741 + 0.672854867314 + 0.672973949788 + 0.673093053167 + 0.673212177454 + 0.673331322653 + 0.673450488767 + 0.673569675801 + 0.673688883758 + 0.673808112642 + 0.673927362455 + 0.674046633203 + 0.674165924889 + 0.674285237516 + 0.674404571088 + 0.674523925608 + 0.674643301082 + 0.674762697511 + 0.6748821149 + 0.675001553252 + 0.675121012571 + 0.675240492862 + 0.675359994126 + 0.675479516369 + 0.675599059594 + 0.675718623804 + 0.675838209003 + 0.675957815195 + 0.676077442384 + 0.676197090573 + 0.676316759766 + 0.676436449967 + 0.676556161179 + 0.676675893406 + 0.676795646652 + 0.67691542092 + 0.677035216214 + 0.677155032538 + 0.677274869895 + 0.67739472829 + 0.677514607725 + 0.677634508205 + 0.677754429733 + 0.677874372313 + 0.677994335949 + 0.678114320644 + 0.678234326402 + 0.678354353227 + 0.678474401122 + 0.678594470091 + 0.678714560138 + 0.678834671267 + 0.67895480348 + 0.679074956783 + 0.679195131178 + 0.67931532667 + 0.679435543262 + 0.679555780957 + 0.67967603976 + 0.679796319674 + 0.679916620703 + 0.68003694285 + 0.68015728612 + 0.680277650515 + 0.68039803604 + 0.680518442699 + 0.680638870495 + 0.680759319431 + 0.680879789512 + 0.681000280741 + 0.681120793122 + 0.681241326659 + 0.681361881355 + 0.681482457215 + 0.681603054241 + 0.681723672437 + 0.681844311808 + 0.681964972357 + 0.682085654087 + 0.682206357003 + 0.682327081108 + 0.682447826405 + 0.6825685929 + 0.682689380594 + 0.682810189492 + 0.682931019599 + 0.683051870916 + 0.683172743449 + 0.6832936372 + 0.683414552175 + 0.683535488375 + 0.683656445806 + 0.68377742447 + 0.683898424372 + 0.684019445515 + 0.684140487903 + 0.68426155154 + 0.684382636429 + 0.684503742574 + 0.684624869979 + 0.684746018648 + 0.684867188584 + 0.684988379792 + 0.685109592274 + 0.685230826034 + 0.685352081077 + 0.685473357406 + 0.685594655025 + 0.685715973937 + 0.685837314146 + 0.685958675657 + 0.686080058472 + 0.686201462595 + 0.686322888031 + 0.686444334783 + 0.686565802854 + 0.686687292249 + 0.686808802971 + 0.686930335024 + 0.687051888411 + 0.687173463137 + 0.687295059205 + 0.687416676619 + 0.687538315382 + 0.687659975499 + 0.687781656973 + 0.687903359808 + 0.688025084008 + 0.688146829576 + 0.688268596516 + 0.688390384832 + 0.688512194527 + 0.688634025606 + 0.688755878073 + 0.68887775193 + 0.688999647181 + 0.689121563831 + 0.689243501884 + 0.689365461342 + 0.68948744221 + 0.689609444491 + 0.689731468189 + 0.689853513309 + 0.689975579853 + 0.690097667826 + 0.690219777231 + 0.690341908071 + 0.690464060352 + 0.690586234076 + 0.690708429248 + 0.69083064587 + 0.690952883948 + 0.691075143484 + 0.691197424482 + 0.691319726946 + 0.691442050881 + 0.691564396289 + 0.691686763174 + 0.691809151541 + 0.691931561393 + 0.692053992733 + 0.692176445566 + 0.692298919895 + 0.692421415724 + 0.692543933057 + 0.692666471898 + 0.69278903225 + 0.692911614117 + 0.693034217503 + 0.693156842412 + 0.693279488848 + 0.693402156813 + 0.693524846313 + 0.693647557351 + 0.69377028993 + 0.693893044055 + 0.694015819728 + 0.694138616955 + 0.694261435739 + 0.694384276083 + 0.694507137991 + 0.694630021467 + 0.694752926516 + 0.69487585314 + 0.694998801343 + 0.69512177113 + 0.695244762504 + 0.695367775468 + 0.695490810028 + 0.695613866185 + 0.695736943945 + 0.695860043311 + 0.695983164286 + 0.696106306876 + 0.696229471082 + 0.69635265691 + 0.696475864363 + 0.696599093444 + 0.696722344158 + 0.696845616509 + 0.696968910499 + 0.697092226134 + 0.697215563416 + 0.69733892235 + 0.697462302939 + 0.697585705187 + 0.697709129099 + 0.697832574677 + 0.697956041925 + 0.698079530848 + 0.698203041449 + 0.698326573732 + 0.698450127701 + 0.69857370336 + 0.698697300712 + 0.698820919761 + 0.698944560511 + 0.699068222966 + 0.69919190713 + 0.699315613006 + 0.699439340598 + 0.69956308991 + 0.699686860947 + 0.699810653711 + 0.699934468206 + 0.700058304437 + 0.700182162407 + 0.70030604212 + 0.700429943579 + 0.70055386679 + 0.700677811754 + 0.700801778477 + 0.700925766962 + 0.701049777213 + 0.701173809234 + 0.701297863028 + 0.701421938599 + 0.701546035952 + 0.701670155089 + 0.701794296015 + 0.701918458734 + 0.70204264325 + 0.702166849566 + 0.702291077685 + 0.702415327613 + 0.702539599353 + 0.702663892908 + 0.702788208282 + 0.70291254548 + 0.703036904505 + 0.703161285361 + 0.703285688051 + 0.703410112581 + 0.703534558952 + 0.70365902717 + 0.703783517238 + 0.70390802916 + 0.704032562939 + 0.70415711858 + 0.704281696087 + 0.704406295463 + 0.704530916712 + 0.704655559838 + 0.704780224844 + 0.704904911736 + 0.705029620516 + 0.705154351188 + 0.705279103756 + 0.705403878224 + 0.705528674597 + 0.705653492877 + 0.705778333068 + 0.705903195175 + 0.706028079201 + 0.70615298515 + 0.706277913026 + 0.706402862833 + 0.706527834574 + 0.706652828254 + 0.706777843876 + 0.706902881445 + 0.707027940963 + 0.707153022436 + 0.707278125866 + 0.707403251257 + 0.707528398614 + 0.707653567941 + 0.707778759241 + 0.707903972517 + 0.708029207775 + 0.708154465017 + 0.708279744248 + 0.708405045471 + 0.708530368691 + 0.708655713911 + 0.708781081134 + 0.708906470366 + 0.70903188161 + 0.709157314869 + 0.709282770148 + 0.70940824745 + 0.709533746779 + 0.709659268139 + 0.709784811535 + 0.709910376969 + 0.710035964446 + 0.710161573969 + 0.710287205543 + 0.710412859171 + 0.710538534857 + 0.710664232606 + 0.71078995242 + 0.710915694304 + 0.711041458262 + 0.711167244297 + 0.711293052414 + 0.711418882616 + 0.711544734908 + 0.711670609292 + 0.711796505773 + 0.711922424355 + 0.712048365042 + 0.712174327837 + 0.712300312745 + 0.712426319769 + 0.712552348914 + 0.712678400182 + 0.712804473579 + 0.712930569107 + 0.713056686771 + 0.713182826575 + 0.713308988522 + 0.713435172617 + 0.713561378863 + 0.713687607264 + 0.713813857824 + 0.713940130547 + 0.714066425437 + 0.714192742498 + 0.714319081734 + 0.714445443148 + 0.714571826744 + 0.714698232527 + 0.7148246605 + 0.714951110667 + 0.715077583032 + 0.715204077599 + 0.715330594372 + 0.715457133355 + 0.715583694551 + 0.715710277965 + 0.7158368836 + 0.71596351146 + 0.71609016155 + 0.716216833872 + 0.716343528432 + 0.716470245233 + 0.716596984278 + 0.716723745572 + 0.716850529119 + 0.716977334923 + 0.717104162986 + 0.717231013315 + 0.717357885911 + 0.71748478078 + 0.717611697924 + 0.717738637349 + 0.717865599057 + 0.717992583054 + 0.718119589342 + 0.718246617926 + 0.718373668809 + 0.718500741996 + 0.71862783749 + 0.718754955295 + 0.718882095416 + 0.719009257856 + 0.719136442618 + 0.719263649708 + 0.719390879129 + 0.719518130884 + 0.719645404979 + 0.719772701415 + 0.719900020199 + 0.720027361333 + 0.720154724821 + 0.720282110668 + 0.720409518877 + 0.720536949452 + 0.720664402397 + 0.720791877717 + 0.720919375414 + 0.721046895493 + 0.721174437958 + 0.721302002813 + 0.721429590062 + 0.721557199708 + 0.721684831755 + 0.721812486209 + 0.721940163071 + 0.722067862347 + 0.72219558404 + 0.722323328155 + 0.722451094695 + 0.722578883663 + 0.722706695065 + 0.722834528904 + 0.722962385183 + 0.723090263908 + 0.723218165081 + 0.723346088707 + 0.72347403479 + 0.723602003333 + 0.723729994341 + 0.723858007818 + 0.723986043767 + 0.724114102192 + 0.724242183097 + 0.724370286487 + 0.724498412365 + 0.724626560736 + 0.724754731602 + 0.724882924969 + 0.725011140839 + 0.725139379218 + 0.725267640108 + 0.725395923514 + 0.72552422944 + 0.72565255789 + 0.725780908868 + 0.725909282377 + 0.726037678422 + 0.726166097007 + 0.726294538135 + 0.726423001811 + 0.726551488038 + 0.726679996821 + 0.726808528163 + 0.726937082068 + 0.727065658541 + 0.727194257585 + 0.727322879204 + 0.727451523402 + 0.727580190184 + 0.727708879553 + 0.727837591513 + 0.727966326068 + 0.728095083221 + 0.728223862978 + 0.728352665342 + 0.728481490317 + 0.728610337907 + 0.728739208115 + 0.728868100947 + 0.728997016405 + 0.729125954494 + 0.729254915218 + 0.729383898581 + 0.729512904586 + 0.729641933238 + 0.729770984541 + 0.729900058498 + 0.730029155114 + 0.730158274392 + 0.730287416337 + 0.730416580953 + 0.730545768243 + 0.730674978211 + 0.730804210862 + 0.7309334662 + 0.731062744228 + 0.731192044951 + 0.731321368371 + 0.731450714495 + 0.731580083324 + 0.731709474864 + 0.731838889119 + 0.731968326092 + 0.732097785787 + 0.732227268208 + 0.73235677336 + 0.732486301246 + 0.73261585187 + 0.732745425237 + 0.73287502135 + 0.733004640213 + 0.733134281831 + 0.733263946206 + 0.733393633344 + 0.733523343249 + 0.733653075923 + 0.733782831372 + 0.733912609599 + 0.734042410608 + 0.734172234404 + 0.73430208099 + 0.73443195037 + 0.734561842548 + 0.734691757528 + 0.734821695315 + 0.734951655912 + 0.735081639323 + 0.735211645553 + 0.735341674605 + 0.735471726483 + 0.735601801191 + 0.735731898734 + 0.735862019115 + 0.735992162338 + 0.736122328407 + 0.736252517327 + 0.736382729102 + 0.736512963734 + 0.736643221229 + 0.736773501591 + 0.736903804822 + 0.737034130929 + 0.737164479913 + 0.73729485178 + 0.737425246534 + 0.737555664178 + 0.737686104716 + 0.737816568153 + 0.737947054493 + 0.738077563739 + 0.738208095895 + 0.738338650966 + 0.738469228956 + 0.738599829869 + 0.738730453708 + 0.738861100478 + 0.738991770182 + 0.739122462826 + 0.739253178412 + 0.739383916945 + 0.739514678428 + 0.739645462867 + 0.739776270264 + 0.739907100625 + 0.740037953952 + 0.74016883025 + 0.740299729523 + 0.740430651776 + 0.740561597011 + 0.740692565234 + 0.740823556447 + 0.740954570656 + 0.741085607864 + 0.741216668076 + 0.741347751294 + 0.741478857524 + 0.741609986769 + 0.741741139034 + 0.741872314322 + 0.742003512638 + 0.742134733985 + 0.742265978368 + 0.74239724579 + 0.742528536257 + 0.74265984977 + 0.742791186336 + 0.742922545957 + 0.743053928639 + 0.743185334384 + 0.743316763197 + 0.743448215082 + 0.743579690043 + 0.743711188084 + 0.74384270921 + 0.743974253423 + 0.744105820729 + 0.744237411131 + 0.744369024634 + 0.744500661241 + 0.744632320956 + 0.744764003784 + 0.744895709729 + 0.745027438794 + 0.745159190984 + 0.745290966303 + 0.745422764755 + 0.745554586343 + 0.745686431072 + 0.745818298947 + 0.74595018997 + 0.746082104147 + 0.746214041481 + 0.746346001976 + 0.746477985636 + 0.746609992466 + 0.74674202247 + 0.74687407565 + 0.747006152013 + 0.747138251561 + 0.747270374299 + 0.747402520231 + 0.74753468936 + 0.747666881692 + 0.747799097229 + 0.747931335977 + 0.748063597939 + 0.748195883119 + 0.748328191522 + 0.748460523151 + 0.74859287801 + 0.748725256104 + 0.748857657437 + 0.748990082012 + 0.749122529834 + 0.749255000907 + 0.749387495235 + 0.749520012822 + 0.749652553672 + 0.74978511779 + 0.749917705179 + 0.750050315843 + 0.750182949786 + 0.750315607013 + 0.750448287528 + 0.750580991335 + 0.750713718437 + 0.750846468839 + 0.750979242545 + 0.75111203956 + 0.751244859886 + 0.751377703529 + 0.751510570492 + 0.75164346078 + 0.751776374396 + 0.751909311345 + 0.752042271631 + 0.752175255257 + 0.752308262229 + 0.752441292549 + 0.752574346223 + 0.752707423253 + 0.752840523646 + 0.752973647403 + 0.75310679453 + 0.753239965031 + 0.75337315891 + 0.75350637617 + 0.753639616817 + 0.753772880853 + 0.753906168284 + 0.754039479113 + 0.754172813344 + 0.754306170982 + 0.75443955203 + 0.754572956493 + 0.754706384375 + 0.75483983568 + 0.754973310412 + 0.755106808575 + 0.755240330173 + 0.755373875211 + 0.755507443692 + 0.755641035621 + 0.755774651002 + 0.755908289838 + 0.756041952134 + 0.756175637895 + 0.756309347123 + 0.756443079824 + 0.756576836002 + 0.75671061566 + 0.756844418803 + 0.756978245434 + 0.757112095558 + 0.75724596918 + 0.757379866303 + 0.757513786931 + 0.757647731068 + 0.757781698719 + 0.757915689888 + 0.758049704578 + 0.758183742795 + 0.758317804541 + 0.758451889822 + 0.758585998641 + 0.758720131002 + 0.75885428691 + 0.758988466369 + 0.759122669383 + 0.759256895956 + 0.759391146092 + 0.759525419795 + 0.759659717069 + 0.759794037919 + 0.759928382349 + 0.760062750363 + 0.760197141964 + 0.760331557158 + 0.760465995948 + 0.760600458339 + 0.760734944334 + 0.760869453937 + 0.761003987154 + 0.761138543987 + 0.761273124441 + 0.761407728521 + 0.76154235623 + 0.761677007573 + 0.761811682554 + 0.761946381176 + 0.762081103444 + 0.762215849363 + 0.762350618936 + 0.762485412167 + 0.762620229061 + 0.762755069621 + 0.762889933853 + 0.76302482176 + 0.763159733346 + 0.763294668615 + 0.763429627572 + 0.76356461022 + 0.763699616565 + 0.763834646609 + 0.763969700358 + 0.764104777815 + 0.764239878984 + 0.764375003871 + 0.764510152478 + 0.76464532481 + 0.764780520871 + 0.764915740665 + 0.765050984197 + 0.765186251471 + 0.765321542491 + 0.76545685726 + 0.765592195784 + 0.765727558066 + 0.76586294411 + 0.765998353922 + 0.766133787504 + 0.766269244861 + 0.766404725997 + 0.766540230917 + 0.766675759624 + 0.766811312123 + 0.766946888418 + 0.767082488513 + 0.767218112412 + 0.76735376012 + 0.76748943164 + 0.767625126977 + 0.767760846135 + 0.767896589119 + 0.768032355931 + 0.768168146577 + 0.768303961061 + 0.768439799387 + 0.768575661559 + 0.768711547581 + 0.768847457457 + 0.768983391192 + 0.76911934879 + 0.769255330255 + 0.769391335592 + 0.769527364803 + 0.769663417894 + 0.769799494869 + 0.769935595732 + 0.770071720488 + 0.770207869139 + 0.770344041691 + 0.770480238148 + 0.770616458514 + 0.770752702793 + 0.770888970989 + 0.771025263107 + 0.77116157915 + 0.771297919124 + 0.771434283031 + 0.771570670877 + 0.771707082666 + 0.771843518401 + 0.771979978087 + 0.772116461729 + 0.772252969329 + 0.772389500894 + 0.772526056426 + 0.77266263593 + 0.77279923941 + 0.772935866871 + 0.773072518316 + 0.77320919375 + 0.773345893177 + 0.773482616602 + 0.773619364028 + 0.773756135459 + 0.773892930901 + 0.774029750356 + 0.77416659383 + 0.774303461326 + 0.774440352849 + 0.774577268404 + 0.774714207993 + 0.774851171621 + 0.774988159294 + 0.775125171014 + 0.775262206786 + 0.775399266615 + 0.775536350504 + 0.775673458457 + 0.77581059048 + 0.775947746576 + 0.776084926749 + 0.776222131004 + 0.776359359345 + 0.776496611776 + 0.776633888301 + 0.776771188925 + 0.776908513652 + 0.777045862485 + 0.77718323543 + 0.77732063249 + 0.77745805367 + 0.777595498974 + 0.777732968406 + 0.777870461971 + 0.778007979672 + 0.778145521514 + 0.778283087502 + 0.778420677638 + 0.778558291928 + 0.778695930376 + 0.778833592987 + 0.778971279763 + 0.77910899071 + 0.779246725832 + 0.779384485133 + 0.779522268617 + 0.779660076289 + 0.779797908153 + 0.779935764212 + 0.780073644472 + 0.780211548937 + 0.78034947761 + 0.780487430496 + 0.7806254076 + 0.780763408925 + 0.780901434476 + 0.781039484257 + 0.781177558272 + 0.781315656526 + 0.781453779022 + 0.781591925766 + 0.781730096761 + 0.781868292011 + 0.782006511522 + 0.782144755296 + 0.782283023339 + 0.782421315654 + 0.782559632247 + 0.78269797312 + 0.782836338279 + 0.782974727727 + 0.78311314147 + 0.78325157951 + 0.783390041854 + 0.783528528503 + 0.783667039464 + 0.78380557474 + 0.783944134336 + 0.784082718255 + 0.784221326502 + 0.784359959082 + 0.784498615999 + 0.784637297256 + 0.784776002858 + 0.78491473281 + 0.785053487115 + 0.785192265779 + 0.785331068805 + 0.785469896197 + 0.78560874796 + 0.785747624098 + 0.785886524616 + 0.786025449517 + 0.786164398806 + 0.786303372487 + 0.786442370565 + 0.786581393043 + 0.786720439927 + 0.78685951122 + 0.786998606926 + 0.787137727051 + 0.787276871597 + 0.78741604057 + 0.787555233974 + 0.787694451813 + 0.787833694092 + 0.787972960813 + 0.788112251983 + 0.788251567605 + 0.788390907684 + 0.788530272223 + 0.788669661228 + 0.788809074702 + 0.788948512649 + 0.789087975075 + 0.789227461983 + 0.789366973377 + 0.789506509262 + 0.789646069643 + 0.789785654523 + 0.789925263906 + 0.790064897798 + 0.790204556202 + 0.790344239123 + 0.790483946565 + 0.790623678532 + 0.790763435029 + 0.79090321606 + 0.791043021629 + 0.79118285174 + 0.791322706398 + 0.791462585608 + 0.791602489373 + 0.791742417697 + 0.791882370586 + 0.792022348043 + 0.792162350073 + 0.792302376679 + 0.792442427867 + 0.792582503641 + 0.792722604005 + 0.792862728963 + 0.793002878519 + 0.793143052679 + 0.793283251445 + 0.793423474823 + 0.793563722817 + 0.793703995432 + 0.79384429267 + 0.793984614538 + 0.794124961039 + 0.794265332177 + 0.794405727957 + 0.794546148383 + 0.79468659346 + 0.794827063191 + 0.794967557582 + 0.795108076636 + 0.795248620357 + 0.795389188751 + 0.795529781821 + 0.795670399573 + 0.795811042009 + 0.795951709134 + 0.796092400954 + 0.796233117471 + 0.796373858691 + 0.796514624617 + 0.796655415255 + 0.796796230608 + 0.796937070681 + 0.797077935478 + 0.797218825004 + 0.797359739262 + 0.797500678258 + 0.797641641995 + 0.797782630478 + 0.797923643711 + 0.798064681698 + 0.798205744445 + 0.798346831954 + 0.798487944232 + 0.798629081281 + 0.798770243106 + 0.798911429712 + 0.799052641103 + 0.799193877283 + 0.799335138257 + 0.799476424029 + 0.799617734603 + 0.799759069984 + 0.799900430176 + 0.800041815184 + 0.800183225011 + 0.800324659663 + 0.800466119142 + 0.800607603455 + 0.800749112605 + 0.800890646597 + 0.801032205434 + 0.801173789122 + 0.801315397665 + 0.801457031066 + 0.801598689331 + 0.801740372464 + 0.801882080469 + 0.80202381335 + 0.802165571112 + 0.80230735376 + 0.802449161297 + 0.802590993728 + 0.802732851057 + 0.802874733289 + 0.803016640428 + 0.803158572478 + 0.803300529445 + 0.803442511331 + 0.803584518142 + 0.803726549882 + 0.803868606556 + 0.804010688167 + 0.80415279472 + 0.804294926219 + 0.80443708267 + 0.804579264075 + 0.80472147044 + 0.80486370177 + 0.805005958067 + 0.805148239337 + 0.805290545585 + 0.805432876814 + 0.805575233028 + 0.805717614234 + 0.805860020433 + 0.806002451632 + 0.806144907834 + 0.806287389044 + 0.806429895267 + 0.806572426506 + 0.806714982766 + 0.806857564051 + 0.807000170366 + 0.807142801715 + 0.807285458103 + 0.807428139534 + 0.807570846012 + 0.807713577542 + 0.807856334128 + 0.807999115775 + 0.808141922487 + 0.808284754268 + 0.808427611123 + 0.808570493056 + 0.808713400071 + 0.808856332174 + 0.808999289367 + 0.809142271657 + 0.809285279047 + 0.809428311541 + 0.809571369145 + 0.809714451862 + 0.809857559696 + 0.810000692653 + 0.810143850737 + 0.810287033951 + 0.810430242302 + 0.810573475791 + 0.810716734426 + 0.810860018209 + 0.811003327145 + 0.811146661238 + 0.811290020494 + 0.811433404915 + 0.811576814508 + 0.811720249276 + 0.811863709223 + 0.812007194355 + 0.812150704675 + 0.812294240187 + 0.812437800898 + 0.812581386809 + 0.812724997927 + 0.812868634256 + 0.8130122958 + 0.813155982563 + 0.813299694549 + 0.813443431765 + 0.813587194212 + 0.813730981897 + 0.813874794824 + 0.814018632997 + 0.81416249642 + 0.814306385097 + 0.814450299035 + 0.814594238235 + 0.814738202705 + 0.814882192446 + 0.815026207465 + 0.815170247765 + 0.815314313351 + 0.815458404228 + 0.815602520399 + 0.81574666187 + 0.815890828644 + 0.816035020726 + 0.816179238121 + 0.816323480833 + 0.816467748866 + 0.816612042225 + 0.816756360915 + 0.816900704939 + 0.817045074303 + 0.81718946901 + 0.817333889065 + 0.817478334473 + 0.817622805238 + 0.817767301365 + 0.817911822857 + 0.81805636972 + 0.818200941958 + 0.818345539575 + 0.818490162576 + 0.818634810964 + 0.818779484746 + 0.818924183925 + 0.819068908505 + 0.819213658491 + 0.819358433888 + 0.8195032347 + 0.819648060931 + 0.819792912586 + 0.81993778967 + 0.820082692186 + 0.82022762014 + 0.820372573535 + 0.820517552376 + 0.820662556669 + 0.820807586416 + 0.820952641623 + 0.821097722294 + 0.821242828433 + 0.821387960046 + 0.821533117136 + 0.821678299708 + 0.821823507767 + 0.821968741316 + 0.822114000361 + 0.822259284906 + 0.822404594955 + 0.822549930512 + 0.822695291584 + 0.822840678172 + 0.822986090284 + 0.823131527921 + 0.823276991091 + 0.823422479795 + 0.82356799404 + 0.82371353383 + 0.823859099169 + 0.824004690061 + 0.824150306512 + 0.824295948525 + 0.824441616105 + 0.824587309257 + 0.824733027985 + 0.824878772293 + 0.825024542187 + 0.82517033767 + 0.825316158747 + 0.825462005423 + 0.825607877701 + 0.825753775587 + 0.825899699086 + 0.8260456482 + 0.826191622936 + 0.826337623297 + 0.826483649288 + 0.826629700914 + 0.826775778179 + 0.826921881087 + 0.827068009643 + 0.827214163852 + 0.827360343718 + 0.827506549245 + 0.827652780438 + 0.827799037302 + 0.827945319841 + 0.828091628059 + 0.828237961961 + 0.828384321552 + 0.828530706836 + 0.828677117818 + 0.828823554502 + 0.828970016892 + 0.829116504993 + 0.82926301881 + 0.829409558347 + 0.829556123609 + 0.8297027146 + 0.829849331325 + 0.829995973787 + 0.830142641993 + 0.830289335946 + 0.83043605565 + 0.830582801111 + 0.830729572333 + 0.83087636932 + 0.831023192077 + 0.831170040608 + 0.831316914918 + 0.831463815011 + 0.831610740893 + 0.831757692567 + 0.831904670038 + 0.83205167331 + 0.832198702388 + 0.832345757278 + 0.832492837982 + 0.832639944506 + 0.832787076854 + 0.83293423503 + 0.833081419041 + 0.833228628888 + 0.833375864578 + 0.833523126115 + 0.833670413504 + 0.833817726748 + 0.833965065853 + 0.834112430823 + 0.834259821662 + 0.834407238376 + 0.834554680968 + 0.834702149443 + 0.834849643806 + 0.834997164061 + 0.835144710213 + 0.835292282267 + 0.835439880226 + 0.835587504096 + 0.835735153881 + 0.835882829585 + 0.836030531214 + 0.836178258771 + 0.836326012261 + 0.836473791689 + 0.83662159706 + 0.836769428377 + 0.836917285646 + 0.83706516887 + 0.837213078056 + 0.837361013206 + 0.837508974326 + 0.83765696142 + 0.837804974493 + 0.837953013549 + 0.838101078593 + 0.83824916963 + 0.838397286664 + 0.838545429699 + 0.83869359874 + 0.838841793792 + 0.83899001486 + 0.839138261947 + 0.839286535058 + 0.839434834199 + 0.839583159373 + 0.839731510585 + 0.83987988784 + 0.840028291142 + 0.840176720496 + 0.840325175906 + 0.840473657378 + 0.840622164915 + 0.840770698522 + 0.840919258204 + 0.841067843965 + 0.84121645581 + 0.841365093743 + 0.841513757769 + 0.841662447893 + 0.841811164119 + 0.841959906452 + 0.842108674896 + 0.842257469457 + 0.842406290137 + 0.842555136943 + 0.842704009879 + 0.842852908948 + 0.843001834157 + 0.843150785509 + 0.843299763009 + 0.843448766662 + 0.843597796472 + 0.843746852444 + 0.843895934582 + 0.844045042891 + 0.844194177376 + 0.844343338041 + 0.844492524891 + 0.84464173793 + 0.844790977163 + 0.844940242595 + 0.84508953423 + 0.845238852072 + 0.845388196127 + 0.845537566399 + 0.845686962893 + 0.845836385613 + 0.845985834563 + 0.846135309749 + 0.846284811175 + 0.846434338846 + 0.846583892765 + 0.846733472939 + 0.846883079371 + 0.847032712066 + 0.847182371029 + 0.847332056264 + 0.847481767776 + 0.847631505569 + 0.847781269648 + 0.847931060018 + 0.848080876684 + 0.848230719649 + 0.848380588919 + 0.848530484498 + 0.848680406391 + 0.848830354603 + 0.848980329137 + 0.849130329999 + 0.849280357193 + 0.849430410725 + 0.849580490597 + 0.849730596816 + 0.849880729386 + 0.850030888311 + 0.850181073596 + 0.850331285246 + 0.850481523265 + 0.850631787658 + 0.850782078429 + 0.850932395584 + 0.851082739127 + 0.851233109062 + 0.851383505394 + 0.851533928127 + 0.851684377267 + 0.851834852818 + 0.851985354785 + 0.852135883172 + 0.852286437983 + 0.852437019225 + 0.8525876269 + 0.852738261014 + 0.852888921572 + 0.853039608578 + 0.853190322036 + 0.853341061952 + 0.85349182833 + 0.853642621175 + 0.85379344049 + 0.853944286282 + 0.854095158555 + 0.854246057312 + 0.85439698256 + 0.854547934302 + 0.854698912543 + 0.854849917288 + 0.855000948542 + 0.855152006309 + 0.855303090594 + 0.855454201401 + 0.855605338735 + 0.855756502601 + 0.855907693004 + 0.856058909947 + 0.856210153437 + 0.856361423476 + 0.856512720071 + 0.856664043226 + 0.856815392945 + 0.856966769233 + 0.857118172095 + 0.857269601535 + 0.857421057558 + 0.857572540169 + 0.857724049373 + 0.857875585173 + 0.858027147575 + 0.858178736584 + 0.858330352203 + 0.858481994439 + 0.858633663295 + 0.858785358776 + 0.858937080886 + 0.859088829631 + 0.859240605016 + 0.859392407044 + 0.85954423572 + 0.85969609105 + 0.859847973037 + 0.859999881687 + 0.860151817004 + 0.860303778993 + 0.860455767659 + 0.860607783006 + 0.860759825039 + 0.860911893762 + 0.861063989181 + 0.861216111299 + 0.861368260122 + 0.861520435655 + 0.861672637902 + 0.861824866867 + 0.861977122556 + 0.862129404973 + 0.862281714123 + 0.86243405001 + 0.862586412639 + 0.862738802015 + 0.862891218143 + 0.863043661027 + 0.863196130672 + 0.863348627083 + 0.863501150264 + 0.86365370022 + 0.863806276956 + 0.863958880477 + 0.864111510786 + 0.86426416789 + 0.864416851792 + 0.864569562497 + 0.864722300011 + 0.864875064337 + 0.86502785548 + 0.865180673445 + 0.865333518238 + 0.865486389862 + 0.865639288322 + 0.865792213623 + 0.865945165769 + 0.866098144766 + 0.866251150619 + 0.86640418333 + 0.866557242907 + 0.866710329353 + 0.866863442672 + 0.86701658287 + 0.867169749952 + 0.867322943922 + 0.867476164784 + 0.867629412545 + 0.867782687207 + 0.867935988776 + 0.868089317257 + 0.868242672655 + 0.868396054974 + 0.868549464218 + 0.868702900393 + 0.868856363504 + 0.869009853555 + 0.86916337055 + 0.869316914495 + 0.869470485394 + 0.869624083252 + 0.869777708074 + 0.869931359864 + 0.870085038628 + 0.870238744369 + 0.870392477093 + 0.870546236805 + 0.870700023509 + 0.870853837209 + 0.871007677911 + 0.87116154562 + 0.871315440339 + 0.871469362075 + 0.871623310831 + 0.871777286612 + 0.871931289424 + 0.87208531927 + 0.872239376156 + 0.872393460086 + 0.872547571065 + 0.872701709098 + 0.872855874189 + 0.873010066344 + 0.873164285567 + 0.873318531862 + 0.873472805236 + 0.873627105691 + 0.873781433234 + 0.873935787868 + 0.874090169599 + 0.874244578431 + 0.87439901437 + 0.874553477419 + 0.874707967584 + 0.874862484869 + 0.875017029279 + 0.875171600819 + 0.875326199494 + 0.875480825308 + 0.875635478267 + 0.875790158374 + 0.875944865635 + 0.876099600055 + 0.876254361638 + 0.876409150388 + 0.876563966312 + 0.876718809413 + 0.876873679697 + 0.877028577167 + 0.87718350183 + 0.877338453689 + 0.877493432749 + 0.877648439016 + 0.877803472493 + 0.877958533187 + 0.878113621101 + 0.87826873624 + 0.878423878609 + 0.878579048213 + 0.878734245057 + 0.878889469145 + 0.879044720483 + 0.879199999074 + 0.879355304924 + 0.879510638038 + 0.87966599842 + 0.879821386075 + 0.879976801008 + 0.880132243224 + 0.880287712727 + 0.880443209523 + 0.880598733616 + 0.88075428501 + 0.880909863711 + 0.881065469724 + 0.881221103053 + 0.881376763703 + 0.881532451679 + 0.881688166985 + 0.881843909627 + 0.881999679609 + 0.882155476936 + 0.882311301613 + 0.882467153645 + 0.882623033036 + 0.882778939791 + 0.882934873915 + 0.883090835414 + 0.88324682429 + 0.883402840551 + 0.883558884199 + 0.883714955241 + 0.883871053681 + 0.884027179523 + 0.884183332772 + 0.884339513434 + 0.884495721514 + 0.884651957015 + 0.884808219943 + 0.884964510302 + 0.885120828098 + 0.885277173335 + 0.885433546018 + 0.885589946152 + 0.885746373741 + 0.885902828791 + 0.886059311307 + 0.886215821292 + 0.886372358752 + 0.886528923692 + 0.886685516117 + 0.886842136031 + 0.88699878344 + 0.887155458347 + 0.887312160758 + 0.887468890678 + 0.887625648112 + 0.887782433064 + 0.887939245539 + 0.888096085542 + 0.888252953078 + 0.888409848152 + 0.888566770768 + 0.888723720932 + 0.888880698648 + 0.889037703921 + 0.889194736756 + 0.889351797157 + 0.889508885131 + 0.88966600068 + 0.889823143811 + 0.889980314528 + 0.890137512836 + 0.890294738739 + 0.890451992243 + 0.890609273353 + 0.890766582073 + 0.890923918408 + 0.891081282363 + 0.891238673943 + 0.891396093153 + 0.891553539997 + 0.891711014481 + 0.891868516609 + 0.892026046386 + 0.892183603817 + 0.892341188906 + 0.89249880166 + 0.892656442082 + 0.892814110177 + 0.892971805951 + 0.893129529407 + 0.893287280552 + 0.89344505939 + 0.893602865925 + 0.893760700162 + 0.893918562108 + 0.894076451765 + 0.894234369139 + 0.894392314236 + 0.894550287059 + 0.894708287615 + 0.894866315906 + 0.89502437194 + 0.895182455719 + 0.89534056725 + 0.895498706537 + 0.895656873585 + 0.895815068398 + 0.895973290983 + 0.896131541343 + 0.896289819483 + 0.896448125409 + 0.896606459125 + 0.896764820636 + 0.896923209947 + 0.897081627063 + 0.897240071988 + 0.897398544729 + 0.897557045288 + 0.897715573672 + 0.897874129886 + 0.898032713933 + 0.89819132582 + 0.89834996555 + 0.898508633129 + 0.898667328562 + 0.898826051854 + 0.898984803009 + 0.899143582033 + 0.899302388929 + 0.899461223704 + 0.899620086362 + 0.899778976908 + 0.899937895346 + 0.900096841683 + 0.900255815922 + 0.900414818069 + 0.900573848128 + 0.900732906104 + 0.900891992002 + 0.901051105828 + 0.901210247586 + 0.901369417281 + 0.901528614917 + 0.901687840501 + 0.901847094035 + 0.902006375527 + 0.90216568498 + 0.902325022399 + 0.90248438779 + 0.902643781157 + 0.902803202505 + 0.902962651839 + 0.903122129164 + 0.903281634484 + 0.903441167806 + 0.903600729133 + 0.903760318471 + 0.903919935824 + 0.904079581198 + 0.904239254597 + 0.904398956027 + 0.904558685491 + 0.904718442996 + 0.904878228546 + 0.905038042145 + 0.9051978838 + 0.905357753514 + 0.905517651293 + 0.905677577142 + 0.905837531065 + 0.905997513068 + 0.906157523155 + 0.906317561332 + 0.906477627603 + 0.906637721973 + 0.906797844448 + 0.906957995031 + 0.907118173728 + 0.907278380545 + 0.907438615485 + 0.907598878555 + 0.907759169758 + 0.907919489099 + 0.908079836585 + 0.908240212219 + 0.908400616006 + 0.908561047952 + 0.908721508062 + 0.90888199634 + 0.909042512791 + 0.90920305742 + 0.909363630233 + 0.909524231234 + 0.909684860428 + 0.90984551782 + 0.910006203415 + 0.910166917218 + 0.910327659233 + 0.910488429467 + 0.910649227924 + 0.910810054608 + 0.910970909525 + 0.91113179268 + 0.911292704077 + 0.911453643722 + 0.911614611619 + 0.911775607774 + 0.911936632192 + 0.912097684877 + 0.912258765834 + 0.912419875069 + 0.912581012586 + 0.91274217839 + 0.912903372487 + 0.91306459488 + 0.913225845576 + 0.913387124579 + 0.913548431895 + 0.913709767527 + 0.913871131481 + 0.914032523763 + 0.914193944376 + 0.914355393327 + 0.914516870619 + 0.914678376259 + 0.91483991025 + 0.915001472598 + 0.915163063308 + 0.915324682385 + 0.915486329834 + 0.915648005659 + 0.915809709867 + 0.915971442461 + 0.916133203447 + 0.916294992829 + 0.916456810614 + 0.916618656805 + 0.916780531407 + 0.916942434427 + 0.917104365868 + 0.917266325736 + 0.917428314035 + 0.917590330771 + 0.917752375949 + 0.917914449573 + 0.918076551649 + 0.918238682181 + 0.918400841176 + 0.918563028636 + 0.918725244569 + 0.918887488978 + 0.919049761868 + 0.919212063246 + 0.919374393114 + 0.91953675148 + 0.919699138347 + 0.91986155372 + 0.920023997606 + 0.920186470007 + 0.920348970931 + 0.920511500381 + 0.920674058363 + 0.920836644881 + 0.920999259941 + 0.921161903548 + 0.921324575706 + 0.921487276422 + 0.921650005698 + 0.921812763542 + 0.921975549957 + 0.922138364949 + 0.922301208523 + 0.922464080684 + 0.922626981436 + 0.922789910785 + 0.922952868736 + 0.923115855294 + 0.923278870464 + 0.923441914251 + 0.923604986659 + 0.923768087695 + 0.923931217363 + 0.924094375667 + 0.924257562614 + 0.924420778207 + 0.924584022453 + 0.924747295356 + 0.924910596921 + 0.925073927154 + 0.925237286058 + 0.92540067364 + 0.925564089904 + 0.925727534855 + 0.925891008499 + 0.92605451084 + 0.926218041883 + 0.926381601634 + 0.926545190098 + 0.926708807279 + 0.926872453182 + 0.927036127814 + 0.927199831178 + 0.927363563279 + 0.927527324124 + 0.927691113716 + 0.927854932061 + 0.928018779164 + 0.92818265503 + 0.928346559664 + 0.928510493071 + 0.928674455256 + 0.928838446224 + 0.92900246598 + 0.92916651453 + 0.929330591878 + 0.92949469803 + 0.929658832989 + 0.929822996763 + 0.929987189355 + 0.93015141077 + 0.930315661014 + 0.930479940092 + 0.930644248009 + 0.930808584769 + 0.930972950379 + 0.931137344842 + 0.931301768164 + 0.931466220351 + 0.931630701406 + 0.931795211336 + 0.931959750146 + 0.932124317839 + 0.932288914422 + 0.9324535399 + 0.932618194277 + 0.932782877559 + 0.932947589751 + 0.933112330857 + 0.933277100883 + 0.933441899834 + 0.933606727716 + 0.933771584532 + 0.933936470289 + 0.934101384991 + 0.934266328643 + 0.934431301251 + 0.934596302819 + 0.934761333353 + 0.934926392858 + 0.935091481338 + 0.935256598799 + 0.935421745247 + 0.935586920685 + 0.935752125119 + 0.935917358555 + 0.936082620997 + 0.93624791245 + 0.93641323292 + 0.936578582411 + 0.93674396093 + 0.93690936848 + 0.937074805066 + 0.937240270695 + 0.937405765371 + 0.937571289099 + 0.937736841885 + 0.937902423732 + 0.938068034648 + 0.938233674635 + 0.938399343701 + 0.938565041849 + 0.938730769085 + 0.938896525415 + 0.939062310842 + 0.939228125372 + 0.939393969011 + 0.939559841764 + 0.939725743634 + 0.939891674629 + 0.940057634752 + 0.940223624009 + 0.940389642406 + 0.940555689946 + 0.940721766635 + 0.940887872479 + 0.941054007483 + 0.941220171651 + 0.941386364988 + 0.941552587501 + 0.941718839193 + 0.941885120071 + 0.942051430138 + 0.942217769401 + 0.942384137865 + 0.942550535534 + 0.942716962413 + 0.942883418509 + 0.943049903825 + 0.943216418368 + 0.943382962142 + 0.943549535152 + 0.943716137404 + 0.943882768902 + 0.944049429652 + 0.944216119659 + 0.944382838928 + 0.944549587464 + 0.944716365272 + 0.944883172358 + 0.945050008726 + 0.945216874382 + 0.945383769331 + 0.945550693578 + 0.945717647128 + 0.945884629986 + 0.946051642158 + 0.946218683648 + 0.946385754462 + 0.946552854605 + 0.946719984082 + 0.946887142898 + 0.947054331059 + 0.947221548568 + 0.947388795433 + 0.947556071657 + 0.947723377246 + 0.947890712206 + 0.94805807654 + 0.948225470255 + 0.948392893355 + 0.948560345847 + 0.948727827734 + 0.948895339022 + 0.949062879716 + 0.949230449821 + 0.949398049344 + 0.949565678287 + 0.949733336658 + 0.949901024461 + 0.950068741701 + 0.950236488383 + 0.950404264512 + 0.950572070095 + 0.950739905135 + 0.950907769638 + 0.95107566361 + 0.951243587054 + 0.951411539978 + 0.951579522385 + 0.951747534281 + 0.951915575671 + 0.95208364656 + 0.952251746954 + 0.952419876857 + 0.952588036275 + 0.952756225213 + 0.952924443677 + 0.95309269167 + 0.953260969199 + 0.953429276269 + 0.953597612885 + 0.953765979052 + 0.953934374775 + 0.954102800059 + 0.95427125491 + 0.954439739333 + 0.954608253333 + 0.954776796915 + 0.954945370085 + 0.955113972847 + 0.955282605207 + 0.95545126717 + 0.955619958741 + 0.955788679926 + 0.955957430729 + 0.956126211156 + 0.956295021212 + 0.956463860902 + 0.956632730231 + 0.956801629205 + 0.956970557829 + 0.957139516108 + 0.957308504047 + 0.957477521652 + 0.957646568927 + 0.957815645878 + 0.95798475251 + 0.958153888828 + 0.958323054838 + 0.958492250544 + 0.958661475952 + 0.958830731068 + 0.959000015895 + 0.95916933044 + 0.959338674708 + 0.959508048704 + 0.959677452433 + 0.959846885901 + 0.960016349112 + 0.960185842072 + 0.960355364786 + 0.960524917259 + 0.960694499497 + 0.960864111505 + 0.961033753288 + 0.96120342485 + 0.961373126198 + 0.961542857337 + 0.961712618272 + 0.961882409008 + 0.96205222955 + 0.962222079904 + 0.962391960074 + 0.962561870067 + 0.962731809887 + 0.962901779539 + 0.963071779029 + 0.963241808362 + 0.963411867544 + 0.963581956579 + 0.963752075472 + 0.96392222423 + 0.964092402856 + 0.964262611357 + 0.964432849738 + 0.964603118004 + 0.96477341616 + 0.964943744211 + 0.965114102163 + 0.965284490021 + 0.96545490779 + 0.965625355475 + 0.965795833083 + 0.965966340617 + 0.966136878083 + 0.966307445486 + 0.966478042833 + 0.966648670127 + 0.966819327375 + 0.966990014581 + 0.96716073175 + 0.967331478889 + 0.967502256002 + 0.967673063094 + 0.967843900171 + 0.968014767238 + 0.968185664301 + 0.968356591364 + 0.968527548433 + 0.968698535513 + 0.968869552609 + 0.969040599727 + 0.969211676872 + 0.969382784048 + 0.969553921263 + 0.96972508852 + 0.969896285825 + 0.970067513183 + 0.9702387706 + 0.970410058081 + 0.970581375631 + 0.970752723255 + 0.970924100959 + 0.971095508748 + 0.971266946627 + 0.971438414601 + 0.971609912676 + 0.971781440858 + 0.97195299915 + 0.97212458756 + 0.972296206091 + 0.972467854749 + 0.97263953354 + 0.972811242469 + 0.972982981541 + 0.973154750761 + 0.973326550135 + 0.973498379667 + 0.973670239364 + 0.973842129231 + 0.974014049272 + 0.974185999494 + 0.974357979901 + 0.974529990499 + 0.974702031292 + 0.974874102287 + 0.975046203489 + 0.975218334903 + 0.975390496534 + 0.975562688387 + 0.975734910468 + 0.975907162783 + 0.976079445336 + 0.976251758132 + 0.976424101178 + 0.976596474478 + 0.976768878038 + 0.976941311863 + 0.977113775958 + 0.977286270329 + 0.977458794981 + 0.977631349919 + 0.977803935149 + 0.977976550675 + 0.978149196504 + 0.97832187264 + 0.97849457909 + 0.978667315857 + 0.978840082948 + 0.979012880368 + 0.979185708122 + 0.979358566215 + 0.979531454653 + 0.979704373442 + 0.979877322586 + 0.98005030209 + 0.980223311961 + 0.980396352203 + 0.980569422822 + 0.980742523823 + 0.980915655212 + 0.981088816993 + 0.981262009173 + 0.981435231755 + 0.981608484747 + 0.981781768153 + 0.981955081978 + 0.982128426228 + 0.982301800909 + 0.982475206025 + 0.982648641581 + 0.982822107584 + 0.982995604038 + 0.983169130949 + 0.983342688323 + 0.983516276164 + 0.983689894478 + 0.98386354327 + 0.984037222546 + 0.98421093231 + 0.984384672569 + 0.984558443328 + 0.984732244592 + 0.984906076366 + 0.985079938656 + 0.985253831467 + 0.985427754804 + 0.985601708674 + 0.98577569308 + 0.985949708029 + 0.986123753526 + 0.986297829576 + 0.986471936184 + 0.986646073357 + 0.986820241099 + 0.986994439416 + 0.987168668313 + 0.987342927795 + 0.987517217868 + 0.987691538537 + 0.987865889808 + 0.988040271686 + 0.988214684176 + 0.988389127284 + 0.988563601015 + 0.988738105374 + 0.988912640367 + 0.989087205999 + 0.989261802276 + 0.989436429203 + 0.989611086785 + 0.989785775028 + 0.989960493937 + 0.990135243517 + 0.990310023774 + 0.990484834714 + 0.990659676341 + 0.990834548661 + 0.991009451679 + 0.991184385401 + 0.991359349833 + 0.991534344979 + 0.991709370845 + 0.991884427436 + 0.992059514758 + 0.992234632817 + 0.992409781616 + 0.992584961163 + 0.992760171462 + 0.992935412519 + 0.993110684339 + 0.993285986927 + 0.99346132029 + 0.993636684431 + 0.993812079358 + 0.993987505074 + 0.994162961587 + 0.9943384489 + 0.994513967019 + 0.99468951595 + 0.994865095699 + 0.99504070627 + 0.995216347669 + 0.995392019901 + 0.995567722973 + 0.995743456888 + 0.995919221653 + 0.996095017273 + 0.996270843754 + 0.996446701101 + 0.996622589319 + 0.996798508413 + 0.99697445839 + 0.997150439255 + 0.997326451012 + 0.997502493668 + 0.997678567228 + 0.997854671696 + 0.99803080708 + 0.998206973384 + 0.998383170613 + 0.998559398774 + 0.99873565787 + 0.998911947909 + 0.999088268895 + 0.999264620833 + 0.99944100373 + 0.999617417591 + 0.99979386242 + 0.999970338224 + 1.00014684501 + 1.00032338278 + 1.00049995154 + 1.00067655129 + 1.00085318205 + 1.00102984381 + 1.00120653659 + 1.00138326039 + 1.00156001521 + 1.00173680105 + 1.00191361794 + 1.00209046586 + 1.00226734482 + 1.00244425484 + 1.00262119591 + 1.00279816805 + 1.00297517125 + 1.00315220553 + 1.00332927088 + 1.00350636732 + 1.00368349484 + 1.00386065346 + 1.00403784318 + 1.004215064 + 1.00439231594 + 1.00456959899 + 1.00474691316 + 1.00492425846 + 1.00510163489 + 1.00527904246 + 1.00545648118 + 1.00563395104 + 1.00581145205 + 1.00598898423 + 1.00616654757 + 1.00634414209 + 1.00652176778 + 1.00669942465 + 1.0068771127 + 1.00705483196 + 1.0072325824 + 1.00741036406 + 1.00758817692 + 1.007766021 + 1.00794389629 + 1.00812180281 + 1.00829974057 + 1.00847770956 + 1.00865570979 + 1.00883374127 + 1.009011804 + 1.00918989799 + 1.00936802324 + 1.00954617977 + 1.00972436757 + 1.00990258665 + 1.01008083701 + 1.01025911867 + 1.01043743162 + 1.01061577588 + 1.01079415144 + 1.01097255832 + 1.01115099652 + 1.01132946604 + 1.01150796689 + 1.01168649907 + 1.0118650626 + 1.01204365747 + 1.0122222837 + 1.01240094128 + 1.01257963022 + 1.01275835054 + 1.01293710223 + 1.01311588529 + 1.01329469974 + 1.01347354559 + 1.01365242282 + 1.01383133146 + 1.01401027151 + 1.01418924297 + 1.01436824585 + 1.01454728015 + 1.01472634588 + 1.01490544304 + 1.01508457165 + 1.0152637317 + 1.0154429232 + 1.01562214615 + 1.01580140057 + 1.01598068646 + 1.01616000382 + 1.01633935266 + 1.01651873299 + 1.0166981448 + 1.01687758811 + 1.01705706292 + 1.01723656923 + 1.01741610706 + 1.01759567641 + 1.01777527727 + 1.01795490967 + 1.0181345736 + 1.01831426907 + 1.01849399609 + 1.01867375465 + 1.01885354477 + 1.01903336646 + 1.01921321971 + 1.01939310453 + 1.01957302093 + 1.01975296892 + 1.0199329485 + 1.02011295967 + 1.02029300244 + 1.02047307681 + 1.0206531828 + 1.02083332041 + 1.02101348964 + 1.02119369049 + 1.02137392298 + 1.02155418711 + 1.02173448289 + 1.02191481031 + 1.0220951694 + 1.02227556014 + 1.02245598255 + 1.02263643663 + 1.02281692239 + 1.02299743984 + 1.02317798897 + 1.0233585698 + 1.02353918233 + 1.02371982657 + 1.02390050251 + 1.02408121018 + 1.02426194957 + 1.02444272068 + 1.02462352353 + 1.02480435812 + 1.02498522446 + 1.02516612254 + 1.02534705238 + 1.02552801398 + 1.02570900735 + 1.0258900325 + 1.02607108942 + 1.02625217813 + 1.02643329862 + 1.02661445091 + 1.026795635 + 1.0269768509 + 1.02715809861 + 1.02733937814 + 1.02752068949 + 1.02770203267 + 1.02788340768 + 1.02806481454 + 1.02824625324 + 1.02842772379 + 1.02860922619 + 1.02879076046 + 1.0289723266 + 1.02915392461 + 1.0293355545 + 1.02951721628 + 1.02969890994 + 1.0298806355 + 1.03006239296 + 1.03024418233 + 1.03042600361 + 1.03060785681 + 1.03078974194 + 1.03097165899 + 1.03115360798 + 1.03133558891 + 1.03151760179 + 1.03169964661 + 1.0318817234 + 1.03206383215 + 1.03224597286 + 1.03242814556 + 1.03261035023 + 1.03279258688 + 1.03297485553 + 1.03315715618 + 1.03333948882 + 1.03352185348 + 1.03370425015 + 1.03388667884 + 1.03406913955 + 1.03425163229 + 1.03443415707 + 1.03461671389 + 1.03479930276 + 1.03498192369 + 1.03516457667 + 1.03534726171 + 1.03552997883 + 1.03571272802 + 1.03589550929 + 1.03607832265 + 1.0362611681 + 1.03644404565 + 1.0366269553 + 1.03680989706 + 1.03699287094 + 1.03717587693 + 1.03735891506 + 1.03754198531 + 1.03772508771 + 1.03790822224 + 1.03809138893 + 1.03827458777 + 1.03845781877 + 1.03864108193 + 1.03882437727 + 1.03900770478 + 1.03919106448 + 1.03937445637 + 1.03955788044 + 1.03974133672 + 1.03992482521 + 1.0401083459 + 1.04029189881 + 1.04047548395 + 1.04065910131 + 1.0408427509 + 1.04102643274 + 1.04121014682 + 1.04139389315 + 1.04157767173 + 1.04176148258 + 1.0419453257 + 1.04212920108 + 1.04231310875 + 1.0424970487 + 1.04268102095 + 1.04286502548 + 1.04304906232 + 1.04323313147 + 1.04341723293 + 1.04360136671 + 1.04378553281 + 1.04396973124 + 1.04415396201 + 1.04433822512 + 1.04452252058 + 1.04470684839 + 1.04489120855 + 1.04507560108 + 1.04526002598 + 1.04544448326 + 1.04562897292 + 1.04581349496 + 1.0459980494 + 1.04618263623 + 1.04636725547 + 1.04655190712 + 1.04673659118 + 1.04692130766 + 1.04710605657 + 1.04729083792 + 1.0474756517 + 1.04766049792 + 1.04784537659 + 1.04803028772 + 1.04821523131 + 1.04840020736 + 1.04858521589 + 1.0487702569 + 1.04895533038 + 1.04914043636 + 1.04932557483 + 1.04951074581 + 1.04969594929 + 1.04988118528 + 1.05006645379 + 1.05025175482 + 1.05043708838 + 1.05062245448 + 1.05080785311 + 1.0509932843 + 1.05117874803 + 1.05136424433 + 1.05154977318 + 1.05173533461 + 1.05192092861 + 1.05210655519 + 1.05229221436 + 1.05247790612 + 1.05266363047 + 1.05284938743 + 1.053035177 + 1.05322099919 + 1.05340685399 + 1.05359274142 + 1.05377866149 + 1.05396461419 + 1.05415059953 + 1.05433661753 + 1.05452266818 + 1.05470875149 + 1.05489486746 + 1.05508101611 + 1.05526719744 + 1.05545341145 + 1.05563965815 + 1.05582593754 + 1.05601224964 + 1.05619859444 + 1.05638497196 + 1.05657138219 + 1.05675782515 + 1.05694430083 + 1.05713080925 + 1.05731735042 + 1.05750392433 + 1.05769053099 + 1.05787717041 + 1.05806384259 + 1.05825054755 + 1.05843728528 + 1.05862405579 + 1.05881085909 + 1.05899769518 + 1.05918456407 + 1.05937146576 + 1.05955840027 + 1.05974536759 + 1.05993236773 + 1.0601194007 + 1.0603064665 + 1.06049356514 + 1.06068069663 + 1.06086786096 + 1.06105505816 + 1.06124228821 + 1.06142955113 + 1.06161684693 + 1.0618041756 + 1.06199153717 + 1.06217893162 + 1.06236635896 + 1.06255381921 + 1.06274131237 + 1.06292883845 + 1.06311639744 + 1.06330398936 + 1.06349161421 + 1.06367927199 + 1.06386696272 + 1.0640546864 + 1.06424244303 + 1.06443023262 + 1.06461805518 + 1.06480591071 + 1.06499379922 + 1.06518172071 + 1.06536967519 + 1.06555766266 + 1.06574568314 + 1.06593373662 + 1.06612182312 + 1.06630994263 + 1.06649809517 + 1.06668628073 + 1.06687449934 + 1.06706275098 + 1.06725103567 + 1.06743935341 + 1.06762770421 + 1.06781608808 + 1.06800450502 + 1.06819295503 + 1.06838143813 + 1.06856995431 + 1.06875850358 + 1.06894708596 + 1.06913570144 + 1.06932435003 + 1.06951303174 + 1.06970174657 + 1.06989049453 + 1.07007927562 + 1.07026808986 + 1.07045693724 + 1.07064581777 + 1.07083473146 + 1.07102367831 + 1.07121265833 + 1.07140167153 + 1.0715907179 + 1.07177979747 + 1.07196891022 + 1.07215805618 + 1.07234723534 + 1.07253644771 + 1.07272569329 + 1.0729149721 + 1.07310428413 + 1.0732936294 + 1.0734830079 + 1.07367241965 + 1.07386186465 + 1.07405134291 + 1.07424085443 + 1.07443039922 + 1.07461997728 + 1.07480958863 + 1.07499923325 + 1.07518891117 + 1.07537862239 + 1.07556836691 + 1.07575814474 + 1.07594795589 + 1.07613780035 + 1.07632767815 + 1.07651758927 + 1.07670753374 + 1.07689751154 + 1.0770875227 + 1.07727756722 + 1.07746764509 + 1.07765775634 + 1.07784790095 + 1.07803807895 + 1.07822829033 + 1.0784185351 + 1.07860881328 + 1.07879912485 + 1.07898946983 + 1.07917984823 + 1.07937026004 + 1.07956070529 + 1.07975118396 + 1.07994169607 + 1.08013224163 + 1.08032282064 + 1.0805134331 + 1.08070407903 + 1.08089475842 + 1.08108547128 + 1.08127621763 + 1.08146699746 + 1.08165781078 + 1.08184865759 + 1.08203953791 + 1.08223045174 + 1.08242139908 + 1.08261237995 + 1.08280339433 + 1.08299444226 + 1.08318552372 + 1.08337663872 + 1.08356778727 + 1.08375896938 + 1.08395018505 + 1.08414143429 + 1.0843327171 + 1.08452403349 + 1.08471538346 + 1.08490676703 + 1.08509818419 + 1.08528963496 + 1.08548111933 + 1.08567263732 + 1.08586418893 + 1.08605577417 + 1.08624739304 + 1.08643904554 + 1.08663073169 + 1.0868224515 + 1.08701420495 + 1.08720599207 + 1.08739781286 + 1.08758966732 + 1.08778155546 + 1.08797347728 + 1.0881654328 + 1.08835742201 + 1.08854944493 + 1.08874150156 + 1.0889335919 + 1.08912571596 + 1.08931787375 + 1.08951006527 + 1.08970229053 + 1.08989454954 + 1.09008684229 + 1.0902791688 + 1.09047152908 + 1.09066392312 + 1.09085635094 + 1.09104881254 + 1.09124130792 + 1.0914338371 + 1.09162640007 + 1.09181899685 + 1.09201162744 + 1.09220429184 + 1.09239699007 + 1.09258972212 + 1.09278248801 + 1.09297528773 + 1.09316812131 + 1.09336098873 + 1.09355389001 + 1.09374682515 + 1.09393979417 + 1.09413279706 + 1.09432583383 + 1.09451890448 + 1.09471200903 + 1.09490514748 + 1.09509831984 + 1.0952915261 + 1.09548476628 + 1.09567804039 + 1.09587134842 + 1.09606469039 + 1.0962580663 + 1.09645147615 + 1.09664491996 + 1.09683839773 + 1.09703190946 + 1.09722545516 + 1.09741903484 + 1.0976126485 + 1.09780629615 + 1.09799997779 + 1.09819369344 + 1.09838744309 + 1.09858122675 + 1.09877504443 + 1.09896889613 + 1.09916278187 + 1.09935670164 + 1.09955065545 + 1.09974464331 + 1.09993866523 + 1.10013272121 + 1.10032681125 + 1.10052093536 + 1.10071509355 + 1.10090928583 + 1.10110351219 + 1.10129777266 + 1.10149206722 + 1.10168639589 + 1.10188075868 + 1.10207515558 + 1.10226958661 + 1.10246405178 + 1.10265855108 + 1.10285308452 + 1.10304765212 + 1.10324225387 + 1.10343688978 + 1.10363155986 + 1.10382626411 + 1.10402100255 + 1.10421577517 + 1.10441058198 + 1.10460542299 + 1.1048002982 + 1.10499520762 + 1.10519015126 + 1.10538512912 + 1.10558014121 + 1.10577518754 + 1.1059702681 + 1.10616538291 + 1.10636053197 + 1.10655571528 + 1.10675093287 + 1.10694618472 + 1.10714147085 + 1.10733679126 + 1.10753214596 + 1.10772753495 + 1.10792295824 + 1.10811841584 + 1.10831390775 + 1.10850943398 + 1.10870499453 + 1.10890058941 + 1.10909621863 + 1.10929188219 + 1.1094875801 + 1.10968331237 + 1.10987907899 + 1.11007487998 + 1.11027071535 + 1.11046658509 + 1.11066248921 + 1.11085842773 + 1.11105440064 + 1.11125040796 + 1.11144644968 + 1.11164252582 + 1.11183863638 + 1.11203478136 + 1.11223096078 + 1.11242717464 + 1.11262342294 + 1.1128197057 + 1.11301602291 + 1.11321237458 + 1.11340876072 + 1.11360518134 + 1.11380163644 + 1.11399812602 + 1.1141946501 + 1.11439120868 + 1.11458780177 + 1.11478442936 + 1.11498109147 + 1.11517778811 + 1.11537451928 + 1.11557128498 + 1.11576808522 + 1.11596492001 + 1.11616178936 + 1.11635869326 + 1.11655563173 + 1.11675260477 + 1.1169496124 + 1.1171466546 + 1.1173437314 + 1.11754084279 + 1.11773798878 + 1.11793516938 + 1.1181323846 + 1.11832963444 + 1.1185269189 + 1.118724238 + 1.11892159174 + 1.11911898012 + 1.11931640315 + 1.11951386084 + 1.11971135319 + 1.11990888021 + 1.12010644191 + 1.12030403829 + 1.12050166936 + 1.12069933512 + 1.12089703558 + 1.12109477074 + 1.12129254062 + 1.12149034522 + 1.12168818453 + 1.12188605858 + 1.12208396737 + 1.1222819109 + 1.12247988918 + 1.12267790221 + 1.12287595 + 1.12307403256 + 1.12327214989 + 1.123470302 + 1.1236684889 + 1.12386671058 + 1.12406496707 + 1.12426325836 + 1.12446158445 + 1.12465994537 + 1.1248583411 + 1.12505677167 + 1.12525523706 + 1.1254537373 + 1.12565227238 + 1.12585084232 + 1.12604944711 + 1.12624808677 + 1.1264467613 + 1.12664547071 + 1.126844215 + 1.12704299417 + 1.12724180825 + 1.12744065722 + 1.1276395411 + 1.1278384599 + 1.12803741361 + 1.12823640226 + 1.12843542583 + 1.12863448434 + 1.1288335778 + 1.1290327062 + 1.12923186956 + 1.12943106789 + 1.12963030118 + 1.12982956945 + 1.1300288727 + 1.13022821094 + 1.13042758417 + 1.1306269924 + 1.13082643563 + 1.13102591388 + 1.13122542714 + 1.13142497543 + 1.13162455875 + 1.13182417711 + 1.13202383051 + 1.13222351895 + 1.13242324245 + 1.13262300102 + 1.13282279465 + 1.13302262335 + 1.13322248713 + 1.133422386 + 1.13362231996 + 1.13382228902 + 1.13402229318 + 1.13422233245 + 1.13442240684 + 1.13462251635 + 1.13482266099 + 1.13502284076 + 1.13522305568 + 1.13542330574 + 1.13562359096 + 1.13582391133 + 1.13602426688 + 1.13622465759 + 1.13642508348 + 1.13662554456 + 1.13682604082 + 1.13702657229 + 1.13722713895 + 1.13742774083 + 1.13762837792 + 1.13782905023 + 1.13802975777 + 1.13823050054 + 1.13843127855 + 1.13863209181 + 1.13883294032 + 1.13903382409 + 1.13923474312 + 1.13943569743 + 1.13963668701 + 1.13983771187 + 1.14003877203 + 1.14023986748 + 1.14044099823 + 1.14064216429 + 1.14084336566 + 1.14104460236 + 1.14124587438 + 1.14144718173 + 1.14164852442 + 1.14184990246 + 1.14205131585 + 1.1422527646 + 1.14245424871 + 1.14265576819 + 1.14285732305 + 1.14305891329 + 1.14326053891 + 1.14346219994 + 1.14366389636 + 1.14386562819 + 1.14406739544 + 1.1442691981 + 1.14447103619 + 1.14467290972 + 1.14487481868 + 1.14507676308 + 1.14527874294 + 1.14548075825 + 1.14568280903 + 1.14588489528 + 1.146087017 + 1.1462891742 + 1.1464913669 + 1.14669359508 + 1.14689585877 + 1.14709815797 + 1.14730049267 + 1.1475028629 + 1.14770526865 + 1.14790770994 + 1.14811018676 + 1.14831269913 + 1.14851524704 + 1.14871783052 + 1.14892044955 + 1.14912310416 + 1.14932579434 + 1.14952852011 + 1.14973128146 + 1.1499340784 + 1.15013691095 + 1.1503397791 + 1.15054268287 + 1.15074562225 + 1.15094859726 + 1.15115160791 + 1.15135465419 + 1.15155773611 + 1.15176085369 + 1.15196400692 + 1.15216719582 + 1.15237042038 + 1.15257368062 + 1.15277697654 + 1.15298030815 + 1.15318367546 + 1.15338707846 + 1.15359051717 + 1.1537939916 + 1.15399750174 + 1.15420104761 + 1.15440462922 + 1.15460824656 + 1.15481189964 + 1.15501558848 + 1.15521931307 + 1.15542307343 + 1.15562686955 + 1.15583070145 + 1.15603456914 + 1.15623847261 + 1.15644241188 + 1.15664638695 + 1.15685039782 + 1.15705444451 + 1.15725852702 + 1.15746264535 + 1.15766679952 + 1.15787098953 + 1.15807521538 + 1.15827947708 + 1.15848377464 + 1.15868810807 + 1.15889247736 + 1.15909688253 + 1.15930132359 + 1.15950580053 + 1.15971031337 + 1.15991486211 + 1.16011944676 + 1.16032406732 + 1.1605287238 + 1.16073341621 + 1.16093814456 + 1.16114290884 + 1.16134770907 + 1.16155254525 + 1.16175741739 + 1.16196232549 + 1.16216726957 + 1.16237224962 + 1.16257726566 + 1.16278231768 + 1.16298740571 + 1.16319252973 + 1.16339768977 + 1.16360288582 + 1.16380811789 + 1.16401338599 + 1.16421869012 + 1.1644240303 + 1.16462940652 + 1.16483481879 + 1.16504026713 + 1.16524575153 + 1.165451272 + 1.16565682855 + 1.16586242119 + 1.16606804991 + 1.16627371474 + 1.16647941567 + 1.16668515271 + 1.16689092586 + 1.16709673514 + 1.16730258055 + 1.16750846209 + 1.16771437978 + 1.16792033361 + 1.1681263236 + 1.16833234975 + 1.16853841207 + 1.16874451056 + 1.16895064523 + 1.16915681609 + 1.16936302314 + 1.16956926639 + 1.16977554584 + 1.16998186151 + 1.1701882134 + 1.1703946015 + 1.17060102585 + 1.17080748642 + 1.17101398324 + 1.17122051632 + 1.17142708564 + 1.17163369123 + 1.17184033309 + 1.17204701123 + 1.17225372565 + 1.17246047635 + 1.17266726335 + 1.17287408665 + 1.17308094626 + 1.17328784218 + 1.17349477442 + 1.17370174299 + 1.17390874789 + 1.17411578913 + 1.17432286672 + 1.17452998065 + 1.17473713095 + 1.17494431761 + 1.17515154064 + 1.17535880005 + 1.17556609585 + 1.17577342803 + 1.17598079661 + 1.17618820159 + 1.17639564298 + 1.17660312079 + 1.17681063502 + 1.17701818568 + 1.17722577278 + 1.17743339631 + 1.1776410563 + 1.17784875273 + 1.17805648563 + 1.178264255 + 1.17847206084 + 1.17867990315 + 1.17888778196 + 1.17909569726 + 1.17930364905 + 1.17951163735 + 1.17971966217 + 1.1799277235 + 1.18013582136 + 1.18034395574 + 1.18055212667 + 1.18076033414 + 1.18096857816 + 1.18117685873 + 1.18138517587 + 1.18159352958 + 1.18180191986 + 1.18201034673 + 1.18221881019 + 1.18242731024 + 1.18263584689 + 1.18284442015 + 1.18305303003 + 1.18326167652 + 1.18347035964 + 1.1836790794 + 1.1838878358 + 1.18409662884 + 1.18430545854 + 1.1845143249 + 1.18472322792 + 1.18493216762 + 1.18514114399 + 1.18535015705 + 1.1855592068 + 1.18576829325 + 1.1859774164 + 1.18618657627 + 1.18639577285 + 1.18660500616 + 1.18681427619 + 1.18702358297 + 1.18723292649 + 1.18744230675 + 1.18765172377 + 1.18786117756 + 1.18807066811 + 1.18828019544 + 1.18848975956 + 1.18869936046 + 1.18890899815 + 1.18911867265 + 1.18932838395 + 1.18953813207 + 1.18974791701 + 1.18995773878 + 1.19016759738 + 1.19037749282 + 1.19058742511 + 1.19079739425 + 1.19100740025 + 1.19121744312 + 1.19142752285 + 1.19163763947 + 1.19184779298 + 1.19205798337 + 1.19226821066 + 1.19247847486 + 1.19268877597 + 1.192899114 + 1.19310948895 + 1.19331990083 + 1.19353034965 + 1.19374083542 + 1.19395135813 + 1.1941619178 + 1.19437251444 + 1.19458314804 + 1.19479381862 + 1.19500452618 + 1.19521527073 + 1.19542605228 + 1.19563687083 + 1.19584772639 + 1.19605861896 + 1.19626954856 + 1.19648051518 + 1.19669151884 + 1.19690255954 + 1.19711363728 + 1.19732475208 + 1.19753590395 + 1.19774709287 + 1.19795831888 + 1.19816958196 + 1.19838088213 + 1.19859221939 + 1.19880359375 + 1.19901500522 + 1.1992264538 + 1.1994379395 + 1.19964946233 + 1.19986102229 + 1.20007261939 + 1.20028425363 + 1.20049592502 + 1.20070763358 + 1.2009193793 + 1.20113116219 + 1.20134298225 + 1.2015548395 + 1.20176673395 + 1.20197866559 + 1.20219063443 + 1.20240264049 + 1.20261468376 + 1.20282676426 + 1.20303888198 + 1.20325103695 + 1.20346322915 + 1.20367545861 + 1.20388772532 + 1.2041000293 + 1.20431237054 + 1.20452474906 + 1.20473716486 + 1.20494961796 + 1.20516210834 + 1.20537463603 + 1.20558720103 + 1.20579980335 + 1.20601244298 + 1.20622511995 + 1.20643783425 + 1.20665058589 + 1.20686337487 + 1.20707620122 + 1.20728906492 + 1.20750196599 + 1.20771490444 + 1.20792788027 + 1.20814089348 + 1.20835394409 + 1.2085670321 + 1.20878015752 + 1.20899332034 + 1.20920652059 + 1.20941975827 + 1.20963303338 + 1.20984634593 + 1.21005969593 + 1.21027308338 + 1.21048650829 + 1.21069997066 + 1.21091347051 + 1.21112700784 + 1.21134058265 + 1.21155419496 + 1.21176784476 + 1.21198153207 + 1.21219525689 + 1.21240901924 + 1.2126228191 + 1.2128366565 + 1.21305053144 + 1.21326444392 + 1.21347839396 + 1.21369238155 + 1.21390640671 + 1.21412046944 + 1.21433456975 + 1.21454870764 + 1.21476288313 + 1.21497709621 + 1.21519134689 + 1.21540563519 + 1.21561996111 + 1.21583432465 + 1.21604872582 + 1.21626316463 + 1.21647764108 + 1.21669215519 + 1.21690670695 + 1.21712129637 + 1.21733592347 + 1.21755058824 + 1.2177652907 + 1.21798003084 + 1.21819480869 + 1.21840962424 + 1.2186244775 + 1.21883936847 + 1.21905429717 + 1.2192692636 + 1.21948426777 + 1.21969930968 + 1.21991438934 + 1.22012950675 + 1.22034466193 + 1.22055985488 + 1.22077508561 + 1.22099035412 + 1.22120566042 + 1.22142100451 + 1.22163638641 + 1.22185180612 + 1.22206726365 + 1.22228275899 + 1.22249829217 + 1.22271386319 + 1.22292947204 + 1.22314511875 + 1.22336080331 + 1.22357652574 + 1.22379228603 + 1.2240080842 + 1.22422392026 + 1.2244397942 + 1.22465570604 + 1.22487165579 + 1.22508764344 + 1.22530366901 + 1.2255197325 + 1.22573583392 + 1.22595197327 + 1.22616815057 + 1.22638436582 + 1.22660061903 + 1.22681691019 + 1.22703323933 + 1.22724960644 + 1.22746601154 + 1.22768245462 + 1.22789893571 + 1.22811545479 + 1.22833201188 + 1.22854860699 + 1.22876524012 + 1.22898191128 + 1.22919862048 + 1.22941536772 + 1.22963215301 + 1.22984897636 + 1.23006583777 + 1.23028273724 + 1.2304996748 + 1.23071665043 + 1.23093366416 + 1.23115071598 + 1.23136780591 + 1.23158493394 + 1.2318021001 + 1.23201930437 + 1.23223654678 + 1.23245382732 + 1.232671146 + 1.23288850283 + 1.23310589782 + 1.23332333098 + 1.2335408023 + 1.2337583118 + 1.23397585948 + 1.23419344535 + 1.23441106942 + 1.23462873169 + 1.23484643218 + 1.23506417088 + 1.2352819478 + 1.23549976295 + 1.23571761634 + 1.23593550798 + 1.23615343786 + 1.236371406 + 1.23658941241 + 1.23680745708 + 1.23702554003 + 1.23724366127 + 1.2374618208 + 1.23768001862 + 1.23789825475 + 1.23811652919 + 1.23833484195 + 1.23855319303 + 1.23877158244 + 1.23899001019 + 1.23920847628 + 1.23942698073 + 1.23964552353 + 1.2398641047 + 1.24008272424 + 1.24030138216 + 1.24052007846 + 1.24073881316 + 1.24095758625 + 1.24117639774 + 1.24139524765 + 1.24161413598 + 1.24183306273 + 1.24205202792 + 1.24227103154 + 1.24249007361 + 1.24270915414 + 1.24292827312 + 1.24314743056 + 1.24336662648 + 1.24358586088 + 1.24380513376 + 1.24402444514 + 1.24424379502 + 1.2444631834 + 1.2446826103 + 1.24490207571 + 1.24512157966 + 1.24534112213 + 1.24556070315 + 1.24578032271 + 1.24599998083 + 1.24621967751 + 1.24643941275 + 1.24665918657 + 1.24687899897 + 1.24709884996 + 1.24731873954 + 1.24753866772 + 1.24775863451 + 1.24797863991 + 1.24819868394 + 1.24841876659 + 1.24863888788 + 1.24885904781 + 1.24907924639 + 1.24929948363 + 1.24951975952 + 1.24974007409 + 1.24996042733 + 1.25018081926 + 1.25040124987 + 1.25062171918 + 1.25084222719 + 1.25106277391 + 1.25128335935 + 1.25150398351 + 1.2517246464 + 1.25194534803 + 1.2521660884 + 1.25238686752 + 1.2526076854 + 1.25282854205 + 1.25304943746 + 1.25327037165 + 1.25349134463 + 1.2537123564 + 1.25393340696 + 1.25415449633 + 1.25437562452 + 1.25459679152 + 1.25481799734 + 1.255039242 + 1.2552605255 + 1.25548184784 + 1.25570320904 + 1.25592460909 + 1.25614604801 + 1.25636752581 + 1.25658904248 + 1.25681059804 + 1.2570321925 + 1.25725382585 + 1.25747549811 + 1.25769720929 + 1.25791895938 + 1.25814074841 + 1.25836257637 + 1.25858444327 + 1.25880634912 + 1.25902829392 + 1.25925027769 + 1.25947230042 + 1.25969436213 + 1.25991646282 + 1.2601386025 + 1.26036078118 + 1.26058299886 + 1.26080525555 + 1.26102755126 + 1.26124988599 + 1.26147225975 + 1.26169467254 + 1.26191712438 + 1.26213961528 + 1.26236214523 + 1.26258471424 + 1.26280732233 + 1.26302996949 + 1.26325265574 + 1.26347538108 + 1.26369814552 + 1.26392094907 + 1.26414379173 + 1.26436667351 + 1.26458959441 + 1.26481255445 + 1.26503555363 + 1.26525859195 + 1.26548166943 + 1.26570478607 + 1.26592794188 + 1.26615113686 + 1.26637437102 + 1.26659764437 + 1.26682095692 + 1.26704430867 + 1.26726769962 + 1.2674911298 + 1.26771459919 + 1.26793810782 + 1.26816165568 + 1.26838524278 + 1.26860886914 + 1.26883253475 + 1.26905623962 + 1.26927998377 + 1.26950376719 + 1.2697275899 + 1.2699514519 + 1.2701753532 + 1.2703992938 + 1.27062327372 + 1.27084729296 + 1.27107135152 + 1.27129544941 + 1.27151958665 + 1.27174376323 + 1.27196797916 + 1.27219223446 + 1.27241652912 + 1.27264086316 + 1.27286523657 + 1.27308964938 + 1.27331410158 + 1.27353859318 + 1.2737631242 + 1.27398769462 + 1.27421230448 + 1.27443695376 + 1.27466164247 + 1.27488637063 + 1.27511113825 + 1.27533594532 + 1.27556079185 + 1.27578567785 + 1.27601060333 + 1.2762355683 + 1.27646057276 + 1.27668561672 + 1.27691070019 + 1.27713582316 + 1.27736098566 + 1.27758618768 + 1.27781142924 + 1.27803671034 + 1.27826203099 + 1.27848739119 + 1.27871279095 + 1.27893823028 + 1.27916370918 + 1.27938922767 + 1.27961478575 + 1.27984038342 + 1.2800660207 + 1.28029169758 + 1.28051741408 + 1.28074317021 + 1.28096896597 + 1.28119480137 + 1.28142067641 + 1.2816465911 + 1.28187254545 + 1.28209853947 + 1.28232457316 + 1.28255064653 + 1.28277675958 + 1.28300291233 + 1.28322910478 + 1.28345533694 + 1.28368160881 + 1.28390792041 + 1.28413427173 + 1.28436066278 + 1.28458709358 + 1.28481356413 + 1.28504007444 + 1.28526662451 + 1.28549321435 + 1.28571984396 + 1.28594651336 + 1.28617322256 + 1.28639997155 + 1.28662676034 + 1.28685358895 + 1.28708045738 + 1.28730736563 + 1.28753431372 + 1.28776130164 + 1.28798832942 + 1.28821539704 + 1.28844250453 + 1.28866965189 + 1.28889683912 + 1.28912406624 + 1.28935133324 + 1.28957864014 + 1.28980598694 + 1.29003337366 + 1.29026080029 + 1.29048826684 + 1.29071577333 + 1.29094331975 + 1.29117090612 + 1.29139853244 + 1.29162619872 + 1.29185390497 + 1.29208165119 + 1.29230943739 + 1.29253726357 + 1.29276512976 + 1.29299303594 + 1.29322098213 + 1.29344896834 + 1.29367699457 + 1.29390506083 + 1.29413316712 + 1.29436131346 + 1.29458949985 + 1.2948177263 + 1.29504599281 + 1.29527429939 + 1.29550264605 + 1.2957310328 + 1.29595945964 + 1.29618792658 + 1.29641643363 + 1.29664498079 + 1.29687356807 + 1.29710219548 + 1.29733086302 + 1.29755957071 + 1.29778831854 + 1.29801710654 + 1.29824593469 + 1.29847480301 + 1.29870371152 + 1.2989326602 + 1.29916164908 + 1.29939067816 + 1.29961974744 + 1.29984885693 + 1.30007800665 + 1.30030719659 + 1.30053642676 + 1.30076569718 + 1.30099500784 + 1.30122435876 + 1.30145374994 + 1.30168318139 + 1.30191265311 + 1.30214216512 + 1.30237171742 + 1.30260131001 + 1.30283094291 + 1.30306061613 + 1.30329032966 + 1.30352008351 + 1.3037498777 + 1.30397971223 + 1.30420958711 + 1.30443950233 + 1.30466945792 + 1.30489945388 + 1.30512949022 + 1.30535956693 + 1.30558968404 + 1.30581984154 + 1.30605003945 + 1.30628027776 + 1.3065105565 + 1.30674087565 + 1.30697123525 + 1.30720163528 + 1.30743207575 + 1.30766255668 + 1.30789307807 + 1.30812363993 + 1.30835424226 + 1.30858488507 + 1.30881556837 + 1.30904629217 + 1.30927705647 + 1.30950786128 + 1.30973870661 + 1.30996959246 + 1.31020051885 + 1.31043148577 + 1.31066249324 + 1.31089354126 + 1.31112462984 + 1.31135575899 + 1.31158692871 + 1.31181813901 + 1.31204938991 + 1.31228068139 + 1.31251201348 + 1.31274338618 + 1.3129747995 + 1.31320625344 + 1.31343774801 + 1.31366928322 + 1.31390085908 + 1.31413247558 + 1.31436413275 + 1.31459583059 + 1.3148275691 + 1.31505934829 + 1.31529116816 + 1.31552302874 + 1.31575493001 + 1.315986872 + 1.3162188547 + 1.31645087813 + 1.31668294228 + 1.31691504718 + 1.31714719282 + 1.31737937922 + 1.31761160637 + 1.31784387429 + 1.31807618298 + 1.31830853246 + 1.31854092272 + 1.31877335378 + 1.31900582565 + 1.31923833832 + 1.31947089181 + 1.31970348612 + 1.31993612127 + 1.32016879725 + 1.32040151408 + 1.32063427176 + 1.3208670703 + 1.32109990971 + 1.32133279 + 1.32156571116 + 1.32179867321 + 1.32203167616 + 1.32226472002 + 1.32249780478 + 1.32273093046 + 1.32296409707 + 1.3231973046 + 1.32343055308 + 1.3236638425 + 1.32389717288 + 1.32413054421 + 1.32436395652 + 1.3245974098 + 1.32483090406 + 1.32506443931 + 1.32529801555 + 1.3255316328 + 1.32576529107 + 1.32599899035 + 1.32623273065 + 1.32646651199 + 1.32670033437 + 1.32693419779 + 1.32716810227 + 1.32740204781 + 1.32763603442 + 1.3278700621 + 1.32810413087 + 1.32833824072 + 1.32857239168 + 1.32880658374 + 1.32904081691 + 1.3292750912 + 1.32950940662 + 1.32974376316 + 1.32997816086 + 1.33021259969 + 1.33044707969 + 1.33068160084 + 1.33091616317 + 1.33115076667 + 1.33138541136 + 1.33162009724 + 1.33185482431 + 1.33208959259 + 1.33232440209 + 1.33255925281 + 1.33279414475 + 1.33302907793 + 1.33326405234 + 1.33349906801 + 1.33373412494 + 1.33396922313 + 1.33420436259 + 1.33443954332 + 1.33467476535 + 1.33491002866 + 1.33514533328 + 1.3353806792 + 1.33561606644 + 1.335851495 + 1.33608696489 + 1.33632247611 + 1.33655802868 + 1.33679362259 + 1.33702925787 + 1.33726493451 + 1.33750065253 + 1.33773641192 + 1.3379722127 + 1.33820805487 + 1.33844393845 + 1.33867986343 + 1.33891582983 + 1.33915183766 + 1.33938788691 + 1.33962397761 + 1.33986010974 + 1.34009628333 + 1.34033249838 + 1.3405687549 + 1.34080505289 + 1.34104139236 + 1.34127777333 + 1.34151419578 + 1.34175065974 + 1.34198716522 + 1.3422237122 + 1.34246030072 + 1.34269693077 + 1.34293360235 + 1.34317031549 + 1.34340707018 + 1.34364386643 + 1.34388070425 + 1.34411758364 + 1.34435450462 + 1.34459146719 + 1.34482847136 + 1.34506551713 + 1.34530260452 + 1.34553973353 + 1.34577690416 + 1.34601411643 + 1.34625137034 + 1.3464886659 + 1.34672600312 + 1.346963382 + 1.34720080255 + 1.34743826478 + 1.3476757687 + 1.34791331431 + 1.34815090162 + 1.34838853063 + 1.34862620137 + 1.34886391382 + 1.34910166801 + 1.34933946393 + 1.3495773016 + 1.34981518102 + 1.3500531022 + 1.35029106514 + 1.35052906986 + 1.35076711636 + 1.35100520465 + 1.35124333473 + 1.35148150662 + 1.35171972031 + 1.35195797583 + 1.35219627317 + 1.35243461234 + 1.35267299336 + 1.35291141622 + 1.35314988093 + 1.35338838751 + 1.35362693595 + 1.35386552628 + 1.35410415848 + 1.35434283258 + 1.35458154858 + 1.35482030648 + 1.35505910629 + 1.35529794803 + 1.35553683169 + 1.35577575729 + 1.35601472484 + 1.35625373433 + 1.35649278578 + 1.35673187919 + 1.35697101458 + 1.35721019195 + 1.3574494113 + 1.35768867265 + 1.357927976 + 1.35816732136 + 1.35840670874 + 1.35864613814 + 1.35888560957 + 1.35912512304 + 1.35936467855 + 1.35960427612 + 1.35984391575 + 1.36008359745 + 1.36032332122 + 1.36056308708 + 1.36080289502 + 1.36104274507 + 1.36128263722 + 1.36152257148 + 1.36176254786 + 1.36200256637 + 1.36224262701 + 1.3624827298 + 1.36272287473 + 1.36296306182 + 1.36320329108 + 1.36344356251 + 1.36368387612 + 1.36392423191 + 1.3641646299 + 1.36440507008 + 1.36464555248 + 1.36488607709 + 1.36512664393 + 1.365367253 + 1.3656079043 + 1.36584859786 + 1.36608933366 + 1.36633011173 + 1.36657093206 + 1.36681179467 + 1.36705269956 + 1.36729364674 + 1.36753463622 + 1.36777566801 + 1.3680167421 + 1.36825785852 + 1.36849901726 + 1.36874021834 + 1.36898146177 + 1.36922274754 + 1.36946407566 + 1.36970544616 + 1.36994685902 + 1.37018831427 + 1.3704298119 + 1.37067135192 + 1.37091293435 + 1.37115455919 + 1.37139622644 + 1.37163793612 + 1.37187968823 + 1.37212148277 + 1.37236331977 + 1.37260519922 + 1.37284712113 + 1.3730890855 + 1.37333109236 + 1.3735731417 + 1.37381523353 + 1.37405736785 + 1.37429954469 + 1.37454176404 + 1.3747840259 + 1.3750263303 + 1.37526867723 + 1.37551106671 + 1.37575349874 + 1.37599597332 + 1.37623849047 + 1.3764810502 + 1.3767236525 + 1.3769662974 + 1.37720898489 + 1.37745171498 + 1.37769448768 + 1.377937303 + 1.37818016095 + 1.37842306153 + 1.37866600475 + 1.37890899062 + 1.37915201914 + 1.37939509033 + 1.37963820419 + 1.37988136073 + 1.38012455995 + 1.38036780186 + 1.38061108648 + 1.3808544138 + 1.38109778384 + 1.3813411966 + 1.38158465209 + 1.38182815032 + 1.3820716913 + 1.38231527503 + 1.38255890152 + 1.38280257077 + 1.38304628281 + 1.38329003762 + 1.38353383523 + 1.38377767563 + 1.38402155884 + 1.38426548486 + 1.38450945371 + 1.38475346538 + 1.38499751989 + 1.38524161724 + 1.38548575744 + 1.3857299405 + 1.38597416642 + 1.38621843522 + 1.3864627469 + 1.38670710147 + 1.38695149893 + 1.3871959393 + 1.38744042258 + 1.38768494877 + 1.38792951789 + 1.38817412995 + 1.38841878495 + 1.38866348289 + 1.38890822379 + 1.38915300766 + 1.38939783449 + 1.38964270431 + 1.38988761711 + 1.3901325729 + 1.3903775717 + 1.39062261351 + 1.39086769833 + 1.39111282617 + 1.39135799705 + 1.39160321097 + 1.39184846793 + 1.39209376795 + 1.39233911103 + 1.39258449718 + 1.3928299264 + 1.39307539871 + 1.39332091411 + 1.39356647262 + 1.39381207422 + 1.39405771895 + 1.39430340679 + 1.39454913777 + 1.39479491188 + 1.39504072914 + 1.39528658955 + 1.39553249312 + 1.39577843986 + 1.39602442978 + 1.39627046287 + 1.39651653916 + 1.39676265865 + 1.39700882134 + 1.39725502724 + 1.39750127637 + 1.39774756872 + 1.39799390431 + 1.39824028315 + 1.39848670523 + 1.39873317058 + 1.39897967919 + 1.39922623107 + 1.39947282624 + 1.39971946469 + 1.39996614644 + 1.4002128715 + 1.40045963987 + 1.40070645155 + 1.40095330657 + 1.40120020492 + 1.40144714661 + 1.40169413165 + 1.40194116005 + 1.40218823181 + 1.40243534695 + 1.40268250547 + 1.40292970737 + 1.40317695268 + 1.40342424138 + 1.4036715735 + 1.40391894903 + 1.40416636799 + 1.40441383039 + 1.40466133622 + 1.40490888551 + 1.40515647825 + 1.40540411445 + 1.40565179413 + 1.40589951729 + 1.40614728393 + 1.40639509407 + 1.40664294771 + 1.40689084486 + 1.40713878553 + 1.40738676973 + 1.40763479746 + 1.40788286873 + 1.40813098354 + 1.40837914191 + 1.40862734385 + 1.40887558936 + 1.40912387845 + 1.40937221112 + 1.40962058739 + 1.40986900725 + 1.41011747073 + 1.41036597783 + 1.41061452855 + 1.4108631229 + 1.41111176089 + 1.41136044254 + 1.41160916783 + 1.41185793679 + 1.41210674942 + 1.41235560573 + 1.41260450572 + 1.41285344941 + 1.4131024368 + 1.4133514679 + 1.41360054272 + 1.41384966126 + 1.41409882353 + 1.41434802954 + 1.4145972793 + 1.41484657282 + 1.41509591009 + 1.41534529114 + 1.41559471597 + 1.41584418458 + 1.41609369699 + 1.41634325319 + 1.41659285321 + 1.41684249704 + 1.4170921847 + 1.41734191619 + 1.41759169152 + 1.4178415107 + 1.41809137373 + 1.41834128062 + 1.41859123139 + 1.41884122603 + 1.41909126456 + 1.41934134698 + 1.41959147331 + 1.41984164354 + 1.42009185769 + 1.42034211576 + 1.42059241777 + 1.42084276372 + 1.42109315361 + 1.42134358746 + 1.42159406527 + 1.42184458706 + 1.42209515282 + 1.42234576257 + 1.42259641631 + 1.42284711405 + 1.42309785581 + 1.42334864158 + 1.42359947137 + 1.4238503452 + 1.42410126307 + 1.42435222498 + 1.42460323095 + 1.42485428099 + 1.42510537509 + 1.42535651328 + 1.42560769555 + 1.42585892192 + 1.42611019239 + 1.42636150696 + 1.42661286566 + 1.42686426848 + 1.42711571543 + 1.42736720653 + 1.42761874177 + 1.42787032117 + 1.42812194474 + 1.42837361248 + 1.42862532439 + 1.42887708049 + 1.42912888079 + 1.42938072529 + 1.42963261401 + 1.42988454694 + 1.43013652409 + 1.43038854549 + 1.43064061112 + 1.430892721 + 1.43114487514 + 1.43139707354 + 1.43164931622 + 1.43190160318 + 1.43215393442 + 1.43240630997 + 1.43265872981 + 1.43291119397 + 1.43316370245 + 1.43341625525 + 1.43366885239 + 1.43392149387 + 1.43417417971 + 1.4344269099 + 1.43467968445 + 1.43493250339 + 1.4351853667 + 1.4354382744 + 1.4356912265 + 1.43594422301 + 1.43619726392 + 1.43645034926 + 1.43670347903 + 1.43695665323 + 1.43720987188 + 1.43746313498 + 1.43771644254 + 1.43796979457 + 1.43822319107 + 1.43847663205 + 1.43873011753 + 1.4389836475 + 1.43923722199 + 1.43949084098 + 1.4397445045 + 1.43999821255 + 1.44025196513 + 1.44050576226 + 1.44075960395 + 1.4410134902 + 1.44126742101 + 1.4415213964 + 1.44177541638 + 1.44202948095 + 1.44228359012 + 1.4425377439 + 1.44279194229 + 1.44304618531 + 1.44330047296 + 1.44355480525 + 1.44380918218 + 1.44406360378 + 1.44431807003 + 1.44457258096 + 1.44482713656 + 1.44508173685 + 1.44533638184 + 1.44559107153 + 1.44584580593 + 1.44610058504 + 1.44635540888 + 1.44661027746 + 1.44686519078 + 1.44712014884 + 1.44737515167 + 1.44763019926 + 1.44788529162 + 1.44814042876 + 1.44839561069 + 1.44865083742 + 1.44890610895 + 1.4491614253 + 1.44941678646 + 1.44967219246 + 1.44992764329 + 1.45018313896 + 1.45043867948 + 1.45069426487 + 1.45094989512 + 1.45120557024 + 1.45146129025 + 1.45171705515 + 1.45197286495 + 1.45222871966 + 1.45248461928 + 1.45274056383 + 1.4529965533 + 1.45325258771 + 1.45350866707 + 1.45376479138 + 1.45402096066 + 1.4542771749 + 1.45453343412 + 1.45478973833 + 1.45504608753 + 1.45530248174 + 1.45555892095 + 1.45581540518 + 1.45607193443 + 1.45632850872 + 1.45658512805 + 1.45684179243 + 1.45709850186 + 1.45735525636 + 1.45761205593 + 1.45786890058 + 1.45812579032 + 1.45838272516 + 1.4586397051 + 1.45889673016 + 1.45915380033 + 1.45941091563 + 1.45966807607 + 1.45992528165 + 1.46018253238 + 1.46043982828 + 1.46069716934 + 1.46095455557 + 1.46121198699 + 1.4614694636 + 1.46172698541 + 1.46198455243 + 1.46224216467 + 1.46249982212 + 1.46275752481 + 1.46301527274 + 1.46327306591 + 1.46353090434 + 1.46378878803 + 1.46404671699 + 1.46430469123 + 1.46456271076 + 1.46482077558 + 1.46507888571 + 1.46533704114 + 1.4655952419 + 1.46585348798 + 1.46611177939 + 1.46637011615 + 1.46662849826 + 1.46688692573 + 1.46714539856 + 1.46740391677 + 1.46766248035 + 1.46792108933 + 1.46817974371 + 1.4684384435 + 1.46869718869 + 1.46895597931 + 1.46921481536 + 1.46947369685 + 1.46973262378 + 1.46999159617 + 1.47025061402 + 1.47050967734 + 1.47076878614 + 1.47102794042 + 1.4712871402 + 1.47154638548 + 1.47180567627 + 1.47206501258 + 1.47232439441 + 1.47258382178 + 1.47284329468 + 1.47310281314 + 1.47336237716 + 1.47362198674 + 1.4738816419 + 1.47414134264 + 1.47440108896 + 1.47466088089 + 1.47492071842 + 1.47518060156 + 1.47544053033 + 1.47570050473 + 1.47596052476 + 1.47622059044 + 1.47648070178 + 1.47674085877 + 1.47700106144 + 1.47726130978 + 1.47752160381 + 1.47778194354 + 1.47804232896 + 1.4783027601 + 1.47856323695 + 1.47882375953 + 1.47908432785 + 1.4793449419 + 1.47960560171 + 1.47986630728 + 1.48012705861 + 1.48038785571 + 1.4806486986 + 1.48090958728 + 1.48117052175 + 1.48143150204 + 1.48169252813 + 1.48195360005 + 1.4822147178 + 1.48247588139 + 1.48273709083 + 1.48299834611 + 1.48325964727 + 1.48352099429 + 1.48378238719 + 1.48404382598 + 1.48430531067 + 1.48456684125 + 1.48482841775 + 1.48509004017 + 1.48535170851 + 1.48561342279 + 1.48587518301 + 1.48613698919 + 1.48639884132 + 1.48666073942 + 1.4869226835 + 1.48718467356 + 1.48744670961 + 1.48770879166 + 1.48797091972 + 1.4882330938 + 1.4884953139 + 1.48875758003 + 1.4890198922 + 1.48928225042 + 1.4895446547 + 1.48980710504 + 1.49006960145 + 1.49033214395 + 1.49059473253 + 1.49085736721 + 1.49112004799 + 1.49138277489 + 1.49164554791 + 1.49190836705 + 1.49217123234 + 1.49243414377 + 1.49269710135 + 1.4929601051 + 1.49322315501 + 1.4934862511 + 1.49374939338 + 1.49401258185 + 1.49427581653 + 1.49453909741 + 1.49480242452 + 1.49506579785 + 1.49532921741 + 1.49559268322 + 1.49585619527 + 1.49611975359 + 1.49638335817 + 1.49664700903 + 1.49691070617 + 1.4971744496 + 1.49743823934 + 1.49770207538 + 1.49796595773 + 1.49822988641 + 1.49849386142 + 1.49875788278 + 1.49902195048 + 1.49928606453 + 1.49955022495 + 1.49981443175 + 1.50007868492 + 1.50034298449 + 1.50060733045 + 1.50087172281 + 1.50113616159 + 1.50140064679 + 1.50166517842 + 1.50192975649 + 1.50219438101 + 1.50245905198 + 1.50272376941 + 1.50298853331 + 1.50325334369 + 1.50351820056 + 1.50378310392 + 1.50404805378 + 1.50431305016 + 1.50457809306 + 1.50484318248 + 1.50510831844 + 1.50537350094 + 1.50563873 + 1.50590400561 + 1.5061693278 + 1.50643469656 + 1.5067001119 + 1.50696557384 + 1.50723108238 + 1.50749663753 + 1.5077622393 + 1.50802788769 + 1.50829358272 + 1.50855932439 + 1.50882511271 + 1.50909094768 + 1.50935682933 + 1.50962275765 + 1.50988873265 + 1.51015475434 + 1.51042082273 + 1.51068693783 + 1.51095309965 + 1.51121930819 + 1.51148556346 + 1.51175186548 + 1.51201821424 + 1.51228460976 + 1.51255105204 + 1.5128175411 + 1.51308407693 + 1.51335065956 + 1.51361728899 + 1.51388396522 + 1.51415068827 + 1.51441745813 + 1.51468427483 + 1.51495113837 + 1.51521804876 + 1.515485006 + 1.51575201011 + 1.51601906108 + 1.51628615894 + 1.51655330369 + 1.51682049533 + 1.51708773387 + 1.51735501933 + 1.51762235172 + 1.51788973103 + 1.51815715728 + 1.51842463047 + 1.51869215062 + 1.51895971773 + 1.51922733181 + 1.51949499287 + 1.51976270092 + 1.52003045597 + 1.52029825801 + 1.52056610707 + 1.52083400315 + 1.52110194626 + 1.52136993641 + 1.5216379736 + 1.52190605784 + 1.52217418914 + 1.52244236752 + 1.52271059297 + 1.52297886551 + 1.52324718514 + 1.52351555188 + 1.52378396573 + 1.52405242669 + 1.52432093479 + 1.52458949002 + 1.52485809239 + 1.52512674192 + 1.52539543861 + 1.52566418247 + 1.5259329735 + 1.52620181172 + 1.52647069713 + 1.52673962975 + 1.52700860958 + 1.52727763662 + 1.52754671089 + 1.5278158324 + 1.52808500115 + 1.52835421716 + 1.52862348042 + 1.52889279095 + 1.52916214876 + 1.52943155385 + 1.52970100624 + 1.52997050593 + 1.53024005293 + 1.53050964724 + 1.53077928889 + 1.53104897787 + 1.53131871419 + 1.53158849786 + 1.53185832889 + 1.5321282073 + 1.53239813307 + 1.53266810624 + 1.53293812679 + 1.53320819475 + 1.53347831012 + 1.5337484729 + 1.53401868311 + 1.53428894076 + 1.53455924585 + 1.53482959839 + 1.53509999839 + 1.53537044586 + 1.5356409408 + 1.53591148323 + 1.53618207315 + 1.53645271058 + 1.53672339551 + 1.53699412796 + 1.53726490794 + 1.53753573545 + 1.53780661051 + 1.53807753312 + 1.53834850328 + 1.53861952102 + 1.53889058633 + 1.53916169923 + 1.53943285972 + 1.53970406781 + 1.53997532351 + 1.54024662683 + 1.54051797778 + 1.54078937636 + 1.54106082258 + 1.54133231646 + 1.541603858 + 1.5418754472 + 1.54214708408 + 1.54241876865 + 1.54269050091 + 1.54296228087 + 1.54323410854 + 1.54350598394 + 1.54377790705 + 1.54404987791 + 1.5443218965 + 1.54459396285 + 1.54486607696 + 1.54513823884 + 1.5454104485 + 1.54568270594 + 1.54595501118 + 1.54622736422 + 1.54649976507 + 1.54677221374 + 1.54704471023 + 1.54731725457 + 1.54758984674 + 1.54786248677 + 1.54813517467 + 1.54840791043 + 1.54868069407 + 1.54895352559 + 1.54922640501 + 1.54949933234 + 1.54977230757 + 1.55004533073 + 1.55031840181 + 1.55059152083 + 1.5508646878 + 1.55113790272 + 1.5514111656 + 1.55168447646 + 1.55195783529 + 1.55223124211 + 1.55250469693 + 1.55277819975 + 1.55305175058 + 1.55332534943 + 1.55359899632 + 1.55387269124 + 1.55414643421 + 1.55442022523 + 1.55469406431 + 1.55496795147 + 1.55524188671 + 1.55551587004 + 1.55578990146 + 1.55606398099 + 1.55633810864 + 1.5566122844 + 1.5568865083 + 1.55716078033 + 1.55743510052 + 1.55770946886 + 1.55798388536 + 1.55825835004 + 1.5585328629 + 1.55880742395 + 1.5590820332 + 1.55935669065 + 1.55963139632 + 1.55990615022 + 1.56018095235 + 1.56045580271 + 1.56073070133 + 1.5610056482 + 1.56128064335 + 1.56155568676 + 1.56183077846 + 1.56210591845 + 1.56238110674 + 1.56265634334 + 1.56293162826 + 1.5632069615 + 1.56348234307 + 1.56375777299 + 1.56403325126 + 1.56430877789 + 1.56458435289 + 1.56485997626 + 1.56513564802 + 1.56541136817 + 1.56568713673 + 1.56596295369 + 1.56623881908 + 1.56651473289 + 1.56679069513 + 1.56706670583 + 1.56734276497 + 1.56761887258 + 1.56789502865 + 1.56817123321 + 1.56844748625 + 1.56872378779 + 1.56900013783 + 1.56927653638 + 1.56955298346 + 1.56982947906 + 1.5701060232 + 1.57038261589 + 1.57065925714 + 1.57093594694 + 1.57121268532 + 1.57148947229 + 1.57176630784 + 1.57204319198 + 1.57232012474 + 1.57259710611 + 1.5728741361 + 1.57315121473 + 1.57342834199 + 1.5737055179 + 1.57398274248 + 1.57426001571 + 1.57453733763 + 1.57481470822 + 1.57509212751 + 1.5753695955 + 1.57564711219 + 1.57592467761 + 1.57620229175 + 1.57647995462 + 1.57675766624 + 1.57703542661 + 1.57731323573 + 1.57759109363 + 1.57786900031 + 1.57814695577 + 1.57842496002 + 1.57870301308 + 1.57898111495 + 1.57925926564 + 1.57953746516 + 1.57981571351 + 1.58009401071 + 1.58037235677 + 1.58065075169 + 1.58092919548 + 1.58120768815 + 1.58148622971 + 1.58176482016 + 1.58204345953 + 1.5823221478 + 1.582600885 + 1.58287967113 + 1.5831585062 + 1.58343739022 + 1.5837163232 + 1.58399530515 + 1.58427433606 + 1.58455341597 + 1.58483254486 + 1.58511172275 + 1.58539094965 + 1.58567022557 + 1.58594955052 + 1.5862289245 + 1.58650834753 + 1.5867878196 + 1.58706734074 + 1.58734691095 + 1.58762653023 + 1.5879061986 + 1.58818591607 + 1.58846568264 + 1.58874549832 + 1.58902536312 + 1.58930527705 + 1.58958524013 + 1.58986525234 + 1.59014531372 + 1.59042542425 + 1.59070558396 + 1.59098579285 + 1.59126605093 + 1.59154635821 + 1.5918267147 + 1.5921071204 + 1.59238757533 + 1.59266807949 + 1.59294863289 + 1.59322923555 + 1.59350988746 + 1.59379058864 + 1.59407133909 + 1.59435213883 + 1.59463298787 + 1.59491388621 + 1.59519483385 + 1.59547583082 + 1.59575687712 + 1.59603797275 + 1.59631911773 + 1.59660031206 + 1.59688155576 + 1.59716284883 + 1.59744419127 + 1.59772558311 + 1.59800702434 + 1.59828851499 + 1.59857005504 + 1.59885164452 + 1.59913328343 + 1.59941497179 + 1.59969670959 + 1.59997849685 + 1.60026033358 + 1.60054221978 + 1.60082415547 + 1.60110614065 + 1.60138817533 + 1.60167025953 + 1.60195239324 + 1.60223457648 + 1.60251680926 + 1.60279909158 + 1.60308142345 + 1.60336380489 + 1.6036462359 + 1.60392871649 + 1.60421124667 + 1.60449382645 + 1.60477645583 + 1.60505913483 + 1.60534186345 + 1.6056246417 + 1.6059074696 + 1.60619034714 + 1.60647327435 + 1.60675625122 + 1.60703927776 + 1.60732235399 + 1.60760547992 + 1.60788865554 + 1.60817188088 + 1.60845515594 + 1.60873848072 + 1.60902185524 + 1.60930527951 + 1.60958875353 + 1.60987227731 + 1.61015585087 + 1.61043947421 + 1.61072314733 + 1.61100687026 + 1.61129064299 + 1.61157446554 + 1.61185833791 + 1.61214226011 + 1.61242623216 + 1.61271025406 + 1.61299432581 + 1.61327844744 + 1.61356261894 + 1.61384684033 + 1.61413111161 + 1.61441543279 + 1.61469980389 + 1.6149842249 + 1.61526869585 + 1.61555321673 + 1.61583778757 + 1.61612240835 + 1.6164070791 + 1.61669179983 + 1.61697657054 + 1.61726139123 + 1.61754626193 + 1.61783118264 + 1.61811615336 + 1.61840117411 + 1.61868624489 + 1.61897136572 + 1.6192565366 + 1.61954175754 + 1.61982702855 + 1.62011234963 + 1.62039772081 + 1.62068314208 + 1.62096861346 + 1.62125413495 + 1.62153970656 + 1.62182532831 + 1.62211100019 + 1.62239672223 + 1.62268249442 + 1.62296831678 + 1.62325418931 + 1.62354011203 + 1.62382608494 + 1.62411210805 + 1.62439818138 + 1.62468430492 + 1.62497047869 + 1.6252567027 + 1.62554297695 + 1.62582930146 + 1.62611567623 + 1.62640210128 + 1.6266885766 + 1.62697510222 + 1.62726167814 + 1.62754830436 + 1.6278349809 + 1.62812170776 + 1.62840848496 + 1.6286953125 + 1.6289821904 + 1.62926911865 + 1.62955609727 + 1.62984312628 + 1.63013020567 + 1.63041733545 + 1.63070451564 + 1.63099174625 + 1.63127902727 + 1.63156635873 + 1.63185374063 + 1.63214117298 + 1.63242865578 + 1.63271618906 + 1.63300377281 + 1.63329140704 + 1.63357909177 + 1.63386682699 + 1.63415461273 + 1.63444244899 + 1.63473033578 + 1.63501827311 + 1.63530626098 + 1.63559429941 + 1.63588238841 + 1.63617052797 + 1.63645871812 + 1.63674695886 + 1.6370352502 + 1.63732359215 + 1.63761198472 + 1.63790042791 + 1.63818892174 + 1.63847746622 + 1.63876606134 + 1.63905470713 + 1.63934340359 + 1.63963215073 + 1.63992094856 + 1.64020979708 + 1.64049869632 + 1.64078764627 + 1.64107664694 + 1.64136569834 + 1.64165480049 + 1.64194395339 + 1.64223315705 + 1.64252241148 + 1.64281171669 + 1.64310107268 + 1.64339047947 + 1.64367993706 + 1.64396944547 + 1.6442590047 + 1.64454861476 + 1.64483827566 + 1.64512798741 + 1.64541775002 + 1.6457075635 + 1.64599742785 + 1.64628734309 + 1.64657730922 + 1.64686732625 + 1.6471573942 + 1.64744751307 + 1.64773768286 + 1.6480279036 + 1.64831817528 + 1.64860849792 + 1.64889887152 + 1.6491892961 + 1.64947977166 + 1.64977029821 + 1.65006087577 + 1.65035150433 + 1.65064218392 + 1.65093291453 + 1.65122369618 + 1.65151452888 + 1.65180541263 + 1.65209634744 + 1.65238733333 + 1.6526783703 + 1.65296945836 + 1.65326059752 + 1.65355178779 + 1.65384302917 + 1.65413432169 + 1.65442566533 + 1.65471706013 + 1.65500850607 + 1.65530000318 + 1.65559155146 + 1.65588315093 + 1.65617480158 + 1.65646650343 + 1.65675825648 + 1.65705006076 + 1.65734191626 + 1.65763382299 + 1.65792578097 + 1.6582177902 + 1.65850985069 + 1.65880196245 + 1.65909412549 + 1.65938633982 + 1.65967860545 + 1.65997092238 + 1.66026329063 + 1.66055571021 + 1.66084818112 + 1.66114070337 + 1.66143327697 + 1.66172590193 + 1.66201857826 + 1.66231130597 + 1.66260408507 + 1.66289691556 + 1.66318979746 + 1.66348273078 + 1.66377571552 + 1.66406875169 + 1.6643618393 + 1.66465497837 + 1.66494816889 + 1.66524141088 + 1.66553470435 + 1.66582804931 + 1.66612144576 + 1.66641489372 + 1.6667083932 + 1.66700194419 + 1.66729554672 + 1.66758920079 + 1.66788290641 + 1.66817666359 + 1.66847047233 + 1.66876433266 + 1.66905824457 + 1.66935220807 + 1.66964622318 + 1.66994028991 + 1.67023440826 + 1.67052857824 + 1.67082279985 + 1.67111707312 + 1.67141139805 + 1.67170577465 + 1.67200020292 + 1.67229468288 + 1.67258921454 + 1.6728837979 + 1.67317843297 + 1.67347311976 + 1.67376785829 + 1.67406264856 + 1.67435749058 + 1.67465238435 + 1.6749473299 + 1.67524232722 + 1.67553737632 + 1.67583247722 + 1.67612762993 + 1.67642283445 + 1.67671809079 + 1.67701339896 + 1.67730875898 + 1.67760417084 + 1.67789963456 + 1.67819515015 + 1.67849071762 + 1.67878633698 + 1.67908200822 + 1.67937773138 + 1.67967350644 + 1.67996933343 + 1.68026521235 + 1.68056114322 + 1.68085712603 + 1.6811531608 + 1.68144924754 + 1.68174538625 + 1.68204157696 + 1.68233781965 + 1.68263411436 + 1.68293046107 + 1.68322685981 + 1.68352331058 + 1.6838198134 + 1.68411636826 + 1.68441297518 + 1.68470963417 + 1.68500634524 + 1.6853031084 + 1.68559992365 + 1.68589679101 + 1.68619371048 + 1.68649068207 + 1.6867877058 + 1.68708478167 + 1.68738190969 + 1.68767908987 + 1.68797632222 + 1.68827360675 + 1.68857094346 + 1.68886833237 + 1.68916577349 + 1.68946326683 + 1.68976081238 + 1.69005841017 + 1.69035606021 + 1.69065376249 + 1.69095151704 + 1.69124932385 + 1.69154718295 + 1.69184509433 + 1.69214305801 + 1.692441074 + 1.69273914231 + 1.69303726294 + 1.6933354359 + 1.69363366121 + 1.69393193887 + 1.69423026889 + 1.69452865128 + 1.69482708605 + 1.69512557322 + 1.69542411278 + 1.69572270475 + 1.69602134913 + 1.69632004594 + 1.69661879519 + 1.69691759688 + 1.69721645103 + 1.69751535764 + 1.69781431672 + 1.69811332829 + 1.69841239234 + 1.69871150889 + 1.69901067796 + 1.69930989954 + 1.69960917365 + 1.69990850029 + 1.70020787949 + 1.70050731123 + 1.70080679555 + 1.70110633243 + 1.7014059219 + 1.70170556396 + 1.70200525862 + 1.7023050059 + 1.70260480579 + 1.70290465831 + 1.70320456347 + 1.70350452128 + 1.70380453174 + 1.70410459487 + 1.70440471068 + 1.70470487917 + 1.70500510036 + 1.70530537424 + 1.70560570084 + 1.70590608016 + 1.70620651222 + 1.70650699701 + 1.70680753455 + 1.70710812485 + 1.70740876792 + 1.70770946377 + 1.7080102124 + 1.70831101383 + 1.70861186806 + 1.7089127751 + 1.70921373498 + 1.70951474768 + 1.70981581322 + 1.71011693162 + 1.71041810288 + 1.710719327 + 1.71102060401 + 1.7113219339 + 1.7116233167 + 1.71192475239 + 1.71222624101 + 1.71252778255 + 1.71282937703 + 1.71313102445 + 1.71343272482 + 1.71373447816 + 1.71403628447 + 1.71433814375 + 1.71464005603 + 1.71494202132 + 1.7152440396 + 1.71554611091 + 1.71584823525 + 1.71615041262 + 1.71645264304 + 1.71675492652 + 1.71705726306 + 1.71735965267 + 1.71766209537 + 1.71796459116 + 1.71826714006 + 1.71856974206 + 1.71887239719 + 1.71917510545 + 1.71947786684 + 1.71978068139 + 1.72008354909 + 1.72038646997 + 1.72068944401 + 1.72099247125 + 1.72129555168 + 1.72159868532 + 1.72190187217 + 1.72220511224 + 1.72250840555 + 1.7228117521 + 1.7231151519 + 1.72341860496 + 1.72372211129 + 1.72402567091 + 1.72432928381 + 1.72463295001 + 1.72493666952 + 1.72524044234 + 1.72554426849 + 1.72584814798 + 1.72615208081 + 1.726456067 + 1.72676010655 + 1.72706419948 + 1.72736834579 + 1.72767254549 + 1.72797679859 + 1.7282811051 + 1.72858546503 + 1.72888987839 + 1.7291943452 + 1.72949886544 + 1.72980343915 + 1.73010806633 + 1.73041274698 + 1.73071748111 + 1.73102226875 + 1.73132710988 + 1.73163200454 + 1.73193695271 + 1.73224195442 + 1.73254700967 + 1.73285211847 + 1.73315728083 + 1.73346249676 + 1.73376776628 + 1.73407308938 + 1.73437846608 + 1.73468389639 + 1.73498938032 + 1.73529491787 + 1.73560050906 + 1.7359061539 + 1.73621185239 + 1.73651760454 + 1.73682341037 + 1.73712926989 + 1.73743518309 + 1.73774115 + 1.73804717062 + 1.73835324496 + 1.73865937303 + 1.73896555484 + 1.73927179041 + 1.73957807973 + 1.73988442281 + 1.74019081968 + 1.74049727033 + 1.74080377478 + 1.74111033304 + 1.74141694511 + 1.74172361101 + 1.74203033074 + 1.74233710431 + 1.74264393174 + 1.74295081303 + 1.7432577482 + 1.74356473724 + 1.74387178018 + 1.74417887702 + 1.74448602776 + 1.74479323243 + 1.74510049102 + 1.74540780356 + 1.74571517004 + 1.74602259048 + 1.74633006489 + 1.74663759327 + 1.74694517564 + 1.747252812 + 1.74756050237 + 1.74786824675 + 1.74817604516 + 1.7484838976 + 1.74879180408 + 1.74909976462 + 1.74940777921 + 1.74971584788 + 1.75002397063 + 1.75033214747 + 1.75064037841 + 1.75094866345 + 1.75125700262 + 1.75156539591 + 1.75187384335 + 1.75218234493 + 1.75249090066 + 1.75279951056 + 1.75310817464 + 1.75341689291 + 1.75372566536 + 1.75403449202 + 1.7543433729 + 1.754652308 + 1.75496129733 + 1.75527034091 + 1.75557943873 + 1.75588859082 + 1.75619779718 + 1.75650705782 + 1.75681637274 + 1.75712574197 + 1.75743516551 + 1.75774464336 + 1.75805417555 + 1.75836376207 + 1.75867340294 + 1.75898309816 + 1.75929284775 + 1.75960265172 + 1.75991251007 + 1.76022242282 + 1.76053238997 + 1.76084241154 + 1.76115248753 + 1.76146261795 + 1.76177280281 + 1.76208304213 + 1.76239333591 + 1.76270368416 + 1.76301408689 + 1.76332454411 + 1.76363505583 + 1.76394562207 + 1.76425624282 + 1.76456691809 + 1.76487764791 + 1.76518843228 + 1.7654992712 + 1.76581016469 + 1.76612111275 + 1.76643211541 + 1.76674317265 + 1.76705428451 + 1.76736545097 + 1.76767667207 + 1.76798794779 + 1.76829927816 + 1.76861066319 + 1.76892210287 + 1.76923359723 + 1.76954514627 + 1.76985675001 + 1.77016840844 + 1.77048012159 + 1.77079188945 + 1.77110371205 + 1.77141558938 + 1.77172752146 + 1.77203950831 + 1.77235154992 + 1.77266364631 + 1.77297579749 + 1.77328800346 + 1.77360026424 + 1.77391257984 + 1.77422495027 + 1.77453737553 + 1.77484985563 + 1.7751623906 + 1.77547498042 + 1.77578762512 + 1.77610032471 + 1.77641307918 + 1.77672588857 + 1.77703875286 + 1.77735167208 + 1.77766464622 + 1.77797767532 + 1.77829075936 + 1.77860389836 + 1.77891709234 + 1.77923034129 + 1.77954364523 + 1.77985700418 + 1.78017041813 + 1.78048388711 + 1.78079741111 + 1.78111099015 + 1.78142462423 + 1.78173831338 + 1.78205205759 + 1.78236585688 + 1.78267971126 + 1.78299362073 + 1.78330758531 + 1.78362160501 + 1.78393567983 + 1.78424980978 + 1.78456399488 + 1.78487823514 + 1.78519253055 + 1.78550688115 + 1.78582128692 + 1.78613574789 + 1.78645026406 + 1.78676483545 + 1.78707946205 + 1.78739414389 + 1.78770888097 + 1.7880236733 + 1.78833852089 + 1.78865342376 + 1.7889683819 + 1.78928339533 + 1.78959846407 + 1.78991358811 + 1.79022876747 + 1.79054400216 + 1.79085929219 + 1.79117463757 + 1.79149003831 + 1.79180549441 + 1.79212100589 + 1.79243657276 + 1.79275219503 + 1.7930678727 + 1.79338360579 + 1.7936993943 + 1.79401523825 + 1.79433113765 + 1.7946470925 + 1.79496310282 + 1.79527916861 + 1.79559528989 + 1.79591146666 + 1.79622769893 + 1.79654398672 + 1.79686033003 + 1.79717672888 + 1.79749318327 + 1.79780969321 + 1.79812625871 + 1.79844287979 + 1.79875955645 + 1.7990762887 + 1.79939307655 + 1.79970992001 + 1.8000268191 + 1.80034377381 + 1.80066078417 + 1.80097785017 + 1.80129497184 + 1.80161214917 + 1.80192938219 + 1.80224667089 + 1.8025640153 + 1.80288141541 + 1.80319887124 + 1.8035163828 + 1.8038339501 + 1.80415157315 + 1.80446925195 + 1.80478698653 + 1.80510477688 + 1.80542262302 + 1.80574052495 + 1.80605848269 + 1.80637649625 + 1.80669456563 + 1.80701269086 + 1.80733087192 + 1.80764910885 + 1.80796740164 + 1.8082857503 + 1.80860415485 + 1.80892261529 + 1.80924113164 + 1.80955970391 + 1.8098783321 + 1.81019701622 + 1.81051575629 + 1.81083455231 + 1.81115340429 + 1.81147231225 + 1.8117912762 + 1.81211029613 + 1.81242937207 + 1.81274850402 + 1.813067692 + 1.81338693601 + 1.81370623606 + 1.81402559216 + 1.81434500432 + 1.81466447256 + 1.81498399688 + 1.81530357729 + 1.8156232138 + 1.81594290642 + 1.81626265517 + 1.81658246004 + 1.81690232106 + 1.81722223823 + 1.81754221156 + 1.81786224105 + 1.81818232673 + 1.8185024686 + 1.81882266667 + 1.81914292095 + 1.81946323145 + 1.81978359818 + 1.82010402115 + 1.82042450036 + 1.82074503584 + 1.82106562759 + 1.82138627561 + 1.82170697993 + 1.82202774054 + 1.82234855746 + 1.8226694307 + 1.82299036027 + 1.82331134618 + 1.82363238843 + 1.82395348705 + 1.82427464203 + 1.82459585339 + 1.82491712114 + 1.82523844528 + 1.82555982584 + 1.82588126281 + 1.82620275621 + 1.82652430604 + 1.82684591232 + 1.82716757506 + 1.82748929427 + 1.82781106995 + 1.82813290213 + 1.82845479079 + 1.82877673597 + 1.82909873766 + 1.82942079588 + 1.82974291063 + 1.83006508193 + 1.83038730979 + 1.83070959421 + 1.83103193521 + 1.8313543328 + 1.83167678698 + 1.83199929777 + 1.83232186517 + 1.8326444892 + 1.83296716987 + 1.83328990718 + 1.83361270115 + 1.83393555178 + 1.83425845909 + 1.83458142308 + 1.83490444377 + 1.83522752117 + 1.83555065528 + 1.83587384612 + 1.83619709369 + 1.836520398 + 1.83684375908 + 1.83716717691 + 1.83749065153 + 1.83781418292 + 1.83813777112 + 1.83846141611 + 1.83878511793 + 1.83910887656 + 1.83943269204 + 1.83975656436 + 1.84008049353 + 1.84040447957 + 1.84072852248 + 1.84105262228 + 1.84137677897 + 1.84170099257 + 1.84202526308 + 1.84234959052 + 1.84267397489 + 1.84299841621 + 1.84332291448 + 1.84364746972 + 1.84397208193 + 1.84429675112 + 1.84462147732 + 1.84494626051 + 1.84527110072 + 1.84559599796 + 1.84592095223 + 1.84624596355 + 1.84657103192 + 1.84689615735 + 1.84722133986 + 1.84754657946 + 1.84787187615 + 1.84819722995 + 1.84852264086 + 1.84884810889 + 1.84917363406 + 1.84949921638 + 1.84982485585 + 1.85015055249 + 1.8504763063 + 1.8508021173 + 1.85112798549 + 1.85145391089 + 1.8517798935 + 1.85210593334 + 1.85243203041 + 1.85275818473 + 1.85308439631 + 1.85341066515 + 1.85373699126 + 1.85406337467 + 1.85438981537 + 1.85471631337 + 1.85504286869 + 1.85536948133 + 1.85569615132 + 1.85602287864 + 1.85634966333 + 1.85667650538 + 1.85700340481 + 1.85733036162 + 1.85765737583 + 1.85798444744 + 1.85831157648 + 1.85863876294 + 1.85896600683 + 1.85929330817 + 1.85962066697 + 1.85994808324 + 1.86027555699 + 1.86060308822 + 1.86093067695 + 1.86125832318 + 1.86158602693 + 1.86191378822 + 1.86224160703 + 1.8625694834 + 1.86289741733 + 1.86322540882 + 1.86355345789 + 1.86388156455 + 1.8642097288 + 1.86453795067 + 1.86486623015 + 1.86519456727 + 1.86552296202 + 1.86585141442 + 1.86617992448 + 1.8665084922 + 1.86683711761 + 1.86716580071 + 1.8674945415 + 1.86782334001 + 1.86815219624 + 1.86848111019 + 1.86881008189 + 1.86913911133 + 1.86946819854 + 1.86979734352 + 1.87012654627 + 1.87045580682 + 1.87078512517 + 1.87111450133 + 1.87144393531 + 1.87177342712 + 1.87210297678 + 1.87243258428 + 1.87276224965 + 1.87309197289 + 1.87342175401 + 1.87375159302 + 1.87408148994 + 1.87441144477 + 1.87474145752 + 1.8750715282 + 1.87540165683 + 1.87573184341 + 1.87606208796 + 1.87639239047 + 1.87672275098 + 1.87705316947 + 1.87738364597 + 1.87771418048 + 1.87804477302 + 1.8783754236 + 1.87870613221 + 1.87903689889 + 1.87936772362 + 1.87969860644 + 1.88002954734 + 1.88036054633 + 1.88069160343 + 1.88102271865 + 1.881353892 + 1.88168512348 + 1.8820164131 + 1.88234776089 + 1.88267916684 + 1.88301063097 + 1.88334215329 + 1.8836737338 + 1.88400537253 + 1.88433706947 + 1.88466882464 + 1.88500063805 + 1.8853325097 + 1.88566443962 + 1.88599642781 + 1.88632847427 + 1.88666057903 + 1.88699274209 + 1.88732496345 + 1.88765724314 + 1.88798958116 + 1.88832197752 + 1.88865443223 + 1.8889869453 + 1.88931951675 + 1.88965214657 + 1.88998483479 + 1.89031758141 + 1.89065038645 + 1.8909832499 + 1.89131617179 + 1.89164915213 + 1.89198219092 + 1.89231528817 + 1.89264844389 + 1.89298165811 + 1.89331493081 + 1.89364826202 + 1.89398165175 + 1.8943151 + 1.89464860679 + 1.89498217213 + 1.89531579602 + 1.89564947848 + 1.89598321951 + 1.89631701913 + 1.89665087735 + 1.89698479418 + 1.89731876963 + 1.89765280371 + 1.89798689642 + 1.89832104778 + 1.89865525781 + 1.8989895265 + 1.89932385387 + 1.89965823993 + 1.8999926847 + 1.90032718817 + 1.90066175037 + 1.90099637129 + 1.90133105096 + 1.90166578939 + 1.90200058657 + 1.90233544253 + 1.90267035727 + 1.9030053308 + 1.90334036314 + 1.90367545429 + 1.90401060426 + 1.90434581307 + 1.90468108073 + 1.90501640724 + 1.90535179262 + 1.90568723687 + 1.90602274001 + 1.90635830204 + 1.90669392299 + 1.90702960285 + 1.90736534163 + 1.90770113936 + 1.90803699604 + 1.90837291167 + 1.90870888627 + 1.90904491985 + 1.90938101243 + 1.909717164 + 1.91005337458 + 1.91038964418 + 1.91072597282 + 1.9110623605 + 1.91139880722 + 1.91173531301 + 1.91207187788 + 1.91240850183 + 1.91274518487 + 1.91308192701 + 1.91341872827 + 1.91375558865 + 1.91409250817 + 1.91442948683 + 1.91476652465 + 1.91510362164 + 1.9154407778 + 1.91577799315 + 1.9161152677 + 1.91645260145 + 1.91678999442 + 1.91712744662 + 1.91746495806 + 1.91780252875 + 1.9181401587 + 1.91847784792 + 1.91881559642 + 1.91915340421 + 1.9194912713 + 1.9198291977 + 1.92016718343 + 1.92050522848 + 1.92084333288 + 1.92118149664 + 1.92151971976 + 1.92185800225 + 1.92219634412 + 1.9225347454 + 1.92287320607 + 1.92321172617 + 1.92355030569 + 1.92388894464 + 1.92422764305 + 1.92456640091 + 1.92490521824 + 1.92524409505 + 1.92558303134 + 1.92592202714 + 1.92626108245 + 1.92660019727 + 1.92693937163 + 1.92727860553 + 1.92761789898 + 1.92795725199 + 1.92829666458 + 1.92863613674 + 1.9289756685 + 1.92931525987 + 1.92965491085 + 1.92999462145 + 1.9303343917 + 1.93067422158 + 1.93101411112 + 1.93135406033 + 1.93169406922 + 1.93203413779 + 1.93237426606 + 1.93271445405 + 1.93305470175 + 1.93339500917 + 1.93373537634 + 1.93407580326 + 1.93441628995 + 1.9347568364 + 1.93509744263 + 1.93543810866 + 1.93577883449 + 1.93611962014 + 1.93646046561 + 1.93680137091 + 1.93714233606 + 1.93748336106 + 1.93782444593 + 1.93816559068 + 1.93850679531 + 1.93884805984 + 1.93918938428 + 1.93953076864 + 1.93987221293 + 1.94021371715 + 1.94055528133 + 1.94089690547 + 1.94123858958 + 1.94158033367 + 1.94192213775 + 1.94226400184 + 1.94260592594 + 1.94294791006 + 1.94328995422 + 1.94363205842 + 1.94397422268 + 1.944316447 + 1.9446587314 + 1.94500107589 + 1.94534348048 + 1.94568594517 + 1.94602846998 + 1.94637105493 + 1.94671370001 + 1.94705640524 + 1.94739917064 + 1.9477419962 + 1.94808488195 + 1.94842782789 + 1.94877083403 + 1.94911390039 + 1.94945702697 + 1.94980021379 + 1.95014346085 + 1.95048676817 + 1.95083013576 + 1.95117356362 + 1.95151705177 + 1.95186060022 + 1.95220420898 + 1.95254787806 + 1.95289160747 + 1.95323539721 + 1.95357924732 + 1.95392315778 + 1.95426712861 + 1.95461115983 + 1.95495525144 + 1.95529940346 + 1.95564361589 + 1.95598788875 + 1.95633222204 + 1.95667661578 + 1.95702106998 + 1.95736558465 + 1.95771015979 + 1.95805479543 + 1.95839949156 + 1.95874424821 + 1.95908906537 + 1.95943394307 + 1.95977888131 + 1.9601238801 + 1.96046893946 + 1.96081405939 + 1.96115923991 + 1.96150448102 + 1.96184978274 + 1.96219514507 + 1.96254056803 + 1.96288605163 + 1.96323159588 + 1.96357720079 + 1.96392286637 + 1.96426859263 + 1.96461437958 + 1.96496022723 + 1.9653061356 + 1.96565210469 + 1.96599813451 + 1.96634422508 + 1.9666903764 + 1.96703658849 + 1.96738286135 + 1.96772919501 + 1.96807558946 + 1.96842204472 + 1.9687685608 + 1.9691151377 + 1.96946177545 + 1.96980847406 + 1.97015523352 + 1.97050205385 + 1.97084893507 + 1.97119587719 + 1.97154288021 + 1.97188994414 + 1.972237069 + 1.9725842548 + 1.97293150154 + 1.97327880924 + 1.97362617792 + 1.97397360757 + 1.97432109821 + 1.97466864985 + 1.97501626251 + 1.97536393619 + 1.9757116709 + 1.97605946665 + 1.97640732346 + 1.97675524134 + 1.97710322029 + 1.97745126032 + 1.97779936146 + 1.9781475237 + 1.97849574707 + 1.97884403156 + 1.97919237719 + 1.97954078397 + 1.97988925192 + 1.98023778104 + 1.98058637134 + 1.98093502284 + 1.98128373554 + 1.98163250946 + 1.9819813446 + 1.98233024098 + 1.98267919861 + 1.9830282175 + 1.98337729765 + 1.98372643909 + 1.98407564182 + 1.98442490584 + 1.98477423119 + 1.98512361785 + 1.98547306585 + 1.98582257519 + 1.98617214589 + 1.98652177796 + 1.9868714714 + 1.98722122623 + 1.98757104246 + 1.9879209201 + 1.98827085915 + 1.98862085964 + 1.98897092157 + 1.98932104496 + 1.9896712298 + 1.99002147612 + 1.99037178393 + 1.99072215323 + 1.99107258404 + 1.99142307636 + 1.99177363022 + 1.99212424561 + 1.99247492255 + 1.99282566105 + 1.99317646113 + 1.99352732278 + 1.99387824603 + 1.99422923088 + 1.99458027735 + 1.99493138544 + 1.99528255517 + 1.99563378654 + 1.99598507957 + 1.99633643428 + 1.99668785066 + 1.99703932873 + 1.9973908685 + 1.99774246998 + 1.99809413319 + 1.99844585813 + 1.99879764482 + 1.99914949326 + 1.99950140346 + 1.99985337545 + 2.00020540922 + 2.00055750479 + 2.00090966217 + 2.00126188137 + 2.0016141624 + 2.00196650527 + 2.00231891 + 2.00267137659 + 2.00302390505 + 2.0033764954 + 2.00372914765 + 2.0040818618 + 2.00443463787 + 2.00478747587 + 2.00514037581 + 2.0054933377 + 2.00584636155 + 2.00619944738 + 2.00655259519 + 2.00690580499 + 2.0072590768 + 2.00761241062 + 2.00796580647 + 2.00831926436 + 2.0086727843 + 2.00902636629 + 2.00938001036 + 2.00973371651 + 2.01008748475 + 2.01044131509 + 2.01079520755 + 2.01114916213 + 2.01150317885 + 2.01185725772 + 2.01221139874 + 2.01256560193 + 2.0129198673 + 2.01327419486 + 2.01362858463 + 2.0139830366 + 2.0143375508 + 2.01469212723 + 2.01504676591 + 2.01540146684 + 2.01575623004 + 2.01611105552 + 2.01646594328 + 2.01682089335 + 2.01717590573 + 2.01753098043 + 2.01788611746 + 2.01824131683 + 2.01859657856 + 2.01895190265 + 2.01930728912 + 2.01966273798 + 2.02001824924 + 2.0203738229 + 2.02072945899 + 2.0210851575 + 2.02144091846 + 2.02179674187 + 2.02215262775 + 2.02250857609 + 2.02286458693 + 2.02322066026 + 2.0235767961 + 2.02393299446 + 2.02428925535 + 2.02464557878 + 2.02500196476 + 2.0253584133 + 2.02571492442 + 2.02607149812 + 2.02642813442 + 2.02678483332 + 2.02714159485 + 2.027498419 + 2.02785530579 + 2.02821225523 + 2.02856926733 + 2.0289263421 + 2.02928347956 + 2.02964067971 + 2.02999794257 + 2.03035526815 + 2.03071265645 + 2.03107010749 + 2.03142762128 + 2.03178519783 + 2.03214283716 + 2.03250053926 + 2.03285830416 + 2.03321613187 + 2.03357402239 + 2.03393197574 + 2.03428999192 + 2.03464807095 + 2.03500621285 + 2.03536441761 + 2.03572268526 + 2.0360810158 + 2.03643940924 + 2.0367978656 + 2.03715638489 + 2.03751496711 + 2.03787361228 + 2.03823232041 + 2.03859109151 + 2.03894992559 + 2.03930882266 + 2.03966778274 + 2.04002680583 + 2.04038589195 + 2.0407450411 + 2.0411042533 + 2.04146352856 + 2.04182286689 + 2.0421822683 + 2.04254173281 + 2.04290126041 + 2.04326085113 + 2.04362050498 + 2.04398022196 + 2.04434000209 + 2.04469984538 + 2.04505975184 + 2.04541972148 + 2.04577975431 + 2.04613985034 + 2.04650000959 + 2.04686023206 + 2.04722051777 + 2.04758086672 + 2.04794127894 + 2.04830175442 + 2.04866229318 + 2.04902289524 + 2.0493835606 + 2.04974428927 + 2.05010508127 + 2.0504659366 + 2.05082685528 + 2.05118783732 + 2.05154888273 + 2.05190999152 + 2.0522711637 + 2.05263239928 + 2.05299369828 + 2.0533550607 + 2.05371648656 + 2.05407797587 + 2.05443952863 + 2.05480114487 + 2.05516282458 + 2.05552456779 + 2.0558863745 + 2.05624824473 + 2.05661017848 + 2.05697217577 + 2.0573342366 + 2.05769636099 + 2.05805854896 + 2.0584208005 + 2.05878311564 + 2.05914549438 + 2.05950793674 + 2.05987044272 + 2.06023301234 + 2.0605956456 + 2.06095834253 + 2.06132110313 + 2.0616839274 + 2.06204681537 + 2.06240976705 + 2.06277278244 + 2.06313586156 + 2.06349900441 + 2.06386221102 + 2.06422548138 + 2.06458881551 + 2.06495221343 + 2.06531567514 + 2.06567920066 + 2.06604278999 + 2.06640644315 + 2.06677016014 + 2.06713394099 + 2.0674977857 + 2.06786169428 + 2.06822566674 + 2.0685897031 + 2.06895380336 + 2.06931796754 + 2.06968219565 + 2.0700464877 + 2.07041084369 + 2.07077526365 + 2.07113974759 + 2.0715042955 + 2.07186890742 + 2.07223358333 + 2.07259832327 + 2.07296312724 + 2.07332799524 + 2.0736929273 + 2.07405792342 + 2.07442298362 + 2.0747881079 + 2.07515329628 + 2.07551854876 + 2.07588386537 + 2.0762492461 + 2.07661469098 + 2.07698020001 + 2.0773457732 + 2.07771141057 + 2.07807711213 + 2.07844287788 + 2.07880870785 + 2.07917460203 + 2.07954056045 + 2.0799065831 + 2.08027267002 + 2.0806388212 + 2.08100503665 + 2.0813713164 + 2.08173766044 + 2.08210406879 + 2.08247054147 + 2.08283707848 + 2.08320367983 + 2.08357034554 + 2.08393707562 + 2.08430387008 + 2.08467072892 + 2.08503765217 + 2.08540463983 + 2.08577169191 + 2.08613880843 + 2.0865059894 + 2.08687323482 + 2.08724054471 + 2.08760791908 + 2.08797535795 + 2.08834286131 + 2.0887104292 + 2.0890780616 + 2.08944575855 + 2.08981352004 + 2.09018134609 + 2.09054923671 + 2.09091719192 + 2.09128521171 + 2.09165329612 + 2.09202144514 + 2.09238965878 + 2.09275793707 + 2.09312628001 + 2.0934946876 + 2.09386315988 + 2.09423169683 + 2.09460029848 + 2.09496896484 + 2.09533769592 + 2.09570649172 + 2.09607535227 + 2.09644427757 + 2.09681326764 + 2.09718232248 + 2.0975514421 + 2.09792062653 + 2.09828987576 + 2.09865918982 + 2.0990285687 + 2.09939801243 + 2.09976752102 + 2.10013709447 + 2.1005067328 + 2.10087643602 + 2.10124620414 + 2.10161603717 + 2.10198593512 + 2.10235589801 + 2.10272592584 + 2.10309601864 + 2.1034661764 + 2.10383639914 + 2.10420668687 + 2.10457703961 + 2.10494745736 + 2.10531794014 + 2.10568848795 + 2.10605910081 + 2.10642977873 + 2.10680052173 + 2.10717132981 + 2.10754220298 + 2.10791314126 + 2.10828414465 + 2.10865521317 + 2.10902634684 + 2.10939754565 + 2.10976880963 + 2.11014013879 + 2.11051153312 + 2.11088299266 + 2.11125451741 + 2.11162610737 + 2.11199776257 + 2.11236948301 + 2.1127412687 + 2.11311311966 + 2.1134850359 + 2.11385701743 + 2.11422906426 + 2.1146011764 + 2.11497335386 + 2.11534559666 + 2.1157179048 + 2.1160902783 + 2.11646271717 + 2.11683522143 + 2.11720779107 + 2.11758042612 + 2.11795312658 + 2.11832589247 + 2.1186987238 + 2.11907162058 + 2.11944458281 + 2.11981761052 + 2.12019070372 + 2.12056386241 + 2.12093708661 + 2.12131037632 + 2.12168373157 + 2.12205715236 + 2.1224306387 + 2.12280419061 + 2.12317780809 + 2.12355149116 + 2.12392523983 + 2.1242990541 + 2.12467293401 + 2.12504687954 + 2.12542089072 + 2.12579496756 + 2.12616911006 + 2.12654331825 + 2.12691759212 + 2.1272919317 + 2.127666337 + 2.12804080802 + 2.12841534477 + 2.12878994728 + 2.12916461555 + 2.12953934958 + 2.12991414941 + 2.13028901502 + 2.13066394645 + 2.13103894369 + 2.13141400676 + 2.13178913568 + 2.13216433044 + 2.13253959107 + 2.13291491758 + 2.13329030998 + 2.13366576827 + 2.13404129248 + 2.1344168826 + 2.13479253866 + 2.13516826067 + 2.13554404863 + 2.13591990257 + 2.13629582248 + 2.13667180838 + 2.13704786029 + 2.13742397821 + 2.13780016216 + 2.13817641215 + 2.13855272819 + 2.13892911029 + 2.13930555846 + 2.13968207271 + 2.14005865307 + 2.14043529952 + 2.1408120121 + 2.14118879081 + 2.14156563567 + 2.14194254667 + 2.14231952385 + 2.1426965672 + 2.14307367674 + 2.14345085248 + 2.14382809443 + 2.1442054026 + 2.14458277702 + 2.14496021767 + 2.14533772459 + 2.14571529778 + 2.14609293725 + 2.14647064301 + 2.14684841508 + 2.14722625347 + 2.14760415818 + 2.14798212924 + 2.14836016664 + 2.14873827041 + 2.14911644056 + 2.14949467709 + 2.14987298002 + 2.15025134936 + 2.15062978512 + 2.15100828732 + 2.15138685596 + 2.15176549106 + 2.15214419262 + 2.15252296067 + 2.15290179521 + 2.15328069625 + 2.15365966381 + 2.15403869789 + 2.15441779851 + 2.15479696568 + 2.15517619942 + 2.15555549973 + 2.15593486662 + 2.15631430011 + 2.15669380021 + 2.15707336693 + 2.15745300028 + 2.15783270027 + 2.15821246692 + 2.15859230024 + 2.15897220023 + 2.15935216692 + 2.15973220031 + 2.16011230041 + 2.16049246724 + 2.1608727008 + 2.16125300112 + 2.16163336819 + 2.16201380204 + 2.16239430267 + 2.1627748701 + 2.16315550434 + 2.16353620539 + 2.16391697328 + 2.16429780801 + 2.16467870959 + 2.16505967804 + 2.16544071337 + 2.16582181558 + 2.1662029847 + 2.16658422074 + 2.16696552369 + 2.16734689359 + 2.16772833043 + 2.16810983423 + 2.16849140501 + 2.16887304277 + 2.16925474752 + 2.16963651928 + 2.17001835806 + 2.17040026388 + 2.17078223673 + 2.17116427664 + 2.17154638361 + 2.17192855767 + 2.17231079881 + 2.17269310705 + 2.17307548241 + 2.17345792489 + 2.17384043451 + 2.17422301128 + 2.17460565521 + 2.17498836631 + 2.17537114459 + 2.17575399007 + 2.17613690276 + 2.17651988267 + 2.17690292981 + 2.17728604419 + 2.17766922582 + 2.17805247473 + 2.17843579091 + 2.17881917438 + 2.17920262515 + 2.17958614324 + 2.17996972865 + 2.1803533814 + 2.1807371015 + 2.18112088896 + 2.1815047438 + 2.18188866601 + 2.18227265563 + 2.18265671265 + 2.1830408371 + 2.18342502897 + 2.18380928829 + 2.18419361507 + 2.18457800931 + 2.18496247103 + 2.18534700025 + 2.18573159696 + 2.18611626119 + 2.18650099295 + 2.18688579225 + 2.1872706591 + 2.18765559351 + 2.18804059549 + 2.18842566506 + 2.18881080223 + 2.18919600701 + 2.18958127941 + 2.18996661945 + 2.19035202713 + 2.19073750246 + 2.19112304547 + 2.19150865616 + 2.19189433454 + 2.19228008062 + 2.19266589442 + 2.19305177596 + 2.19343772523 + 2.19382374225 + 2.19420982704 + 2.1945959796 + 2.19498219995 + 2.19536848811 + 2.19575484407 + 2.19614126786 + 2.19652775948 + 2.19691431895 + 2.19730094629 + 2.19768764149 + 2.19807440457 + 2.19846123555 + 2.19884813444 + 2.19923510125 + 2.19962213599 + 2.20000923867 + 2.20039640931 + 2.20078364791 + 2.20117095449 + 2.20155832907 + 2.20194577164 + 2.20233328223 + 2.20272086085 + 2.2031085075 + 2.20349622221 + 2.20388400498 + 2.20427185582 + 2.20465977475 + 2.20504776177 + 2.20543581691 + 2.20582394017 + 2.20621213156 + 2.2066003911 + 2.2069887188 + 2.20737711466 + 2.20776557871 + 2.20815411096 + 2.2085427114 + 2.20893138007 + 2.20932011697 + 2.20970892211 + 2.2100977955 + 2.21048673715 + 2.21087574709 + 2.21126482532 + 2.21165397184 + 2.21204318668 + 2.21243246985 + 2.21282182135 + 2.21321124121 + 2.21360072942 + 2.21399028601 + 2.21437991099 + 2.21476960436 + 2.21515936614 + 2.21554919634 + 2.21593909498 + 2.21632906206 + 2.21671909761 + 2.21710920162 + 2.21749937411 + 2.21788961509 + 2.21827992459 + 2.2186703026 + 2.21906074914 + 2.21945126422 + 2.21984184785 + 2.22023250006 + 2.22062322084 + 2.22101401021 + 2.22140486818 + 2.22179579476 + 2.22218678998 + 2.22257785383 + 2.22296898633 + 2.22336018749 + 2.22375145733 + 2.22414279585 + 2.22453420308 + 2.22492567901 + 2.22531722367 + 2.22570883706 + 2.22610051919 + 2.22649227009 + 2.22688408976 + 2.22727597821 + 2.22766793545 + 2.2280599615 + 2.22845205637 + 2.22884422008 + 2.22923645262 + 2.22962875402 + 2.23002112429 + 2.23041356344 + 2.23080607148 + 2.23119864843 + 2.23159129429 + 2.23198400907 + 2.2323767928 + 2.23276964548 + 2.23316256713 + 2.23355555775 + 2.23394861736 + 2.23434174597 + 2.23473494359 + 2.23512821024 + 2.23552154592 + 2.23591495066 + 2.23630842445 + 2.23670196732 + 2.23709557928 + 2.23748926033 + 2.23788301049 + 2.23827682977 + 2.23867071819 + 2.23906467575 + 2.23945870247 + 2.23985279837 + 2.24024696344 + 2.24064119771 + 2.24103550119 + 2.24142987388 + 2.24182431581 + 2.24221882698 + 2.2426134074 + 2.24300805709 + 2.24340277607 + 2.24379756433 + 2.2441924219 + 2.24458734878 + 2.244982345 + 2.24537741055 + 2.24577254546 + 2.24616774973 + 2.24656302338 + 2.24695836642 + 2.24735377886 + 2.24774926071 + 2.24814481199 + 2.2485404327 + 2.24893612287 + 2.2493318825 + 2.24972771161 + 2.2501236102 + 2.25051957829 + 2.25091561589 + 2.25131172301 + 2.25170789967 + 2.25210414588 + 2.25250046165 + 2.25289684699 + 2.25329330192 + 2.25368982644 + 2.25408642057 + 2.25448308432 + 2.2548798177 + 2.25527662073 + 2.25567349342 + 2.25607043578 + 2.25646744782 + 2.25686452956 + 2.257261681 + 2.25765890216 + 2.25805619305 + 2.25845355369 + 2.25885098408 + 2.25924848424 + 2.25964605418 + 2.26004369391 + 2.26044140344 + 2.2608391828 + 2.26123703198 + 2.261634951 + 2.26203293988 + 2.26243099862 + 2.26282912725 + 2.26322732576 + 2.26362559417 + 2.2640239325 + 2.26442234076 + 2.26482081896 + 2.26521936711 + 2.26561798522 + 2.26601667331 + 2.26641543139 + 2.26681425946 + 2.26721315756 + 2.26761212567 + 2.26801116383 + 2.26841027204 + 2.2688094503 + 2.26920869865 + 2.26960801708 + 2.27000740561 + 2.27040686425 + 2.27080639301 + 2.27120599191 + 2.27160566096 + 2.27200540017 + 2.27240520956 + 2.27280508913 + 2.2732050389 + 2.27360505887 + 2.27400514907 + 2.27440530951 + 2.27480554019 + 2.27520584113 + 2.27560621235 + 2.27600665384 + 2.27640716564 + 2.27680774774 + 2.27720840017 + 2.27760912292 + 2.27800991603 + 2.27841077949 + 2.27881171332 + 2.27921271754 + 2.27961379215 + 2.28001493717 + 2.28041615261 + 2.28081743848 + 2.28121879479 + 2.28162022156 + 2.28202171881 + 2.28242328653 + 2.28282492475 + 2.28322663347 + 2.28362841272 + 2.28403026249 + 2.28443218281 + 2.28483417369 + 2.28523623513 + 2.28563836715 + 2.28604056977 + 2.28644284299 + 2.28684518684 + 2.28724760131 + 2.28765008642 + 2.28805264219 + 2.28845526863 + 2.28885796575 + 2.28926073356 + 2.28966357207 + 2.29006648131 + 2.29046946127 + 2.29087251197 + 2.29127563343 + 2.29167882566 + 2.29208208866 + 2.29248542246 + 2.29288882706 + 2.29329230248 + 2.29369584872 + 2.29409946581 + 2.29450315376 + 2.29490691256 + 2.29531074225 + 2.29571464283 + 2.29611861431 + 2.29652265671 + 2.29692677004 + 2.29733095431 + 2.29773520953 + 2.29813953572 + 2.29854393289 + 2.29894840104 + 2.29935294021 + 2.29975755038 + 2.30016223159 + 2.30056698383 + 2.30097180713 + 2.3013767015 + 2.30178166694 + 2.30218670348 + 2.30259181111 + 2.30299698986 + 2.30340223975 + 2.30380756077 + 2.30421295294 + 2.30461841628 + 2.3050239508 + 2.30542955651 + 2.30583523342 + 2.30624098155 + 2.3066468009 + 2.3070526915 + 2.30745865335 + 2.30786468646 + 2.30827079086 + 2.30867696654 + 2.30908321353 + 2.30948953183 + 2.30989592146 + 2.31030238243 + 2.31070891475 + 2.31111551844 + 2.31152219351 + 2.31192893997 + 2.31233575783 + 2.31274264711 + 2.31314960782 + 2.31355663997 + 2.31396374357 + 2.31437091864 + 2.31477816518 + 2.31518548322 + 2.31559287276 + 2.31600033382 + 2.3164078664 + 2.31681547053 + 2.31722314621 + 2.31763089346 + 2.31803871228 + 2.3184466027 + 2.31885456472 + 2.31926259836 + 2.31967070363 + 2.32007888054 + 2.3204871291 + 2.32089544933 + 2.32130384125 + 2.32171230485 + 2.32212084016 + 2.32252944718 + 2.32293812594 + 2.32334687644 + 2.32375569869 + 2.32416459271 + 2.32457355851 + 2.3249825961 + 2.3253917055 + 2.32580088672 + 2.32621013977 + 2.32661946466 + 2.32702886141 + 2.32743833002 + 2.32784787052 + 2.32825748291 + 2.32866716721 + 2.32907692343 + 2.32948675158 + 2.32989665167 + 2.33030662372 + 2.33071666774 + 2.33112678374 + 2.33153697174 + 2.33194723174 + 2.33235756376 + 2.33276796782 + 2.33317844392 + 2.33358899208 + 2.33399961231 + 2.33441030463 + 2.33482106904 + 2.33523190556 + 2.3356428142 + 2.33605379497 + 2.33646484789 + 2.33687597297 + 2.33728717023 + 2.33769843966 + 2.3381097813 + 2.33852119514 + 2.33893268121 + 2.33934423951 + 2.33975587006 + 2.34016757287 + 2.34057934796 + 2.34099119533 + 2.341403115 + 2.34181510698 + 2.34222717128 + 2.34263930792 + 2.34305151691 + 2.34346379827 + 2.343876152 + 2.34428857811 + 2.34470107663 + 2.34511364756 + 2.34552629092 + 2.34593900671 + 2.34635179495 + 2.34676465566 + 2.34717758885 + 2.34759059453 + 2.3480036727 + 2.3484168234 + 2.34883004662 + 2.34924334238 + 2.34965671069 + 2.35007015157 + 2.35048366503 + 2.35089725107 + 2.35131090973 + 2.351724641 + 2.3521384449 + 2.35255232144 + 2.35296627063 + 2.3533802925 + 2.35379438704 + 2.35420855428 + 2.35462279422 + 2.35503710689 + 2.35545149228 + 2.35586595042 + 2.35628048132 + 2.35669508498 + 2.35710976143 + 2.35752451067 + 2.35793933272 + 2.3583542276 + 2.3587691953 + 2.35918423586 + 2.35959934927 + 2.36001453555 + 2.36042979472 + 2.36084512679 + 2.36126053177 + 2.36167600967 + 2.36209156051 + 2.36250718429 + 2.36292288104 + 2.36333865076 + 2.36375449347 + 2.36417040918 + 2.36458639791 + 2.36500245965 + 2.36541859444 + 2.36583480228 + 2.36625108318 + 2.36666743716 + 2.36708386423 + 2.36750036441 + 2.36791693769 + 2.36833358411 + 2.36875030367 + 2.36916709638 + 2.36958396226 + 2.37000090132 + 2.37041791357 + 2.37083499903 + 2.3712521577 + 2.37166938961 + 2.37208669476 + 2.37250407316 + 2.37292152484 + 2.3733390498 + 2.37375664806 + 2.37417431962 + 2.3745920645 + 2.37500988272 + 2.37542777429 + 2.37584573921 + 2.37626377751 + 2.3766818892 + 2.37710007428 + 2.37751833277 + 2.37793666469 + 2.37835507004 + 2.37877354885 + 2.37919210112 + 2.37961072686 + 2.38002942609 + 2.38044819883 + 2.38086704507 + 2.38128596485 + 2.38170495817 + 2.38212402504 + 2.38254316547 + 2.38296237949 + 2.38338166709 + 2.3838010283 + 2.38422046313 + 2.38463997159 + 2.3850595537 + 2.38547920946 + 2.38589893889 + 2.386318742 + 2.38673861881 + 2.38715856932 + 2.38757859356 + 2.38799869153 + 2.38841886325 + 2.38883910873 + 2.38925942798 + 2.38967982102 + 2.39010028786 + 2.39052082851 + 2.39094144298 + 2.39136213129 + 2.39178289345 + 2.39220372948 + 2.39262463938 + 2.39304562317 + 2.39346668087 + 2.39388781248 + 2.39430901802 + 2.3947302975 + 2.39515165094 + 2.39557307834 + 2.39599457972 + 2.3964161551 + 2.39683780448 + 2.39725952789 + 2.39768132532 + 2.3981031968 + 2.39852514234 + 2.39894716195 + 2.39936925565 + 2.39979142344 + 2.40021366534 + 2.40063598137 + 2.40105837154 + 2.40148083585 + 2.40190337432 + 2.40232598698 + 2.40274867382 + 2.40317143486 + 2.40359427011 + 2.4040171796 + 2.40444016332 + 2.4048632213 + 2.40528635355 + 2.40570956007 + 2.40613284089 + 2.40655619601 + 2.40697962545 + 2.40740312923 + 2.40782670735 + 2.40825035983 + 2.40867408667 + 2.40909788791 + 2.40952176354 + 2.40994571358 + 2.41036973804 + 2.41079383694 + 2.41121801029 + 2.41164225811 + 2.41206658039 + 2.41249097717 + 2.41291544845 + 2.41333999424 + 2.41376461456 + 2.41418930943 + 2.41461407884 + 2.41503892283 + 2.41546384139 + 2.41588883455 + 2.41631390231 + 2.4167390447 + 2.41716426171 + 2.41758955338 + 2.4180149197 + 2.41844036069 + 2.41886587637 + 2.41929146675 + 2.41971713183 + 2.42014287165 + 2.4205686862 + 2.4209945755 + 2.42142053956 + 2.4218465784 + 2.42227269203 + 2.42269888047 + 2.42312514372 + 2.4235514818 + 2.42397789472 + 2.4244043825 + 2.42483094515 + 2.42525758268 + 2.4256842951 + 2.42611108243 + 2.42653794469 + 2.42696488188 + 2.42739189401 + 2.42781898111 + 2.42824614318 + 2.42867338024 + 2.4291006923 + 2.42952807938 + 2.42995554148 + 2.43038307861 + 2.43081069081 + 2.43123837807 + 2.43166614041 + 2.43209397784 + 2.43252189037 + 2.43294987803 + 2.43337794082 + 2.43380607875 + 2.43423429184 + 2.43466258011 + 2.43509094355 + 2.4355193822 + 2.43594789606 + 2.43637648514 + 2.43680514946 + 2.43723388903 + 2.43766270387 + 2.43809159398 + 2.43852055939 + 2.43894960009 + 2.43937871612 + 2.43980790747 + 2.44023717417 + 2.44066651622 + 2.44109593365 + 2.44152542646 + 2.44195499466 + 2.44238463828 + 2.44281435731 + 2.44324415179 + 2.44367402171 + 2.44410396709 + 2.44453398795 + 2.4449640843 + 2.44539425616 + 2.44582450352 + 2.44625482642 + 2.44668522486 + 2.44711569885 + 2.44754624841 + 2.44797687356 + 2.4484075743 + 2.44883835065 + 2.44926920262 + 2.44970013022 + 2.45013113348 + 2.45056221239 + 2.45099336698 + 2.45142459726 + 2.45185590324 + 2.45228728493 + 2.45271874235 + 2.45315027552 + 2.45358188443 + 2.45401356912 + 2.45444532959 + 2.45487716585 + 2.45530907792 + 2.45574106581 + 2.45617312953 + 2.4566052691 + 2.45703748454 + 2.45746977584 + 2.45790214304 + 2.45833458614 + 2.45876710515 + 2.45919970008 + 2.45963237096 + 2.4600651178 + 2.4604979406 + 2.46093083938 + 2.46136381416 + 2.46179686494 + 2.46222999175 + 2.46266319459 + 2.46309647347 + 2.46352982842 + 2.46396325944 + 2.46439676655 + 2.46483034976 + 2.46526400909 + 2.46569774454 + 2.46613155614 + 2.46656544389 + 2.4669994078 + 2.4674334479 + 2.4678675642 + 2.4683017567 + 2.46873602542 + 2.46917037038 + 2.46960479158 + 2.47003928905 + 2.47047386279 + 2.47090851282 + 2.47134323916 + 2.4717780418 + 2.47221292078 + 2.4726478761 + 2.47308290777 + 2.47351801581 + 2.47395320024 + 2.47438846106 + 2.47482379828 + 2.47525921193 + 2.47569470202 + 2.47613026856 + 2.47656591156 + 2.47700163103 + 2.47743742699 + 2.47787329946 + 2.47830924844 + 2.47874527396 + 2.47918137601 + 2.47961755463 + 2.48005380981 + 2.48049014158 + 2.48092654994 + 2.48136303491 + 2.48179959651 + 2.48223623475 + 2.48267294963 + 2.48310974118 + 2.48354660941 + 2.48398355433 + 2.48442057595 + 2.48485767429 + 2.48529484936 + 2.48573210118 + 2.48616942976 + 2.48660683511 + 2.48704431724 + 2.48748187617 + 2.48791951192 + 2.48835722449 + 2.4887950139 + 2.48923288016 + 2.48967082329 + 2.4901088433 + 2.4905469402 + 2.49098511401 + 2.49142336474 + 2.49186169241 + 2.49230009702 + 2.49273857859 + 2.49317713714 + 2.49361577267 + 2.49405448521 + 2.49449327476 + 2.49493214133 + 2.49537108496 + 2.49581010563 + 2.49624920338 + 2.4966883782 + 2.49712763013 + 2.49756695916 + 2.49800636532 + 2.49844584861 + 2.49888540905 + 2.49932504666 + 2.49976476144 + 2.50020455342 + 2.5006444226 + 2.501084369 + 2.50152439263 + 2.5019644935 + 2.50240467163 + 2.50284492704 + 2.50328525973 + 2.50372566972 + 2.50416615702 + 2.50460672165 + 2.50504736362 + 2.50548808294 + 2.50592887963 + 2.5063697537 + 2.50681070517 + 2.50725173404 + 2.50769284033 + 2.50813402406 + 2.50857528524 + 2.50901662388 + 2.50945804 + 2.50989953361 + 2.51034110472 + 2.51078275334 + 2.5112244795 + 2.5116662832 + 2.51210816446 + 2.51255012328 + 2.5129921597 + 2.51343427371 + 2.51387646533 + 2.51431873458 + 2.51476108147 + 2.51520350602 + 2.51564600822 + 2.51608858811 + 2.51653124569 + 2.51697398098 + 2.517416794 + 2.51785968474 + 2.51830265323 + 2.51874569949 + 2.51918882352 + 2.51963202534 + 2.52007530497 + 2.52051866241 + 2.52096209768 + 2.52140561079 + 2.52184920177 + 2.52229287061 + 2.52273661734 + 2.52318044197 + 2.52362434451 + 2.52406832497 + 2.52451238338 + 2.52495651974 + 2.52540073406 + 2.52584502637 + 2.52628939667 + 2.52673384498 + 2.52717837131 + 2.52762297568 + 2.52806765809 + 2.52851241857 + 2.52895725712 + 2.52940217377 + 2.52984716852 + 2.53029224139 + 2.53073739238 + 2.53118262153 + 2.53162792883 + 2.53207331431 + 2.53251877797 + 2.53296431983 + 2.5334099399 + 2.53385563821 + 2.53430141475 + 2.53474726955 + 2.53519320262 + 2.53563921397 + 2.53608530361 + 2.53653147157 + 2.53697771785 + 2.53742404247 + 2.53787044544 + 2.53831692677 + 2.53876348648 + 2.53921012459 + 2.5396568411 + 2.54010363603 + 2.54055050939 + 2.5409974612 + 2.54144449148 + 2.54189160023 + 2.54233878746 + 2.5427860532 + 2.54323339746 + 2.54368082024 + 2.54412832158 + 2.54457590146 + 2.54502355992 + 2.54547129697 + 2.54591911261 + 2.54636700687 + 2.54681497975 + 2.54726303128 + 2.54771116146 + 2.5481593703 + 2.54860765783 + 2.54905602406 + 2.54950446899 + 2.54995299265 + 2.55040159504 + 2.55085027619 + 2.5512990361 + 2.55174787479 + 2.55219679227 + 2.55264578856 + 2.55309486366 + 2.55354401761 + 2.5539932504 + 2.55444256205 + 2.55489195258 + 2.55534142199 + 2.55579097031 + 2.55624059755 + 2.55669030372 + 2.55714008883 + 2.5575899529 + 2.55803989595 + 2.55848991798 + 2.55894001901 + 2.55939019905 + 2.55984045813 + 2.56029079624 + 2.56074121341 + 2.56119170965 + 2.56164228497 + 2.5620929394 + 2.56254367293 + 2.56299448558 + 2.56344537738 + 2.56389634833 + 2.56434739845 + 2.56479852774 + 2.56524973623 + 2.56570102393 + 2.56615239086 + 2.56660383702 + 2.56705536242 + 2.5675069671 + 2.56795865105 + 2.56841041429 + 2.56886225684 + 2.56931417871 + 2.56976617991 + 2.57021826046 + 2.57067042038 + 2.57112265966 + 2.57157497834 + 2.57202737642 + 2.57247985392 + 2.57293241085 + 2.57338504722 + 2.57383776306 + 2.57429055836 + 2.57474343316 + 2.57519638745 + 2.57564942126 + 2.5761025346 + 2.57655572748 + 2.57700899992 + 2.57746235193 + 2.57791578353 + 2.57836929472 + 2.57882288553 + 2.57927655596 + 2.57973030603 + 2.58018413576 + 2.58063804516 + 2.58109203424 + 2.58154610301 + 2.5820002515 + 2.58245447971 + 2.58290878766 + 2.58336317536 + 2.58381764283 + 2.58427219008 + 2.58472681713 + 2.58518152398 + 2.58563631066 + 2.58609117717 + 2.58654612353 + 2.58700114976 + 2.58745625587 + 2.58791144187 + 2.58836670777 + 2.5888220536 + 2.58927747936 + 2.58973298507 + 2.59018857075 + 2.5906442364 + 2.59109998204 + 2.59155580768 + 2.59201171335 + 2.59246769905 + 2.59292376479 + 2.5933799106 + 2.59383613648 + 2.59429244246 + 2.59474882853 + 2.59520529472 + 2.59566184105 + 2.59611846752 + 2.59657517415 + 2.59703196095 + 2.59748882794 + 2.59794577513 + 2.59840280254 + 2.59885991018 + 2.59931709806 + 2.5997743662 + 2.60023171462 + 2.60068914332 + 2.60114665232 + 2.60160424163 + 2.60206191127 + 2.60251966126 + 2.6029774916 + 2.60343540232 + 2.60389339342 + 2.60435146491 + 2.60480961683 + 2.60526784916 + 2.60572616195 + 2.60618455518 + 2.60664302889 + 2.60710158308 + 2.60756021777 + 2.60801893297 + 2.60847772869 + 2.60893660496 + 2.60939556178 + 2.60985459917 + 2.61031371714 + 2.61077291571 + 2.61123219489 + 2.6116915547 + 2.61215099515 + 2.61261051625 + 2.61307011801 + 2.61352980046 + 2.61398956361 + 2.61444940747 + 2.61490933205 + 2.61536933736 + 2.61582942344 + 2.61628959028 + 2.61674983789 + 2.61721016631 + 2.61767057553 + 2.61813106558 + 2.61859163647 + 2.61905228821 + 2.61951302081 + 2.6199738343 + 2.62043472868 + 2.62089570397 + 2.62135676018 + 2.62181789733 + 2.62227911543 + 2.62274041449 + 2.62320179454 + 2.62366325558 + 2.62412479763 + 2.6245864207 + 2.62504812481 + 2.62550990996 + 2.62597177619 + 2.62643372349 + 2.62689575189 + 2.62735786139 + 2.62782005202 + 2.62828232379 + 2.6287446767 + 2.62920711078 + 2.62966962604 + 2.63013222249 + 2.63059490015 + 2.63105765903 + 2.63152049915 + 2.63198342052 + 2.63244642315 + 2.63290950706 + 2.63337267227 + 2.63383591878 + 2.63429924661 + 2.63476265578 + 2.6352261463 + 2.63568971819 + 2.63615337145 + 2.63661710611 + 2.63708092218 + 2.63754481966 + 2.63800879859 + 2.63847285896 + 2.6389370008 + 2.63940122411 + 2.63986552892 + 2.64032991524 + 2.64079438308 + 2.64125893245 + 2.64172356338 + 2.64218827587 + 2.64265306994 + 2.6431179456 + 2.64358290287 + 2.64404794177 + 2.6445130623 + 2.64497826448 + 2.64544354832 + 2.64590891385 + 2.64637436107 + 2.64683988999 + 2.64730550064 + 2.64777119303 + 2.64823696717 + 2.64870282307 + 2.64916876075 + 2.64963478023 + 2.65010088151 + 2.65056706462 + 2.65103332957 + 2.65149967636 + 2.65196610503 + 2.65243261557 + 2.65289920801 + 2.65336588236 + 2.65383263863 + 2.65429947684 + 2.654766397 + 2.65523339912 + 2.65570048323 + 2.65616764934 + 2.65663489745 + 2.65710222759 + 2.65756963977 + 2.658037134 + 2.65850471029 + 2.65897236867 + 2.65944010915 + 2.65990793174 + 2.66037583645 + 2.6608438233 + 2.6613118923 + 2.66178004348 + 2.66224827683 + 2.66271659239 + 2.66318499015 + 2.66365347014 + 2.66412203237 + 2.66459067686 + 2.66505940362 + 2.66552821266 + 2.66599710399 + 2.66646607764 + 2.66693513362 + 2.66740427194 + 2.66787349262 + 2.66834279566 + 2.66881218109 + 2.66928164892 + 2.66975119917 + 2.67022083184 + 2.67069054696 + 2.67116034453 + 2.67163022457 + 2.6721001871 + 2.67257023214 + 2.67304035968 + 2.67351056976 + 2.67398086238 + 2.67445123756 + 2.67492169531 + 2.67539223565 + 2.6758628586 + 2.67633356416 + 2.67680435235 + 2.67727522318 + 2.67774617668 + 2.67821721285 + 2.67868833171 + 2.67915953327 + 2.67963081756 + 2.68010218457 + 2.68057363433 + 2.68104516686 + 2.68151678216 + 2.68198848025 + 2.68246026115 + 2.68293212486 + 2.68340407142 + 2.68387610082 + 2.68434821308 + 2.68482040822 + 2.68529268626 + 2.6857650472 + 2.68623749106 + 2.68671001786 + 2.68718262762 + 2.68765532033 + 2.68812809603 + 2.68860095472 + 2.68907389642 + 2.68954692115 + 2.69002002891 + 2.69049321972 + 2.69096649361 + 2.69143985057 + 2.69191329063 + 2.69238681381 + 2.6928604201 + 2.69333410954 + 2.69380788214 + 2.6942817379 + 2.69475567685 + 2.695229699 + 2.69570380436 + 2.69617799294 + 2.69665226477 + 2.69712661986 + 2.69760105822 + 2.69807557987 + 2.69855018482 + 2.69902487308 + 2.69949964467 + 2.69997449961 + 2.70044943791 + 2.70092445958 + 2.70139956464 + 2.70187475311 + 2.70235002499 + 2.70282538031 + 2.70330081907 + 2.70377634129 + 2.704251947 + 2.70472763619 + 2.70520340889 + 2.70567926511 + 2.70615520487 + 2.70663122817 + 2.70710733504 + 2.70758352549 + 2.70805979953 + 2.70853615719 + 2.70901259846 + 2.70948912338 + 2.70996573194 + 2.71044242418 + 2.71091920009 + 2.71139605971 + 2.71187300303 + 2.71235003008 + 2.71282714087 + 2.71330433542 + 2.71378161374 + 2.71425897584 + 2.71473642174 + 2.71521395146 + 2.71569156501 + 2.7161692624 + 2.71664704365 + 2.71712490877 + 2.71760285778 + 2.71808089069 + 2.71855900752 + 2.71903720828 + 2.71951549299 + 2.71999386166 + 2.72047231431 + 2.72095085095 + 2.72142947159 + 2.72190817626 + 2.72238696496 + 2.72286583771 + 2.72334479453 + 2.72382383542 + 2.72430296041 + 2.72478216951 + 2.72526146273 + 2.7257408401 + 2.72622030161 + 2.72669984729 + 2.72717947716 + 2.72765919123 + 2.7281389895 + 2.72861887201 + 2.72909883875 + 2.72957888976 + 2.73005902503 + 2.73053924459 + 2.73101954846 + 2.73149993664 + 2.73198040915 + 2.732460966 + 2.73294160722 + 2.73342233281 + 2.7339031428 + 2.73438403718 + 2.73486501599 + 2.73534607923 + 2.73582722692 + 2.73630845908 + 2.73678977571 + 2.73727117684 + 2.73775266248 + 2.73823423264 + 2.73871588734 + 2.73919762659 + 2.73967945041 + 2.74016135882 + 2.74064335182 + 2.74112542943 + 2.74160759167 + 2.74208983856 + 2.7425721701 + 2.74305458631 + 2.74353708721 + 2.74401967282 + 2.74450234313 + 2.74498509818 + 2.74546793798 + 2.74595086254 + 2.74643387187 + 2.746916966 + 2.74740014493 + 2.74788340868 + 2.74836675727 + 2.74885019071 + 2.74933370902 + 2.7498173122 + 2.75030100028 + 2.75078477327 + 2.75126863119 + 2.75175257404 + 2.75223660185 + 2.75272071463 + 2.7532049124 + 2.75368919516 + 2.75417356294 + 2.75465801575 + 2.75514255361 + 2.75562717652 + 2.75611188451 + 2.75659667759 + 2.75708155577 + 2.75756651907 + 2.7580515675 + 2.75853670108 + 2.75902191983 + 2.75950722376 + 2.75999261288 + 2.76047808721 + 2.76096364676 + 2.76144929155 + 2.7619350216 + 2.76242083691 + 2.76290673751 + 2.7633927234 + 2.76387879461 + 2.76436495115 + 2.76485119304 + 2.76533752028 + 2.76582393289 + 2.76631043089 + 2.7667970143 + 2.76728368312 + 2.76777043738 + 2.76825727709 + 2.76874420226 + 2.76923121291 + 2.76971830905 + 2.7702054907 + 2.77069275788 + 2.77118011059 + 2.77166754886 + 2.77215507269 + 2.77264268211 + 2.77313037713 + 2.77361815776 + 2.77410602402 + 2.77459397592 + 2.77508201348 + 2.77557013672 + 2.77605834564 + 2.77654664027 + 2.77703502062 + 2.7775234867 + 2.77801203853 + 2.77850067613 + 2.7789893995 + 2.77947820867 + 2.77996710364 + 2.78045608445 + 2.78094515109 + 2.78143430358 + 2.78192354195 + 2.7824128662 + 2.78290227635 + 2.78339177241 + 2.7838813544 + 2.78437102234 + 2.78486077624 + 2.78535061611 + 2.78584054198 + 2.78633055384 + 2.78682065173 + 2.78731083566 + 2.78780110563 + 2.78829146168 + 2.7887819038 + 2.78927243201 + 2.78976304634 + 2.7902537468 + 2.79074453339 + 2.79123540615 + 2.79172636507 + 2.79221741018 + 2.79270854149 + 2.79319975902 + 2.79369106278 + 2.79418245279 + 2.79467392906 + 2.79516549161 + 2.79565714045 + 2.7961488756 + 2.79664069707 + 2.79713260488 + 2.79762459904 + 2.79811667957 + 2.79860884649 + 2.7991010998 + 2.79959343953 + 2.80008586568 + 2.80057837828 + 2.80107097734 + 2.80156366288 + 2.8020564349 + 2.80254929343 + 2.80304223848 + 2.80353527006 + 2.8040283882 + 2.8045215929 + 2.80501488418 + 2.80550826206 + 2.80600172654 + 2.80649527766 + 2.80698891542 + 2.80748263983 + 2.80797645091 + 2.80847034869 + 2.80896433316 + 2.80945840436 + 2.80995256228 + 2.81044680696 + 2.81094113839 + 2.81143555661 + 2.81193006162 + 2.81242465344 + 2.81291933208 + 2.81341409757 + 2.8139089499 + 2.81440388911 + 2.81489891521 + 2.8153940282 + 2.81588922811 + 2.81638451495 + 2.81687988874 + 2.81737534949 + 2.81787089722 + 2.81836653193 + 2.81886225366 + 2.81935806241 + 2.81985395819 + 2.82034994103 + 2.82084601094 + 2.82134216793 + 2.82183841203 + 2.82233474323 + 2.82283116157 + 2.82332766705 + 2.82382425969 + 2.8243209395 + 2.82481770651 + 2.82531456073 + 2.82581150216 + 2.82630853083 + 2.82680564676 + 2.82730284995 + 2.82780014042 + 2.82829751819 + 2.82879498328 + 2.82929253569 + 2.82979017545 + 2.83028790257 + 2.83078571706 + 2.83128361895 + 2.83178160823 + 2.83227968494 + 2.83277784909 + 2.83327610069 + 2.83377443975 + 2.8342728663 + 2.83477138034 + 2.83526998189 + 2.83576867098 + 2.83626744761 + 2.83676631179 + 2.83726526356 + 2.83776430291 + 2.83826342986 + 2.83876264444 + 2.83926194665 + 2.83976133652 + 2.84026081405 + 2.84076037926 + 2.84126003217 + 2.84175977279 + 2.84225960114 + 2.84275951724 + 2.84325952109 + 2.84375961272 + 2.84425979214 + 2.84476005936 + 2.84526041441 + 2.84576085729 + 2.84626138802 + 2.84676200662 + 2.8472627131 + 2.84776350748 + 2.84826438977 + 2.84876535999 + 2.84926641815 + 2.84976756428 + 2.85026879838 + 2.85077012047 + 2.85127153056 + 2.85177302868 + 2.85227461483 + 2.85277628904 + 2.85327805131 + 2.85377990167 + 2.85428184012 + 2.85478386669 + 2.85528598139 + 2.85578818423 + 2.85629047524 + 2.85679285442 + 2.85729532179 + 2.85779787737 + 2.85830052117 + 2.85880325321 + 2.8593060735 + 2.85980898206 + 2.8603119789 + 2.86081506405 + 2.86131823751 + 2.8618214993 + 2.86232484944 + 2.86282828794 + 2.86333181481 + 2.86383543008 + 2.86433913376 + 2.86484292586 + 2.86534680641 + 2.8658507754 + 2.86635483287 + 2.86685897882 + 2.86736321328 + 2.86786753625 + 2.86837194775 + 2.8688764478 + 2.86938103642 + 2.86988571362 + 2.87039047941 + 2.87089533381 + 2.87140027683 + 2.8719053085 + 2.87241042883 + 2.87291563783 + 2.87342093551 + 2.8739263219 + 2.87443179701 + 2.87493736085 + 2.87544301345 + 2.87594875481 + 2.87645458495 + 2.87696050389 + 2.87746651164 + 2.87797260822 + 2.87847879365 + 2.87898506793 + 2.87949143109 + 2.87999788314 + 2.8805044241 + 2.88101105398 + 2.88151777279 + 2.88202458056 + 2.8825314773 + 2.88303846302 + 2.88354553775 + 2.88405270149 + 2.88455995426 + 2.88506729607 + 2.88557472695 + 2.88608224691 + 2.88658985596 + 2.88709755412 + 2.88760534141 + 2.88811321784 + 2.88862118342 + 2.88912923817 + 2.88963738212 + 2.89014561526 + 2.89065393763 + 2.89116234923 + 2.89167085008 + 2.8921794402 + 2.8926881196 + 2.89319688829 + 2.8937057463 + 2.89421469364 + 2.89472373032 + 2.89523285637 + 2.89574207178 + 2.89625137659 + 2.89676077081 + 2.89727025445 + 2.89777982753 + 2.89828949006 + 2.89879924207 + 2.89930908355 + 2.89981901454 + 2.90032903505 + 2.90083914509 + 2.90134934468 + 2.90185963383 + 2.90237001257 + 2.90288048089 + 2.90339103883 + 2.9039016864 + 2.90441242361 + 2.90492325048 + 2.90543416702 + 2.90594517326 + 2.90645626919 + 2.90696745486 + 2.90747873025 + 2.9079900954 + 2.90850155032 + 2.90901309503 + 2.90952472953 + 2.91003645386 + 2.91054826801 + 2.91106017201 + 2.91157216587 + 2.91208424962 + 2.91259642326 + 2.91310868681 + 2.91362104028 + 2.9141334837 + 2.91464601708 + 2.91515864043 + 2.91567135377 + 2.91618415711 + 2.91669705048 + 2.91721003389 + 2.91772310734 + 2.91823627087 + 2.91874952448 + 2.91926286819 + 2.91977630202 + 2.92028982598 + 2.92080344009 + 2.92131714436 + 2.92183093881 + 2.92234482345 + 2.92285879831 + 2.92337286339 + 2.92388701872 + 2.92440126431 + 2.92491560017 + 2.92543002632 + 2.92594454277 + 2.92645914955 + 2.92697384667 + 2.92748863414 + 2.92800351198 + 2.9285184802 + 2.92903353883 + 2.92954868788 + 2.93006392735 + 2.93057925728 + 2.93109467767 + 2.93161018854 + 2.93212578991 + 2.93264148179 + 2.9331572642 + 2.93367313716 + 2.93418910067 + 2.93470515476 + 2.93522129945 + 2.93573753474 + 2.93625386065 + 2.9367702772 + 2.93728678441 + 2.93780338229 + 2.93832007086 + 2.93883685013 + 2.93935372013 + 2.93987068085 + 2.94038773233 + 2.94090487458 + 2.9414221076 + 2.94193943143 + 2.94245684607 + 2.94297435154 + 2.94349194786 + 2.94400963505 + 2.94452741311 + 2.94504528206 + 2.94556324193 + 2.94608129272 + 2.94659943446 + 2.94711766715 + 2.94763599082 + 2.94815440548 + 2.94867291114 + 2.94919150783 + 2.94971019556 + 2.95022897434 + 2.95074784419 + 2.95126680512 + 2.95178585716 + 2.95230500032 + 2.95282423461 + 2.95334356005 + 2.95386297666 + 2.95438248445 + 2.95490208344 + 2.95542177364 + 2.95594155508 + 2.95646142776 + 2.9569813917 + 2.95750144692 + 2.95802159344 + 2.95854183126 + 2.95906216041 + 2.95958258091 + 2.96010309276 + 2.96062369599 + 2.96114439061 + 2.96166517663 + 2.96218605408 + 2.96270702296 + 2.96322808331 + 2.96374923512 + 2.96427047842 + 2.96479181322 + 2.96531323954 + 2.96583475739 + 2.9663563668 + 2.96687806778 + 2.96739986033 + 2.96792174449 + 2.96844372026 + 2.96896578767 + 2.96948794672 + 2.97001019743 + 2.97053253983 + 2.97105497392 + 2.97157749972 + 2.97210011725 + 2.97262282653 + 2.97314562757 + 2.97366852038 + 2.97419150498 + 2.9747145814 + 2.97523774963 + 2.97576100971 + 2.97628436165 + 2.97680780546 + 2.97733134116 + 2.97785496876 + 2.97837868829 + 2.97890249975 + 2.97942640316 + 2.97995039855 + 2.98047448592 + 2.9809986653 + 2.98152293669 + 2.98204730012 + 2.9825717556 + 2.98309630315 + 2.98362094277 + 2.9841456745 + 2.98467049834 + 2.98519541432 + 2.98572042244 + 2.98624552273 + 2.98677071519 + 2.98729599986 + 2.98782137673 + 2.98834684583 + 2.98887240718 + 2.98939806079 + 2.98992380668 + 2.99044964486 + 2.99097557535 + 2.99150159816 + 2.99202771332 + 2.99255392084 + 2.99308022073 + 2.99360661301 + 2.99413309769 + 2.9946596748 + 2.99518634435 + 2.99571310636 + 2.99623996084 + 2.9967669078 + 2.99729394727 + 2.99782107926 + 2.99834830379 + 2.99887562087 + 2.99940303052 + 2.99993053275 + 3.00045812759 + 3.00098581504 + 3.00151359513 + 3.00204146787 + 3.00256943327 + 3.00309749136 + 3.00362564215 + 3.00415388565 + 3.00468222188 + 3.00521065087 + 3.00573917261 + 3.00626778714 + 3.00679649447 + 3.00732529461 + 3.00785418757 + 3.00838317339 + 3.00891225206 + 3.00944142362 + 3.00997068807 + 3.01050004543 + 3.01102949572 + 3.01155903895 + 3.01208867514 + 3.01261840431 + 3.01314822647 + 3.01367814163 + 3.01420814983 + 3.01473825107 + 3.01526844536 + 3.01579873273 + 3.01632911319 + 3.01685958675 + 3.01739015344 + 3.01792081327 + 3.01845156626 + 3.01898241241 + 3.01951335176 + 3.02004438431 + 3.02057551008 + 3.02110672909 + 3.02163804136 + 3.02216944689 + 3.02270094571 + 3.02323253784 + 3.02376422329 + 3.02429600207 + 3.0248278742 + 3.0253598397 + 3.02589189859 + 3.02642405088 + 3.02695629659 + 3.02748863573 + 3.02802106832 + 3.02855359438 + 3.02908621392 + 3.02961892697 + 3.03015173353 + 3.03068463362 + 3.03121762726 + 3.03175071447 + 3.03228389526 + 3.03281716965 + 3.03335053765 + 3.03388399928 + 3.03441755457 + 3.03495120351 + 3.03548494614 + 3.03601878247 + 3.03655271251 + 3.03708673627 + 3.03762085379 + 3.03815506507 + 3.03868937013 + 3.03922376898 + 3.03975826164 + 3.04029284814 + 3.04082752848 + 3.04136230268 + 3.04189717076 + 3.04243213274 + 3.04296718862 + 3.04350233844 + 3.0440375822 + 3.04457291991 + 3.04510835161 + 3.0456438773 + 3.046179497 + 3.04671521073 + 3.0472510185 + 3.04778692033 + 3.04832291623 + 3.04885900623 + 3.04939519034 + 3.04993146857 + 3.05046784095 + 3.05100430748 + 3.0515408682 + 3.0520775231 + 3.05261427221 + 3.05315111554 + 3.05368805312 + 3.05422508496 + 3.05476221107 + 3.05529943147 + 3.05583674618 + 3.05637415521 + 3.05691165858 + 3.05744925631 + 3.05798694842 + 3.05852473491 + 3.05906261582 + 3.05960059114 + 3.06013866091 + 3.06067682513 + 3.06121508383 + 3.06175343702 + 3.06229188471 + 3.06283042693 + 3.06336906368 + 3.063907795 + 3.06444662088 + 3.06498554136 + 3.06552455644 + 3.06606366614 + 3.06660287048 + 3.06714216948 + 3.06768156316 + 3.06822105152 + 3.06876063458 + 3.06930031237 + 3.0698400849 + 3.07037995219 + 3.07091991424 + 3.07145997109 + 3.07200012274 + 3.07254036921 + 3.07308071053 + 3.07362114669 + 3.07416167773 + 3.07470230366 + 3.0752430245 + 3.07578384026 + 3.07632475095 + 3.0768657566 + 3.07740685723 + 3.07794805284 + 3.07848934346 + 3.0790307291 + 3.07957220978 + 3.08011378551 + 3.08065545632 + 3.08119722221 + 3.08173908321 + 3.08228103934 + 3.0828230906 + 3.08336523702 + 3.08390747861 + 3.08444981539 + 3.08499224738 + 3.08553477459 + 3.08607739704 + 3.08662011474 + 3.08716292772 + 3.08770583598 + 3.08824883956 + 3.08879193845 + 3.08933513269 + 3.08987842228 + 3.09042180724 + 3.0909652876 + 3.09150886336 + 3.09205253454 + 3.09259630117 + 3.09314016325 + 3.0936841208 + 3.09422817385 + 3.0947723224 + 3.09531656648 + 3.0958609061 + 3.09640534127 + 3.09694987202 + 3.09749449836 + 3.09803922031 + 3.09858403788 + 3.0991289511 + 3.09967395997 + 3.10021906452 + 3.10076426475 + 3.1013095607 + 3.10185495237 + 3.10240043979 + 3.10294602296 + 3.10349170191 + 3.10403747666 + 3.10458334721 + 3.10512931358 + 3.10567537581 + 3.10622153389 + 3.10676778784 + 3.1073141377 + 3.10786058346 + 3.10840712514 + 3.10895376278 + 3.10950049637 + 3.11004732594 + 3.11059425151 + 3.11114127309 + 3.11168839069 + 3.11223560434 + 3.11278291405 + 3.11333031985 + 3.11387782173 + 3.11442541973 + 3.11497311386 + 3.11552090414 + 3.11606879058 + 3.11661677319 + 3.11716485201 + 3.11771302704 + 3.1182612983 + 3.11880966581 + 3.11935812958 + 3.11990668964 + 3.12045534599 + 3.12100409866 + 3.12155294766 + 3.12210189301 + 3.12265093472 + 3.12320007282 + 3.12374930732 + 3.12429863823 + 3.12484806558 + 3.12539758938 + 3.12594720965 + 3.1264969264 + 3.12704673965 + 3.12759664942 + 3.12814665573 + 3.12869675858 + 3.12924695801 + 3.12979725402 + 3.13034764664 + 3.13089813588 + 3.13144872175 + 3.13199940428 + 3.13255018348 + 3.13310105936 + 3.13365203196 + 3.13420310127 + 3.13475426732 + 3.13530553013 + 3.13585688971 + 3.13640834608 + 3.13695989926 + 3.13751154926 + 3.1380632961 + 3.1386151398 + 3.13916708038 + 3.13971911784 + 3.14027125222 + 3.14082348352 + 3.14137581176 + 3.14192823697 + 3.14248075915 + 3.14303337832 + 3.14358609451 + 3.14413890772 + 3.14469181798 + 3.1452448253 + 3.1457979297 + 3.14635113119 + 3.1469044298 + 3.14745782554 + 3.14801131843 + 3.14856490848 + 3.14911859571 + 3.14967238014 + 3.15022626179 + 3.15078024067 + 3.15133431679 + 3.15188849019 + 3.15244276087 + 3.15299712885 + 3.15355159414 + 3.15410615677 + 3.15466081676 + 3.15521557411 + 3.15577042885 + 3.156325381 + 3.15688043056 + 3.15743557756 + 3.15799082202 + 3.15854616394 + 3.15910160336 + 3.15965714028 + 3.16021277473 + 3.16076850671 + 3.16132433626 + 3.16188026337 + 3.16243628808 + 3.1629924104 + 3.16354863035 + 3.16410494793 + 3.16466136318 + 3.16521787611 + 3.16577448672 + 3.16633119505 + 3.16688800111 + 3.16744490492 + 3.16800190649 + 3.16855900584 + 3.16911620298 + 3.16967349794 + 3.17023089074 + 3.17078838138 + 3.17134596988 + 3.17190365627 + 3.17246144057 + 3.17301932277 + 3.17357730292 + 3.17413538101 + 3.17469355708 + 3.17525183113 + 3.17581020319 + 3.17636867326 + 3.17692724137 + 3.17748590754 + 3.17804467179 + 3.17860353412 + 3.17916249455 + 3.17972155312 + 3.18028070982 + 3.18083996468 + 3.18139931772 + 3.18195876895 + 3.18251831839 + 3.18307796606 + 3.18363771198 + 3.18419755615 + 3.18475749861 + 3.18531753936 + 3.18587767842 + 3.18643791582 + 3.18699825156 + 3.18755868567 + 3.18811921816 + 3.18867984906 + 3.18924057837 + 3.18980140611 + 3.19036233231 + 3.19092335698 + 3.19148448013 + 3.19204570178 + 3.19260702196 + 3.19316844068 + 3.19372995795 + 3.19429157379 + 3.19485328823 + 3.19541510127 + 3.19597701294 + 3.19653902325 + 3.19710113221 + 3.19766333986 + 3.1982256462 + 3.19878805125 + 3.19935055503 + 3.19991315756 + 3.20047585885 + 3.20103865892 + 3.20160155779 + 3.20216455547 + 3.20272765199 + 3.20329084735 + 3.20385414159 + 3.20441753471 + 3.20498102673 + 3.20554461767 + 3.20610830755 + 3.20667209638 + 3.20723598419 + 3.20779997098 + 3.20836405678 + 3.2089282416 + 3.20949252547 + 3.21005690839 + 3.21062139039 + 3.21118597149 + 3.21175065169 + 3.21231543102 + 3.2128803095 + 3.21344528714 + 3.21401036396 + 3.21457553998 + 3.21514081522 + 3.21570618969 + 3.2162716634 + 3.21683723639 + 3.21740290866 + 3.21796868023 + 3.21853455112 + 3.21910052135 + 3.21966659093 + 3.22023275989 + 3.22079902823 + 3.22136539599 + 3.22193186316 + 3.22249842978 + 3.22306509586 + 3.22363186142 + 3.22419872647 + 3.22476569103 + 3.22533275512 + 3.22589991875 + 3.22646718195 + 3.22703454474 + 3.22760200712 + 3.22816956912 + 3.22873723075 + 3.22930499203 + 3.22987285299 + 3.23044081363 + 3.23100887397 + 3.23157703404 + 3.23214529384 + 3.2327136534 + 3.23328211274 + 3.23385067187 + 3.2344193308 + 3.23498808956 + 3.23555694817 + 3.23612590664 + 3.23669496499 + 3.23726412323 + 3.23783338139 + 3.23840273948 + 3.23897219752 + 3.23954175553 + 3.24011141352 + 3.24068117152 + 3.24125102953 + 3.24182098758 + 3.24239104568 + 3.24296120386 + 3.24353146213 + 3.2441018205 + 3.244672279 + 3.24524283765 + 3.24581349645 + 3.24638425543 + 3.24695511461 + 3.24752607399 + 3.24809713361 + 3.24866829348 + 3.24923955361 + 3.24981091403 + 3.25038237475 + 3.25095393578 + 3.25152559715 + 3.25209735888 + 3.25266922098 + 3.25324118346 + 3.25381324635 + 3.25438540967 + 3.25495767343 + 3.25553003765 + 3.25610250234 + 3.25667506753 + 3.25724773323 + 3.25782049946 + 3.25839336624 + 3.25896633359 + 3.25953940152 + 3.26011257005 + 3.26068583919 + 3.26125920898 + 3.26183267941 + 3.26240625052 + 3.26297992232 + 3.26355369482 + 3.26412756805 + 3.26470154202 + 3.26527561675 + 3.26584979226 + 3.26642406856 + 3.26699844568 + 3.26757292362 + 3.26814750242 + 3.26872218208 + 3.26929696262 + 3.26987184406 + 3.27044682643 + 3.27102190973 + 3.27159709398 + 3.27217237921 + 3.27274776543 + 3.27332325265 + 3.2738988409 + 3.27447453019 + 3.27505032055 + 3.27562621198 + 3.27620220451 + 3.27677829815 + 3.27735449292 + 3.27793078885 + 3.27850718594 + 3.27908368422 + 3.27966028369 + 3.28023698439 + 3.28081378633 + 3.28139068953 + 3.281967694 + 3.28254479976 + 3.28312200682 + 3.28369931522 + 3.28427672496 + 3.28485423607 + 3.28543184855 + 3.28600956244 + 3.28658737774 + 3.28716529447 + 3.28774331266 + 3.28832143231 + 3.28889965346 + 3.2894779761 + 3.29005640028 + 3.29063492599 + 3.29121355326 + 3.29179228211 + 3.29237111255 + 3.2929500446 + 3.29352907829 + 3.29410821362 + 3.29468745062 + 3.2952667893 + 3.29584622968 + 3.29642577178 + 3.29700541562 + 3.29758516122 + 3.29816500859 + 3.29874495775 + 3.29932500871 + 3.29990516151 + 3.30048541614 + 3.30106577264 + 3.30164623102 + 3.3022267913 + 3.3028074535 + 3.30338821763 + 3.30396908371 + 3.30455005175 + 3.30513112179 + 3.30571229383 + 3.3062935679 + 3.30687494401 + 3.30745642217 + 3.30803800242 + 3.30861968475 + 3.3092014692 + 3.30978335579 + 3.31036534452 + 3.31094743541 + 3.3115296285 + 3.31211192378 + 3.31269432128 + 3.31327682103 + 3.31385942303 + 3.3144421273 + 3.31502493387 + 3.31560784274 + 3.31619085395 + 3.3167739675 + 3.31735718341 + 3.31794050171 + 3.31852392241 + 3.31910744552 + 3.31969107107 + 3.32027479908 + 3.32085862956 + 3.32144256252 + 3.322026598 + 3.322610736 + 3.32319497655 + 3.32377931965 + 3.32436376534 + 3.32494831363 + 3.32553296453 + 3.32611771806 + 3.32670257425 + 3.32728753311 + 3.32787259465 + 3.3284577589 + 3.32904302588 + 3.3296283956 + 3.33021386808 + 3.33079944333 + 3.33138512138 + 3.33197090225 + 3.33255678595 + 3.3331427725 + 3.33372886192 + 3.33431505422 + 3.33490134943 + 3.33548774756 + 3.33607424864 + 3.33666085267 + 3.33724755968 + 3.33783436968 + 3.3384212827 + 3.33900829874 + 3.33959541784 + 3.34018264 + 3.34076996525 + 3.34135739361 + 3.34194492508 + 3.34253255969 + 3.34312029747 + 3.34370813841 + 3.34429608256 + 3.34488412991 + 3.34547228049 + 3.34606053433 + 3.34664889143 + 3.34723735181 + 3.3478259155 + 3.3484145825 + 3.34900335285 + 3.34959222655 + 3.35018120363 + 3.35077028411 + 3.35135946799 + 3.3519487553 + 3.35253814607 + 3.35312764029 + 3.35371723801 + 3.35430693922 + 3.35489674396 + 3.35548665223 + 3.35607666406 + 3.35666677947 + 3.35725699846 + 3.35784732108 + 3.35843774732 + 3.3590282772 + 3.35961891076 + 3.360209648 + 3.36080048894 + 3.3613914336 + 3.361982482 + 3.36257363416 + 3.36316489009 + 3.36375624982 + 3.36434771336 + 3.36493928072 + 3.36553095194 + 3.36612272702 + 3.36671460599 + 3.36730658886 + 3.36789867565 + 3.36849086638 + 3.36908316107 + 3.36967555973 + 3.37026806239 + 3.37086066906 + 3.37145337976 + 3.37204619451 + 3.37263911333 + 3.37323213624 + 3.37382526324 + 3.37441849437 + 3.37501182964 + 3.37560526907 + 3.37619881267 + 3.37679246047 + 3.37738621248 + 3.37798006873 + 3.37857402922 + 3.37916809398 + 3.37976226303 + 3.38035653639 + 3.38095091406 + 3.38154539608 + 3.38213998246 + 3.38273467322 + 3.38332946837 + 3.38392436794 + 3.38451937194 + 3.38511448039 + 3.38570969332 + 3.38630501073 + 3.38690043264 + 3.38749595909 + 3.38809159007 + 3.38868732562 + 3.38928316574 + 3.38987911047 + 3.39047515981 + 3.39107131379 + 3.39166757242 + 3.39226393572 + 3.39286040371 + 3.39345697641 + 3.39405365384 + 3.39465043601 + 3.39524732295 + 3.39584431466 + 3.39644141118 + 3.39703861252 + 3.39763591869 + 3.39823332972 + 3.39883084563 + 3.39942846642 + 3.40002619213 + 3.40062402277 + 3.40122195835 + 3.4018199989 + 3.40241814444 + 3.40301639498 + 3.40361475053 + 3.40421321113 + 3.40481177679 + 3.40541044752 + 3.40600922335 + 3.4066081043 + 3.40720709037 + 3.4078061816 + 3.40840537799 + 3.40900467957 + 3.40960408636 + 3.41020359837 + 3.41080321563 + 3.41140293814 + 3.41200276594 + 3.41260269904 + 3.41320273745 + 3.41380288119 + 3.41440313029 + 3.41500348477 + 3.41560394463 + 3.4162045099 + 3.4168051806 + 3.41740595675 + 3.41800683836 + 3.41860782545 + 3.41920891805 + 3.41981011617 + 3.42041141982 + 3.42101282903 + 3.42161434382 + 3.42221596421 + 3.4228176902 + 3.42341952183 + 3.42402145911 + 3.42462350205 + 3.42522565069 + 3.42582790502 + 3.42643026509 + 3.42703273089 + 3.42763530246 + 3.42823797981 + 3.42884076295 + 3.42944365192 + 3.43004664672 + 3.43064974737 + 3.4312529539 + 3.43185626631 + 3.43245968464 + 3.4330632089 + 3.4336668391 + 3.43427057527 + 3.43487441742 + 3.43547836558 + 3.43608241975 + 3.43668657997 + 3.43729084625 + 3.4378952186 + 3.43849969705 + 3.43910428162 + 3.43970897232 + 3.44031376917 + 3.44091867219 + 3.4415236814 + 3.44212879681 + 3.44273401846 + 3.44333934635 + 3.4439447805 + 3.44455032094 + 3.44515596767 + 3.44576172073 + 3.44636758013 + 3.44697354588 + 3.44757961801 + 3.44818579653 + 3.44879208147 + 3.44939847283 + 3.45000497065 + 3.45061157494 + 3.45121828571 + 3.45182510299 + 3.4524320268 + 3.45303905715 + 3.45364619407 + 3.45425343756 + 3.45486078766 + 3.45546824437 + 3.45607580772 + 3.45668347773 + 3.45729125441 + 3.45789913779 + 3.45850712788 + 3.4591152247 + 3.45972342827 + 3.4603317386 + 3.46094015573 + 3.46154867966 + 3.46215731042 + 3.46276604802 + 3.46337489248 + 3.46398384382 + 3.46459290207 + 3.46520206723 + 3.46581133933 + 3.46642071839 + 3.46703020442 + 3.46763979744 + 3.46824949748 + 3.46885930455 + 3.46946921867 + 3.47007923985 + 3.47068936813 + 3.47129960351 + 3.47190994602 + 3.47252039567 + 3.47313095248 + 3.47374161648 + 3.47435238768 + 3.47496326609 + 3.47557425175 + 3.47618534466 + 3.47679654484 + 3.47740785233 + 3.47801926712 + 3.47863078925 + 3.47924241873 + 3.47985415558 + 3.48046599981 + 3.48107795146 + 3.48169001053 + 3.48230217705 + 3.48291445103 + 3.48352683249 + 3.48413932146 + 3.48475191795 + 3.48536462198 + 3.48597743356 + 3.48659035273 + 3.48720337949 + 3.48781651386 + 3.48842975587 + 3.48904310554 + 3.48965656287 + 3.4902701279 + 3.49088380063 + 3.4914975811 + 3.49211146931 + 3.49272546529 + 3.49333956905 + 3.49395378062 + 3.49456810001 + 3.49518252725 + 3.49579706234 + 3.49641170532 + 3.49702645619 + 3.49764131498 + 3.49825628171 + 3.4988713564 + 3.49948653906 + 3.50010182971 + 3.50071722838 + 3.50133273508 + 3.50194834982 + 3.50256407264 + 3.50317990355 + 3.50379584257 + 3.50441188971 + 3.50502804499 + 3.50564430844 + 3.50626068008 + 3.50687715992 + 3.50749374798 + 3.50811044428 + 3.50872724883 + 3.50934416167 + 3.50996118281 + 3.51057831226 + 3.51119555005 + 3.51181289619 + 3.5124303507 + 3.51304791361 + 3.51366558493 + 3.51428336468 + 3.51490125288 + 3.51551924955 + 3.5161373547 + 3.51675556837 + 3.51737389056 + 3.51799232129 + 3.51861086059 + 3.51922950847 + 3.51984826495 + 3.52046713006 + 3.5210861038 + 3.52170518621 + 3.52232437729 + 3.52294367707 + 3.52356308556 + 3.5241826028 + 3.52480222878 + 3.52542196354 + 3.5260418071 + 3.52666175946 + 3.52728182066 + 3.5279019907 + 3.52852226962 + 3.52914265742 + 3.52976315414 + 3.53038375977 + 3.53100447436 + 3.53162529791 + 3.53224623044 + 3.53286727198 + 3.53348842254 + 3.53410968214 + 3.5347310508 + 3.53535252854 + 3.53597411538 + 3.53659581133 + 3.53721761643 + 3.53783953068 + 3.53846155411 + 3.53908368673 + 3.53970592856 + 3.54032827963 + 3.54095073995 + 3.54157330954 + 3.54219598842 + 3.54281877661 + 3.54344167413 + 3.544064681 + 3.54468779724 + 3.54531102286 + 3.54593435789 + 3.54655780234 + 3.54718135624 + 3.5478050196 + 3.54842879244 + 3.54905267479 + 3.54967666666 + 3.55030076806 + 3.55092497903 + 3.55154929957 + 3.55217372971 + 3.55279826947 + 3.55342291887 + 3.55404767792 + 3.55467254665 + 3.55529752507 + 3.5559226132 + 3.55654781107 + 3.55717311869 + 3.55779853608 + 3.55842406326 + 3.55904970025 + 3.55967544707 + 3.56030130373 + 3.56092727027 + 3.56155334669 + 3.56217953302 + 3.56280582927 + 3.56343223547 + 3.56405875163 + 3.56468537778 + 3.56531211393 + 3.5659389601 + 3.56656591631 + 3.56719298258 + 3.56782015893 + 3.56844744538 + 3.56907484195 + 3.56970234866 + 3.57032996553 + 3.57095769257 + 3.5715855298 + 3.57221347726 + 3.57284153495 + 3.57346970289 + 3.5740979811 + 3.57472636961 + 3.57535486843 + 3.57598347758 + 3.57661219708 + 3.57724102695 + 3.57786996721 + 3.57849901788 + 3.57912817898 + 3.57975745053 + 3.58038683254 + 3.58101632504 + 3.58164592805 + 3.58227564158 + 3.58290546565 + 3.58353540029 + 3.58416544552 + 3.58479560134 + 3.58542586779 + 3.58605624488 + 3.58668673263 + 3.58731733106 + 3.58794804019 + 3.58857886004 + 3.58920979063 + 3.58984083198 + 3.59047198411 + 3.59110324703 + 3.59173462077 + 3.59236610535 + 3.59299770078 + 3.59362940708 + 3.59426122428 + 3.5948931524 + 3.59552519145 + 3.59615734145 + 3.59678960242 + 3.59742197439 + 3.59805445736 + 3.59868705137 + 3.59931975643 + 3.59995257256 + 3.60058549977 + 3.6012185381 + 3.60185168755 + 3.60248494815 + 3.60311831992 + 3.60375180288 + 3.60438539704 + 3.60501910243 + 3.60565291906 + 3.60628684696 + 3.60692088614 + 3.60755503663 + 3.60818929844 + 3.6088236716 + 3.60945815611 + 3.61009275201 + 3.61072745931 + 3.61136227803 + 3.61199720819 + 3.61263224982 + 3.61326740292 + 3.61390266752 + 3.61453804364 + 3.6151735313 + 3.61580913052 + 3.61644484132 + 3.61708066371 + 3.61771659772 + 3.61835264337 + 3.61898880067 + 3.61962506965 + 3.62026145033 + 3.62089794272 + 3.62153454684 + 3.62217126272 + 3.62280809037 + 3.62344502982 + 3.62408208108 + 3.62471924417 + 3.62535651912 + 3.62599390593 + 3.62663140464 + 3.62726901526 + 3.62790673781 + 3.62854457231 + 3.62918251878 + 3.62982057725 + 3.63045874772 + 3.63109703022 + 3.63173542477 + 3.63237393138 + 3.63301255009 + 3.6336512809 + 3.63429012385 + 3.63492907893 + 3.63556814619 + 3.63620732563 + 3.63684661728 + 3.63748602116 + 3.63812553728 + 3.63876516566 + 3.63940490633 + 3.64004475931 + 3.64068472461 + 3.64132480226 + 3.64196499227 + 3.64260529466 + 3.64324570945 + 3.64388623667 + 3.64452687634 + 3.64516762846 + 3.64580849307 + 3.64644947018 + 3.64709055981 + 3.64773176199 + 3.64837307672 + 3.64901450404 + 3.64965604395 + 3.65029769649 + 3.65093946167 + 3.65158133951 + 3.65222333003 + 3.65286543325 + 3.65350764918 + 3.65414997786 + 3.6547924193 + 3.65543497351 + 3.65607764053 + 3.65672042036 + 3.65736331303 + 3.65800631856 + 3.65864943697 + 3.65929266828 + 3.6599360125 + 3.66057946966 + 3.66122303978 + 3.66186672288 + 3.66251051897 + 3.66315442808 + 3.66379845022 + 3.66444258543 + 3.6650868337 + 3.66573119508 + 3.66637566957 + 3.6670202572 + 3.66766495798 + 3.66830977194 + 3.66895469909 + 3.66959973946 + 3.67024489306 + 3.67089015992 + 3.67153554006 + 3.67218103349 + 3.67282664023 + 3.67347236031 + 3.67411819374 + 3.67476414055 + 3.67541020075 + 3.67605637437 + 3.67670266142 + 3.67734906192 + 3.6779955759 + 3.67864220338 + 3.67928894436 + 3.67993579888 + 3.68058276696 + 3.6812298486 + 3.68187704384 + 3.6825243527 + 3.68317177519 + 3.68381931133 + 3.68446696114 + 3.68511472465 + 3.68576260187 + 3.68641059283 + 3.68705869754 + 3.68770691602 + 3.68835524829 + 3.68900369438 + 3.6896522543 + 3.69030092807 + 3.69094971572 + 3.69159861726 + 3.69224763271 + 3.6928967621 + 3.69354600543 + 3.69419536275 + 3.69484483405 + 3.69549441937 + 3.69614411872 + 3.69679393212 + 3.6974438596 + 3.69809390117 + 3.69874405686 + 3.69939432667 + 3.70004471064 + 3.70069520879 + 3.70134582112 + 3.70199654767 + 3.70264738846 + 3.70329834349 + 3.7039494128 + 3.70460059641 + 3.70525189433 + 3.70590330658 + 3.70655483318 + 3.70720647416 + 3.70785822954 + 3.70851009932 + 3.70916208354 + 3.70981418222 + 3.71046639537 + 3.71111872301 + 3.71177116517 + 3.71242372187 + 3.71307639312 + 3.71372917894 + 3.71438207936 + 3.71503509439 + 3.71568822406 + 3.71634146838 + 3.71699482738 + 3.71764830107 + 3.71830188948 + 3.71895559263 + 3.71960941053 + 3.72026334321 + 3.72091739068 + 3.72157155297 + 3.7222258301 + 3.72288022209 + 3.72353472895 + 3.7241893507 + 3.72484408738 + 3.72549893899 + 3.72615390556 + 3.72680898711 + 3.72746418366 + 3.72811949522 + 3.72877492182 + 3.72943046348 + 3.73008612022 + 3.73074189206 + 3.73139777902 + 3.73205378111 + 3.73270989837 + 3.73336613081 + 3.73402247844 + 3.7346789413 + 3.7353355194 + 3.73599221275 + 3.73664902139 + 3.73730594533 + 3.73796298459 + 3.73862013919 + 3.73927740916 + 3.7399347945 + 3.74059229525 + 3.74124991142 + 3.74190764304 + 3.74256549012 + 3.74322345268 + 3.74388153074 + 3.74453972433 + 3.74519803346 + 3.74585645816 + 3.74651499844 + 3.74717365433 + 3.74783242584 + 3.748491313 + 3.74915031582 + 3.74980943434 + 3.75046866855 + 3.7511280185 + 3.75178748419 + 3.75244706565 + 3.75310676289 + 3.75376657595 + 3.75442650483 + 3.75508654957 + 3.75574671017 + 3.75640698666 + 3.75706737906 + 3.75772788739 + 3.75838851167 + 3.75904925193 + 3.75971010817 + 3.76037108043 + 3.76103216871 + 3.76169337305 + 3.76235469347 + 3.76301612997 + 3.76367768259 + 3.76433935135 + 3.76500113626 + 3.76566303734 + 3.76632505462 + 3.76698718811 + 3.76764943784 + 3.76831180383 + 3.76897428609 + 3.76963688465 + 3.77029959952 + 3.77096243074 + 3.77162537831 + 3.77228844226 + 3.77295162262 + 3.77361491939 + 3.7742783326 + 3.77494186227 + 3.77560550842 + 3.77626927108 + 3.77693315025 + 3.77759714597 + 3.77826125825 + 3.77892548712 + 3.77958983258 + 3.78025429468 + 3.78091887341 + 3.78158356882 + 3.7822483809 + 3.7829133097 + 3.78357835522 + 3.78424351748 + 3.78490879652 + 3.78557419234 + 3.78623970498 + 3.78690533444 + 3.78757108075 + 3.78823694393 + 3.788902924 + 3.78956902098 + 3.79023523489 + 3.79090156576 + 3.7915680136 + 3.79223457843 + 3.79290126028 + 3.79356805916 + 3.79423497509 + 3.7949020081 + 3.79556915821 + 3.79623642543 + 3.7969038098 + 3.79757131131 + 3.79823893001 + 3.7989066659 + 3.79957451902 + 3.80024248937 + 3.80091057699 + 3.80157878188 + 3.80224710408 + 3.8029155436 + 3.80358410047 + 3.80425277469 + 3.8049215663 + 3.80559047532 + 3.80625950176 + 3.80692864565 + 3.807597907 + 3.80826728584 + 3.80893678219 + 3.80960639606 + 3.81027612749 + 3.81094597648 + 3.81161594307 + 3.81228602727 + 3.81295622909 + 3.81362654858 + 3.81429698573 + 3.81496754058 + 3.81563821314 + 3.81630900343 + 3.81697991148 + 3.81765093731 + 3.81832208094 + 3.81899334238 + 3.81966472166 + 3.8203362188 + 3.82100783382 + 3.82167956674 + 3.82235141758 + 3.82302338636 + 3.82369547311 + 3.82436767784 + 3.82504000057 + 3.82571244132 + 3.82638500013 + 3.82705767699 + 3.82773047195 + 3.82840338501 + 3.8290764162 + 3.82974956554 + 3.83042283305 + 3.83109621875 + 3.83176972266 + 3.8324433448 + 3.8331170852 + 3.83379094387 + 3.83446492083 + 3.83513901611 + 3.83581322972 + 3.83648756169 + 3.83716201204 + 3.83783658078 + 3.83851126795 + 3.83918607355 + 3.83986099762 + 3.84053604016 + 3.84121120121 + 3.84188648078 + 3.8425618789 + 3.84323739557 + 3.84391303084 + 3.84458878471 + 3.84526465721 + 3.84594064835 + 3.84661675816 + 3.84729298667 + 3.84796933388 + 3.84864579982 + 3.84932238452 + 3.84999908799 + 3.85067591025 + 3.85135285133 + 3.85202991124 + 3.85270709001 + 3.85338438766 + 3.8540618042 + 3.85473933966 + 3.85541699406 + 3.85609476743 + 3.85677265977 + 3.85745067112 + 3.85812880148 + 3.8588070509 + 3.85948541938 + 3.86016390694 + 3.86084251361 + 3.86152123941 + 3.86220008436 + 3.86287904848 + 3.86355813178 + 3.8642373343 + 3.86491665605 + 3.86559609706 + 3.86627565734 + 3.86695533691 + 3.8676351358 + 3.86831505403 + 3.86899509161 + 3.86967524858 + 3.87035552494 + 3.87103592072 + 3.87171643595 + 3.87239707064 + 3.87307782481 + 3.87375869849 + 3.87443969169 + 3.87512080444 + 3.87580203676 + 3.87648338867 + 3.87716486018 + 3.87784645133 + 3.87852816213 + 3.8792099926 + 3.87989194276 + 3.88057401264 + 3.88125620226 + 3.88193851163 + 3.88262094078 + 3.88330348972 + 3.88398615849 + 3.8846689471 + 3.88535185557 + 3.88603488392 + 3.88671803218 + 3.88740130036 + 3.88808468849 + 3.88876819659 + 3.88945182467 + 3.89013557276 + 3.89081944088 + 3.89150342906 + 3.89218753731 + 3.89287176565 + 3.8935561141 + 3.89424058269 + 3.89492517144 + 3.89560988036 + 3.89629470949 + 3.89697965883 + 3.89766472842 + 3.89834991826 + 3.89903522839 + 3.89972065883 + 3.90040620959 + 3.9010918807 + 3.90177767217 + 3.90246358404 + 3.90314961631 + 3.90383576902 + 3.90452204218 + 3.90520843581 + 3.90589494993 + 3.90658158458 + 3.90726833976 + 3.90795521549 + 3.90864221181 + 3.90932932873 + 3.91001656627 + 3.91070392445 + 3.9113914033 + 3.91207900283 + 3.91276672306 + 3.91345456403 + 3.91414252574 + 3.91483060823 + 3.9155188115 + 3.91620713559 + 3.91689558051 + 3.91758414629 + 3.91827283294 + 3.91896164049 + 3.91965056896 + 3.92033961836 + 3.92102878873 + 3.92171808008 + 3.92240749243 + 3.92309702581 + 3.92378668024 + 3.92447645573 + 3.92516635231 + 3.92585637 + 3.92654650882 + 3.92723676879 + 3.92792714994 + 3.92861765228 + 3.92930827583 + 3.92999902063 + 3.93068988668 + 3.93138087401 + 3.93207198264 + 3.9327632126 + 3.9334545639 + 3.93414603656 + 3.93483763061 + 3.93552934607 + 3.93622118296 + 3.9369131413 + 3.9376052211 + 3.93829742241 + 3.93898974522 + 3.93968218957 + 3.94037475548 + 3.94106744297 + 3.94176025206 + 3.94245318276 + 3.94314623511 + 3.94383940913 + 3.94453270482 + 3.94522612223 + 3.94591966136 + 3.94661332224 + 3.94730710489 + 3.94800100934 + 3.94869503559 + 3.94938918369 + 3.95008345363 + 3.95077784546 + 3.95147235918 + 3.95216699482 + 3.95286175241 + 3.95355663196 + 3.95425163349 + 3.95494675703 + 3.95564200259 + 3.95633737021 + 3.95703285989 + 3.95772847167 + 3.95842420556 + 3.95912006158 + 3.95981603976 + 3.96051214011 + 3.96120836267 + 3.96190470744 + 3.96260117446 + 3.96329776374 + 3.9639944753 + 3.96469130917 + 3.96538826537 + 3.96608534392 + 3.96678254483 + 3.96747986814 + 3.96817731386 + 3.96887488202 + 3.96957257263 + 3.97027038573 + 3.97096832132 + 3.97166637943 + 3.97236456008 + 3.9730628633 + 3.9737612891 + 3.97445983751 + 3.97515850855 + 3.97585730224 + 3.9765562186 + 3.97725525765 + 3.97795441942 + 3.97865370392 + 3.97935311118 + 3.98005264122 + 3.98075229407 + 3.98145206973 + 3.98215196824 + 3.98285198961 + 3.98355213387 + 3.98425240104 + 3.98495279114 + 3.98565330419 + 3.98635394021 + 3.98705469923 + 3.98775558126 + 3.98845658634 + 3.98915771447 + 3.98985896568 + 3.99056034 + 3.99126183744 + 3.99196345803 + 3.99266520179 + 3.99336706873 + 3.99406905889 + 3.99477117228 + 3.99547340892 + 3.99617576884 + 3.99687825205 + 3.99758085859 + 3.99828358847 + 3.9989864417 + 3.99968941833 + 4.00039251836 + 4.00109574181 + 4.00179908872 + 4.00250255909 + 4.00320615296 + 4.00390987034 + 4.00461371126 + 4.00531767574 + 4.00602176379 + 4.00672597545 + 4.00743031073 + 4.00813476965 + 4.00883935224 + 4.00954405852 + 4.01024888851 + 4.01095384222 + 4.01165891969 + 4.01236412094 + 4.01306944598 + 4.01377489484 + 4.01448046754 + 4.0151861641 + 4.01589198454 + 4.01659792889 + 4.01730399717 + 4.01801018939 + 4.01871650559 + 4.01942294577 + 4.02012950997 + 4.02083619821 + 4.0215430105 + 4.02224994688 + 4.02295700735 + 4.02366419195 + 4.02437150069 + 4.02507893359 + 4.02578649069 + 4.02649417199 + 4.02720197753 + 4.02790990732 + 4.02861796139 + 4.02932613975 + 4.03003444243 + 4.03074286945 + 4.03145142084 + 4.03216009661 + 4.03286889678 + 4.03357782139 + 4.03428687044 + 4.03499604397 + 4.03570534199 + 4.03641476452 + 4.03712431159 + 4.03783398322 + 4.03854377944 + 4.03925370025 + 4.03996374569 + 4.04067391578 + 4.04138421054 + 4.04209462998 + 4.04280517414 + 4.04351584303 + 4.04422663668 + 4.04493755511 + 4.04564859834 + 4.04635976638 + 4.04707105928 + 4.04778247704 + 4.04849401968 + 4.04920568724 + 4.04991747972 + 4.05062939716 + 4.05134143958 + 4.05205360699 + 4.05276589942 + 4.0534783169 + 4.05419085943 + 4.05490352706 + 4.05561631978 + 4.05632923764 + 4.05704228065 + 4.05775544883 + 4.05846874221 + 4.0591821608 + 4.05989570463 + 4.06060937373 + 4.0613231681 + 4.06203708778 + 4.06275113279 + 4.06346530315 + 4.06417959887 + 4.06489401999 + 4.06560856653 + 4.0663232385 + 4.06703803593 + 4.06775295884 + 4.06846800726 + 4.0691831812 + 4.06989848068 + 4.07061390574 + 4.07132945639 + 4.07204513264 + 4.07276093454 + 4.07347686209 + 4.07419291532 + 4.07490909426 + 4.07562539891 + 4.07634182931 + 4.07705838548 + 4.07777506744 + 4.07849187521 + 4.07920880882 + 4.07992586828 + 4.08064305362 + 4.08136036486 + 4.08207780202 + 4.08279536512 + 4.08351305419 + 4.08423086925 + 4.08494881032 + 4.08566687743 + 4.08638507059 + 4.08710338982 + 4.08782183516 + 4.08854040661 + 4.08925910421 + 4.08997792798 + 4.09069687793 + 4.09141595409 + 4.09213515649 + 4.09285448513 + 4.09357394006 + 4.09429352128 + 4.09501322883 + 4.09573306272 + 4.09645302297 + 4.09717310961 + 4.09789332266 + 4.09861366214 + 4.09933412807 + 4.10005472048 + 4.10077543939 + 4.10149628482 + 4.10221725679 + 4.10293835533 + 4.10365958045 + 4.10438093218 + 4.10510241055 + 4.10582401557 + 4.10654574726 + 4.10726760565 + 4.10798959076 + 4.10871170262 + 4.10943394124 + 4.11015630665 + 4.11087879887 + 4.11160141791 + 4.11232416382 + 4.1130470366 + 4.11377003627 + 4.11449316287 + 4.11521641641 + 4.11593979692 + 4.11666330441 + 4.11738693892 + 4.11811070045 + 4.11883458905 + 4.11955860471 + 4.12028274748 + 4.12100701737 + 4.1217314144 + 4.1224559386 + 4.12318058999 + 4.12390536858 + 4.12463027442 + 4.1253553075 + 4.12608046787 + 4.12680575553 + 4.12753117052 + 4.12825671285 + 4.12898238255 + 4.12970817963 + 4.13043410413 + 4.13116015607 + 4.13188633546 + 4.13261264233 + 4.1333390767 + 4.13406563859 + 4.13479232803 + 4.13551914504 + 4.13624608964 + 4.13697316186 + 4.13770036171 + 4.13842768921 + 4.1391551444 + 4.13988272729 + 4.14061043791 + 4.14133827627 + 4.14206624241 + 4.14279433634 + 4.14352255808 + 4.14425090766 + 4.1449793851 + 4.14570799042 + 4.14643672365 + 4.1471655848 + 4.1478945739 + 4.14862369098 + 4.14935293605 + 4.15008230914 + 4.15081181027 + 4.15154143946 + 4.15227119673 + 4.15300108211 + 4.15373109562 + 4.15446123729 + 4.15519150713 + 4.15592190516 + 4.15665243141 + 4.15738308591 + 4.15811386867 + 4.15884477972 + 4.15957581908 + 4.16030698677 + 4.16103828281 + 4.16176970723 + 4.16250126006 + 4.1632329413 + 4.16396475099 + 4.16469668914 + 4.16542875579 + 4.16616095095 + 4.16689327464 + 4.16762572689 + 4.16835830772 + 4.16909101716 + 4.16982385522 + 4.17055682192 + 4.1712899173 + 4.17202314137 + 4.17275649416 + 4.17348997568 + 4.17422358597 + 4.17495732504 + 4.17569119291 + 4.17642518962 + 4.17715931517 + 4.1778935696 + 4.17862795293 + 4.17936246517 + 4.18009710636 + 4.18083187651 + 4.18156677565 + 4.18230180379 + 4.18303696097 + 4.18377224721 + 4.18450766252 + 4.18524320693 + 4.18597888047 + 4.18671468315 + 4.187450615 + 4.18818667604 + 4.1889228663 + 4.18965918579 + 4.19039563454 + 4.19113221257 + 4.19186891991 + 4.19260575657 + 4.19334272259 + 4.19407981797 + 4.19481704275 + 4.19555439695 + 4.19629188059 + 4.1970294937 + 4.19776723629 + 4.19850510838 + 4.19924311001 + 4.1999812412 + 4.20071950196 + 4.20145789232 + 4.2021964123 + 4.20293506193 + 4.20367384123 + 4.20441275022 + 4.20515178892 + 4.20589095736 + 4.20663025556 + 4.20736968354 + 4.20810924132 + 4.20884892893 + 4.20958874639 + 4.21032869373 + 4.21106877096 + 4.21180897811 + 4.2125493152 + 4.21328978226 + 4.2140303793 + 4.21477110635 + 4.21551196344 + 4.21625295058 + 4.2169940678 + 4.21773531512 + 4.21847669257 + 4.21921820016 + 4.21995983792 + 4.22070160588 + 4.22144350405 + 4.22218553245 + 4.22292769112 + 4.22366998008 + 4.22441239934 + 4.22515494893 + 4.22589762887 + 4.22664043919 + 4.22738337991 + 4.22812645105 + 4.22886965263 + 4.22961298468 + 4.23035644722 + 4.23110004028 + 4.23184376387 + 4.23258761801 + 4.23333160274 + 4.23407571808 + 4.23481996404 + 4.23556434065 + 4.23630884794 + 4.23705348592 + 4.23779825463 + 4.23854315407 + 4.23928818428 + 4.24003334528 + 4.24077863709 + 4.24152405973 + 4.24226961323 + 4.24301529761 + 4.24376111289 + 4.2445070591 + 4.24525313626 + 4.24599934439 + 4.24674568352 + 4.24749215366 + 4.24823875484 + 4.24898548709 + 4.24973235043 + 4.25047934487 + 4.25122647045 + 4.25197372719 + 4.2527211151 + 4.25346863421 + 4.25421628456 + 4.25496406614 + 4.255711979 + 4.25646002316 + 4.25720819863 + 4.25795650544 + 4.25870494362 + 4.25945351318 + 4.26020221415 + 4.26095104655 + 4.26170001041 + 4.26244910575 + 4.26319833259 + 4.26394769096 + 4.26469718087 + 4.26544680236 + 4.26619655543 + 4.26694644013 + 4.26769645647 + 4.26844660447 + 4.26919688415 + 4.26994729555 + 4.27069783868 + 4.27144851356 + 4.27219932022 + 4.27295025869 + 4.27370132898 + 4.27445253112 + 4.27520386513 + 4.27595533104 + 4.27670692887 + 4.27745865863 + 4.27821052036 + 4.27896251408 + 4.27971463981 + 4.28046689757 + 4.28121928739 + 4.28197180929 + 4.28272446329 + 4.28347724942 + 4.2842301677 + 4.28498321815 + 4.2857364008 + 4.28648971566 + 4.28724316277 + 4.28799674215 + 4.28875045381 + 4.28950429779 + 4.2902582741 + 4.29101238277 + 4.29176662382 + 4.29252099728 + 4.29327550317 + 4.29403014151 + 4.29478491232 + 4.29553981563 + 4.29629485146 + 4.29705001984 + 4.29780532078 + 4.29856075432 + 4.29931632047 + 4.30007201926 + 4.30082785071 + 4.30158381484 + 4.30233991168 + 4.30309614125 + 4.30385250358 + 4.30460899869 + 4.30536562659 + 4.30612238732 + 4.3068792809 + 4.30763630734 + 4.30839346668 + 4.30915075894 + 4.30990818414 + 4.31066574231 + 4.31142343346 + 4.31218125762 + 4.31293921482 + 4.31369730507 + 4.3144555284 + 4.31521388484 + 4.31597237441 + 4.31673099713 + 4.31748975302 + 4.31824864211 + 4.31900766442 + 4.31976681997 + 4.32052610879 + 4.32128553091 + 4.32204508634 + 4.3228047751 + 4.32356459723 + 4.32432455275 + 4.32508464167 + 4.32584486402 + 4.32660521983 + 4.32736570912 + 4.3281263319 + 4.32888708822 + 4.32964797808 + 4.33040900152 + 4.33117015855 + 4.3319314492 + 4.33269287349 + 4.33345443145 + 4.3342161231 + 4.33497794846 + 4.33573990756 + 4.33650200042 + 4.33726422706 + 4.33802658751 + 4.33878908179 + 4.33955170992 + 4.34031447194 + 4.34107736785 + 4.34184039768 + 4.34260356147 + 4.34336685923 + 4.34413029098 + 4.34489385675 + 4.34565755656 + 4.34642139044 + 4.3471853584 + 4.34794946048 + 4.3487136967 + 4.34947806707 + 4.35024257163 + 4.3510072104 + 4.35177198339 + 4.35253689064 + 4.35330193217 + 4.354067108 + 4.35483241815 + 4.35559786265 + 4.35636344153 + 4.35712915479 + 4.35789500248 + 4.35866098461 + 4.35942710121 + 4.3601933523 + 4.3609597379 + 4.36172625803 + 4.36249291273 + 4.36325970201 + 4.36402662591 + 4.36479368443 + 4.3655608776 + 4.36632820546 + 4.36709566802 + 4.3678632653 + 4.36863099734 + 4.36939886415 + 4.37016686575 + 4.37093500218 + 4.37170327345 + 4.37247167959 + 4.37324022062 + 4.37400889656 + 4.37477770745 + 4.37554665329 + 4.37631573413 + 4.37708494997 + 4.37785430085 + 4.37862378679 + 4.3793934078 + 4.38016316393 + 4.38093305518 + 4.38170308158 + 4.38247324316 + 4.38324353994 + 4.38401397194 + 4.38478453919 + 4.38555524172 + 4.38632607953 + 4.38709705267 + 4.38786816115 + 4.38863940499 + 4.38941078423 + 4.39018229887 + 4.39095394896 + 4.39172573451 + 4.39249765554 + 4.39326971208 + 4.39404190415 + 4.39481423178 + 4.39558669499 + 4.39635929381 + 4.39713202825 + 4.39790489834 + 4.39867790411 + 4.39945104558 + 4.40022432277 + 4.40099773571 + 4.40177128441 + 4.40254496892 + 4.40331878924 + 4.4040927454 + 4.40486683743 + 4.40564106535 + 4.40641542919 + 4.40718992896 + 4.40796456469 + 4.40873933641 + 4.40951424413 + 4.4102892879 + 4.41106446771 + 4.41183978361 + 4.41261523561 + 4.41339082375 + 4.41416654803 + 4.41494240849 + 4.41571840515 + 4.41649453804 + 4.41727080717 + 4.41804721258 + 4.41882375428 + 4.4196004323 + 4.42037724667 + 4.4211541974 + 4.42193128453 + 4.42270850807 + 4.42348586805 + 4.42426336449 + 4.42504099743 + 4.42581876687 + 4.42659667285 + 4.42737471539 + 4.42815289451 + 4.42893121024 + 4.4297096626 + 4.43048825161 + 4.43126697731 + 4.43204583971 + 4.43282483884 + 4.43360397471 + 4.43438324737 + 4.43516265682 + 4.43594220309 + 4.43672188622 + 4.43750170621 + 4.4382816631 + 4.43906175691 + 4.43984198766 + 4.44062235538 + 4.4414028601 + 4.44218350183 + 4.44296428059 + 4.44374519642 + 4.44452624934 + 4.44530743937 + 4.44608876654 + 4.44687023087 + 4.44765183238 + 4.4484335711 + 4.44921544705 + 4.44999746026 + 4.45077961075 + 4.45156189854 + 4.45234432366 + 4.45312688614 + 4.45390958599 + 4.45469242324 + 4.45547539792 + 4.45625851005 + 4.45704175965 + 4.45782514675 + 4.45860867137 + 4.45939233353 + 4.46017613327 + 4.4609600706 + 4.46174414554 + 4.46252835813 + 4.46331270839 + 4.46409719634 + 4.464881822 + 4.4656665854 + 4.46645148657 + 4.46723652552 + 4.46802170228 + 4.46880701688 + 4.46959246934 + 4.47037805969 + 4.47116378794 + 4.47194965412 + 4.47273565827 + 4.47352180039 + 4.47430808052 + 4.47509449867 + 4.47588105489 + 4.47666774918 + 4.47745458157 + 4.47824155209 + 4.47902866075 + 4.4798159076 + 4.48060329264 + 4.48139081591 + 4.48217847742 + 4.48296627721 + 4.48375421529 + 4.4845422917 + 4.48533050644 + 4.48611885956 + 4.48690735107 + 4.487695981 + 4.48848474937 + 4.48927365621 + 4.49006270153 + 4.49085188538 + 4.49164120776 + 4.4924306687 + 4.49322026824 + 4.49401000638 + 4.49479988316 + 4.49558989861 + 4.49638005274 + 4.49717034557 + 4.49796077715 + 4.49875134748 + 4.49954205659 + 4.50033290451 + 4.50112389126 + 4.50191501687 + 4.50270628135 + 4.50349768474 + 4.50428922706 + 4.50508090834 + 4.50587272859 + 4.50666468784 + 4.50745678612 + 4.50824902345 + 4.50904139986 + 4.50983391537 + 4.51062657 + 4.51141936377 + 4.51221229673 + 4.51300536887 + 4.51379858025 + 4.51459193086 + 4.51538542075 + 4.51617904993 + 4.51697281844 + 4.51776672628 + 4.5185607735 + 4.51935496011 + 4.52014928613 + 4.5209437516 + 4.52173835653 + 4.52253310096 + 4.5233279849 + 4.52412300838 + 4.52491817142 + 4.52571347406 + 4.52650891631 + 4.52730449819 + 4.52810021974 + 4.52889608097 + 4.52969208192 + 4.5304882226 + 4.53128450304 + 4.53208092327 + 4.53287748331 + 4.53367418318 + 4.53447102291 + 4.53526800252 + 4.53606512204 + 4.5368623815 + 4.53765978091 + 4.5384573203 + 4.5392549997 + 4.54005281912 + 4.54085077861 + 4.54164887817 + 4.54244711784 + 4.54324549764 + 4.54404401759 + 4.54484267771 + 4.54564147805 + 4.5464404186 + 4.54723949942 + 4.5480387205 + 4.54883808189 + 4.54963758361 + 4.55043722567 + 4.55123700811 + 4.55203693095 + 4.55283699422 + 4.55363719793 + 4.55443754212 + 4.5552380268 + 4.55603865201 + 4.55683941777 + 4.5576403241 + 4.55844137103 + 4.55924255857 + 4.56004388677 + 4.56084535563 + 4.5616469652 + 4.56244871548 + 4.56325060651 + 4.5640526383 + 4.5648548109 + 4.56565712431 + 4.56645957856 + 4.56726217369 + 4.56806490971 + 4.56886778664 + 4.56967080452 + 4.57047396337 + 4.57127726321 + 4.57208070407 + 4.57288428597 + 4.57368800893 + 4.57449187299 + 4.57529587817 + 4.57610002448 + 4.57690431196 + 4.57770874063 + 4.57851331052 + 4.57931802165 + 4.58012287404 + 4.58092786772 + 4.58173300272 + 4.58253827906 + 4.58334369676 + 4.58414925585 + 4.58495495635 + 4.58576079829 + 4.5865667817 + 4.58737290659 + 4.588179173 + 4.58898558095 + 4.58979213046 + 4.59059882155 + 4.59140565426 + 4.59221262861 + 4.59301974462 + 4.59382700231 + 4.59463440172 + 4.59544194287 + 4.59624962577 + 4.59705745047 + 4.59786541697 + 4.59867352531 + 4.59948177552 + 4.60029016761 + 4.60109870161 + 4.60190737754 + 4.60271619544 + 4.60352515533 + 4.60433425722 + 4.60514350115 + 4.60595288714 + 4.60676241522 + 4.60757208541 + 4.60838189773 + 4.60919185221 + 4.61000194888 + 4.61081218776 + 4.61162256888 + 4.61243309225 + 4.61324375792 + 4.61405456589 + 4.61486551619 + 4.61567660886 + 4.61648784391 + 4.61729922138 + 4.61811074127 + 4.61892240363 + 4.61973420848 + 4.62054615583 + 4.62135824572 + 4.62217047817 + 4.6229828532 + 4.62379537085 + 4.62460803113 + 4.62542083407 + 4.6262337797 + 4.62704686803 + 4.62786009911 + 4.62867347294 + 4.62948698956 + 4.63030064899 + 4.63111445126 + 4.63192839639 + 4.6327424844 + 4.63355671532 + 4.63437108918 + 4.63518560601 + 4.63600026581 + 4.63681506863 + 4.63763001449 + 4.63844510341 + 4.63926033541 + 4.64007571053 + 4.64089122878 + 4.6417068902 + 4.6425226948 + 4.64333864262 + 4.64415473367 + 4.64497096799 + 4.6457873456 + 4.64660386651 + 4.64742053077 + 4.64823733839 + 4.6490542894 + 4.64987138382 + 4.65068862168 + 4.651506003 + 4.65232352782 + 4.65314119614 + 4.65395900801 + 4.65477696344 + 4.65559506247 + 4.6564133051 + 4.65723169138 + 4.65805022133 + 4.65886889496 + 4.65968771231 + 4.6605066734 + 4.66132577826 + 4.66214502691 + 4.66296441938 + 4.66378395569 + 4.66460363587 + 4.66542345994 + 4.66624342793 + 4.66706353986 + 4.66788379576 + 4.66870419566 + 4.66952473957 + 4.67034542753 + 4.67116625956 + 4.67198723568 + 4.67280835592 + 4.67362962031 + 4.67445102887 + 4.67527258163 + 4.6760942786 + 4.67691611983 + 4.67773810533 + 4.67856023512 + 4.67938250924 + 4.6802049277 + 4.68102749054 + 4.68185019778 + 4.68267304944 + 4.68349604555 + 4.68431918614 + 4.68514247122 + 4.68596590084 + 4.686789475 + 4.68761319374 + 4.68843705708 + 4.68926106505 + 4.69008521767 + 4.69090951497 + 4.69173395697 + 4.6925585437 + 4.69338327519 + 4.69420815145 + 4.69503317252 + 4.69585833842 + 4.69668364918 + 4.69750910482 + 4.69833470536 + 4.69916045084 + 4.69998634127 + 4.70081237669 + 4.70163855711 + 4.70246488257 + 4.70329135309 + 4.70411796869 + 4.70494472941 + 4.70577163526 + 4.70659868627 + 4.70742588247 + 4.70825322387 + 4.70908071052 + 4.70990834243 + 4.71073611963 + 4.71156404215 + 4.71239211 + 4.71322032322 + 4.71404868183 + 4.71487718585 + 4.71570583532 + 4.71653463026 + 4.71736357068 + 4.71819265663 + 4.71902188812 + 4.71985126518 + 4.72068078784 + 4.72151045611 + 4.72234027003 + 4.72317022963 + 4.72400033492 + 4.72483058593 + 4.72566098269 + 4.72649152523 + 4.72732221357 + 4.72815304773 + 4.72898402774 + 4.72981515363 + 4.73064642542 + 4.73147784314 + 4.73230940681 + 4.73314111646 + 4.73397297211 + 4.7348049738 + 4.73563712154 + 4.73646941536 + 4.73730185529 + 4.73813444136 + 4.73896717358 + 4.73980005198 + 4.7406330766 + 4.74146624745 + 4.74229956456 + 4.74313302796 + 4.74396663767 + 4.74480039372 + 4.74563429613 + 4.74646834493 + 4.74730254015 + 4.74813688181 + 4.74897136993 + 4.74980600455 + 4.75064078568 + 4.75147571336 + 4.75231078761 + 4.75314600846 + 4.75398137592 + 4.75481689003 + 4.75565255081 + 4.7564883583 + 4.7573243125 + 4.75816041346 + 4.75899666119 + 4.75983305572 + 4.76066959708 + 4.76150628529 + 4.76234312038 + 4.76318010238 + 4.7640172313 + 4.76485450718 + 4.76569193004 + 4.76652949991 + 4.76736721682 + 4.76820508078 + 4.76904309183 + 4.76988124999 + 4.77071955528 + 4.77155800774 + 4.77239660738 + 4.77323535424 + 4.77407424834 + 4.77491328971 + 4.77575247836 + 4.77659181434 + 4.77743129765 + 4.77827092834 + 4.77911070642 + 4.77995063193 + 4.78079070488 + 4.7816309253 + 4.78247129322 + 4.78331180866 + 4.78415247166 + 4.78499328223 + 4.78583424041 + 4.78667534621 + 4.78751659967 + 4.7883580008 + 4.78919954965 + 4.79004124622 + 4.79088309055 + 4.79172508267 + 4.79256722259 + 4.79340951035 + 4.79425194598 + 4.79509452949 + 4.79593726091 + 4.79678014027 + 4.7976231676 + 4.79846634292 + 4.79930966626 + 4.80015313764 + 4.80099675709 + 4.80184052463 + 4.8026844403 + 4.80352850411 + 4.8043727161 + 4.80521707628 + 4.80606158469 + 4.80690624136 + 4.8077510463 + 4.80859599954 + 4.80944110111 + 4.81028635104 + 4.81113174935 + 4.81197729607 + 4.81282299122 + 4.81366883483 + 4.81451482693 + 4.81536096754 + 4.81620725668 + 4.81705369439 + 4.81790028069 + 4.81874701561 + 4.81959389917 + 4.82044093139 + 4.82128811232 + 4.82213544196 + 4.82298292035 + 4.82383054751 + 4.82467832347 + 4.82552624825 + 4.82637432189 + 4.8272225444 + 4.82807091582 + 4.82891943616 + 4.82976810547 + 4.83061692375 + 4.83146589104 + 4.83231500737 + 4.83316427275 + 4.83401368723 + 4.83486325081 + 4.83571296353 + 4.83656282542 + 4.8374128365 + 4.8382629968 + 4.83911330634 + 4.83996376515 + 4.84081437326 + 4.84166513069 + 4.84251603746 + 4.84336709361 + 4.84421829917 + 4.84506965415 + 4.84592115858 + 4.84677281249 + 4.84762461591 + 4.84847656886 + 4.84932867137 + 4.85018092346 + 4.85103332516 + 4.8518858765 + 4.8527385775 + 4.8535914282 + 4.85444442861 + 4.85529757876 + 4.85615087868 + 4.85700432839 + 4.85785792793 + 4.85871167731 + 4.85956557656 + 4.86041962572 + 4.8612738248 + 4.86212817384 + 4.86298267285 + 4.86383732187 + 4.86469212092 + 4.86554707003 + 4.86640216922 + 4.86725741852 + 4.86811281796 + 4.86896836756 + 4.86982406736 + 4.87067991736 + 4.87153591761 + 4.87239206813 + 4.87324836895 + 4.87410482008 + 4.87496142157 + 4.87581817343 + 4.87667507569 + 4.87753212837 + 4.87838933151 + 4.87924668513 + 4.88010418926 + 4.88096184391 + 4.88181964913 + 4.88267760493 + 4.88353571135 + 4.8843939684 + 4.88525237612 + 4.88611093453 + 4.88696964366 + 4.88782850353 + 4.88868751417 + 4.88954667561 + 4.89040598788 + 4.89126545099 + 4.89212506498 + 4.89298482987 + 4.89384474569 + 4.89470481247 + 4.89556503024 + 4.89642539901 + 4.89728591881 + 4.89814658968 + 4.89900741164 + 4.89986838471 + 4.90072950892 + 4.9015907843 + 4.90245221088 + 4.90331378868 + 4.90417551773 + 4.90503739805 + 4.90589942967 + 4.90676161262 + 4.90762394692 + 4.9084864326 + 4.90934906969 + 4.91021185822 + 4.9110747982 + 4.91193788967 + 4.91280113266 + 4.91366452719 + 4.91452807328 + 4.91539177096 + 4.91625562027 + 4.91711962122 + 4.91798377385 + 4.91884807817 + 4.91971253422 + 4.92057714203 + 4.92144190161 + 4.92230681301 + 4.92317187623 + 4.92403709131 + 4.92490245828 + 4.92576797717 + 4.92663364799 + 4.92749947078 + 4.92836544556 + 4.92923157236 + 4.93009785121 + 4.93096428213 + 4.93183086516 + 4.9326976003 + 4.9335644876 + 4.93443152709 + 4.93529871877 + 4.93616606269 + 4.93703355888 + 4.93790120734 + 4.93876900812 + 4.93963696125 + 4.94050506674 + 4.94137332462 + 4.94224173492 + 4.94311029767 + 4.9439790129 + 4.94484788062 + 4.94571690087 + 4.94658607368 + 4.94745539907 + 4.94832487706 + 4.9491945077 + 4.95006429099 + 4.95093422697 + 4.95180431566 + 4.9526745571 + 4.95354495131 + 4.95441549831 + 4.95528619813 + 4.95615705081 + 4.95702805636 + 4.95789921481 + 4.95877052619 + 4.95964199053 + 4.96051360785 + 4.96138537818 + 4.96225730155 + 4.96312937799 + 4.96400160751 + 4.96487399015 + 4.96574652594 + 4.9666192149 + 4.96749205705 + 4.96836505244 + 4.96923820107 + 4.97011150298 + 4.9709849582 + 4.97185856675 + 4.97273232867 + 4.97360624396 + 4.97448031268 + 4.97535453483 + 4.97622891045 + 4.97710343956 + 4.9779781222 + 4.97885295838 + 4.97972794814 + 4.98060309151 + 4.9814783885 + 4.98235383915 + 4.98322944348 + 4.98410520152 + 4.9849811133 + 4.98585717884 + 4.98673339817 + 4.98760977132 + 4.98848629832 + 4.98936297919 + 4.99023981396 + 4.99111680265 + 4.9919939453 + 4.99287124192 + 4.99374869256 + 4.99462629723 + 4.99550405596 + 4.99638196878 + 4.99726003571 + 4.99813825679 + 4.99901663203 + 4.99989516148 + 5.00077384514 + 5.00165268306 + 5.00253167525 + 5.00341082175 + 5.00429012259 + 5.00516957778 + 5.00604918735 + 5.00692895134 + 5.00780886977 + 5.00868894267 + 5.00956917007 + 5.01044955198 + 5.01133008844 + 5.01221077948 + 5.01309162513 + 5.0139726254 + 5.01485378033 + 5.01573508994 + 5.01661655427 + 5.01749817334 + 5.01837994717 + 5.01926187579 + 5.02014395924 + 5.02102619753 + 5.0219085907 + 5.02279113877 + 5.02367384176 + 5.02455669972 + 5.02543971266 + 5.02632288061 + 5.02720620359 + 5.02808968165 + 5.02897331479 + 5.02985710305 + 5.03074104646 + 5.03162514505 + 5.03250939884 + 5.03339380785 + 5.03427837212 + 5.03516309168 + 5.03604796654 + 5.03693299674 + 5.03781818231 + 5.03870352327 + 5.03958901964 + 5.04047467147 + 5.04136047877 + 5.04224644157 + 5.0431325599 + 5.04401883378 + 5.04490526325 + 5.04579184833 + 5.04667858904 + 5.04756548542 + 5.0484525375 + 5.04933974529 + 5.05022710883 + 5.05111462815 + 5.05200230326 + 5.05289013421 + 5.05377812101 + 5.0546662637 + 5.05555456229 + 5.05644301683 + 5.05733162733 + 5.05822039383 + 5.05910931634 + 5.05999839491 + 5.06088762955 + 5.06177702029 + 5.06266656716 + 5.0635562702 + 5.06444612941 + 5.06533614484 + 5.06622631651 + 5.06711664444 + 5.06800712868 + 5.06889776923 + 5.06978856613 + 5.07067951941 + 5.0715706291 + 5.07246189521 + 5.07335331779 + 5.07424489685 + 5.07513663243 + 5.07602852455 + 5.07692057324 + 5.07781277853 + 5.07870514044 + 5.079597659 + 5.08049033424 + 5.08138316619 + 5.08227615488 + 5.08316930032 + 5.08406260256 + 5.08495606161 + 5.0858496775 + 5.08674345027 + 5.08763737994 + 5.08853146654 + 5.08942571009 + 5.09032011062 + 5.09121466816 + 5.09210938274 + 5.09300425438 + 5.09389928312 + 5.09479446898 + 5.09568981198 + 5.09658531216 + 5.09748096954 + 5.09837678416 + 5.09927275603 + 5.10016888518 + 5.10106517165 + 5.10196161547 + 5.10285821664 + 5.10375497522 + 5.10465189122 + 5.10554896467 + 5.1064461956 + 5.10734358403 + 5.10824113001 + 5.10913883354 + 5.11003669466 + 5.1109347134 + 5.11183288978 + 5.11273122384 + 5.1136297156 + 5.11452836508 + 5.11542717232 + 5.11632613735 + 5.11722526018 + 5.11812454086 + 5.1190239794 + 5.11992357583 + 5.12082333019 + 5.1217232425 + 5.12262331278 + 5.12352354107 + 5.12442392739 + 5.12532447177 + 5.12622517424 + 5.12712603483 + 5.12802705356 + 5.12892823046 + 5.12982956557 + 5.13073105889 + 5.13163271048 + 5.13253452034 + 5.13343648852 + 5.13433861504 + 5.13524089992 + 5.13614334319 + 5.13704594489 + 5.13794870504 + 5.13885162366 + 5.13975470079 + 5.14065793645 + 5.14156133067 + 5.14246488348 + 5.14336859491 + 5.14427246498 + 5.14517649373 + 5.14608068117 + 5.14698502734 + 5.14788953227 + 5.14879419598 + 5.1496990185 + 5.15060399986 + 5.15150914009 + 5.15241443922 + 5.15331989727 + 5.15422551426 + 5.15513129024 + 5.15603722522 + 5.15694331924 + 5.15784957232 + 5.1587559845 + 5.15966255579 + 5.16056928622 + 5.16147617583 + 5.16238322464 + 5.16329043269 + 5.16419779999 + 5.16510532658 + 5.16601301248 + 5.16692085772 + 5.16782886233 + 5.16873702634 + 5.16964534978 + 5.17055383267 + 5.17146247504 + 5.17237127693 + 5.17328023835 + 5.17418935933 + 5.17509863992 + 5.17600808012 + 5.17691767997 + 5.1778274395 + 5.17873735874 + 5.17964743771 + 5.18055767644 + 5.18146807496 + 5.1823786333 + 5.18328935149 + 5.18420022955 + 5.18511126752 + 5.18602246541 + 5.18693382326 + 5.1878453411 + 5.18875701896 + 5.18966885686 + 5.19058085482 + 5.19149301289 + 5.19240533108 + 5.19331780943 + 5.19423044797 + 5.19514324671 + 5.19605620569 + 5.19696932494 + 5.19788260449 + 5.19879604436 + 5.19970964459 + 5.20062340519 + 5.2015373262 + 5.20245140765 + 5.20336564956 + 5.20428005197 + 5.20519461489 + 5.20610933837 + 5.20702422242 + 5.20793926708 + 5.20885447238 + 5.20976983833 + 5.21068536498 + 5.21160105234 + 5.21251690045 + 5.21343290934 + 5.21434907903 + 5.21526540955 + 5.21618190092 + 5.21709855319 + 5.21801536637 + 5.2189323405 + 5.2198494756 + 5.2207667717 + 5.22168422883 + 5.22260184702 + 5.22351962629 + 5.22443756668 + 5.22535566821 + 5.22627393091 + 5.2271923548 + 5.22811093993 + 5.22902968631 + 5.22994859397 + 5.23086766295 + 5.23178689327 + 5.23270628495 + 5.23362583803 + 5.23454555254 + 5.2354654285 + 5.23638546594 + 5.2373056649 + 5.23822602539 + 5.23914654745 + 5.2400672311 + 5.24098807638 + 5.24190908331 + 5.24283025192 + 5.24375158224 + 5.24467307429 + 5.24559472811 + 5.24651654373 + 5.24743852117 + 5.24836066046 + 5.24928296163 + 5.2502054247 + 5.25112804971 + 5.25205083669 + 5.25297378566 + 5.25389689665 + 5.25482016969 + 5.25574360481 + 5.25666720204 + 5.2575909614 + 5.25851488292 + 5.25943896664 + 5.26036321258 + 5.26128762077 + 5.26221219123 + 5.263136924 + 5.26406181911 + 5.26498687657 + 5.26591209643 + 5.26683747871 + 5.26776302344 + 5.26868873065 + 5.26961460036 + 5.2705406326 + 5.27146682741 + 5.27239318481 + 5.27331970483 + 5.27424638749 + 5.27517323284 + 5.27610024089 + 5.27702741167 + 5.27795474521 + 5.27888224155 + 5.27980990071 + 5.28073772271 + 5.28166570759 + 5.28259385538 + 5.2835221661 + 5.28445063979 + 5.28537927646 + 5.28630807615 + 5.2872370389 + 5.28816616472 + 5.28909545364 + 5.2900249057 + 5.29095452093 + 5.29188429934 + 5.29281424098 + 5.29374434586 + 5.29467461402 + 5.29560504549 + 5.2965356403 + 5.29746639846 + 5.29839732002 + 5.299328405 + 5.30025965343 + 5.30119106534 + 5.30212264075 + 5.30305437971 + 5.30398628222 + 5.30491834833 + 5.30585057806 + 5.30678297144 + 5.3077155285 + 5.30864824927 + 5.30958113377 + 5.31051418204 + 5.31144739411 + 5.31238077 + 5.31331430974 + 5.31424801336 + 5.31518188089 + 5.31611591236 + 5.31705010779 + 5.31798446722 + 5.31891899068 + 5.31985367819 + 5.32078852978 + 5.32172354548 + 5.32265872532 + 5.32359406933 + 5.32452957753 + 5.32546524997 + 5.32640108666 + 5.32733708763 + 5.32827325291 + 5.32920958254 + 5.33014607653 + 5.33108273493 + 5.33201955775 + 5.33295654503 + 5.3338936968 + 5.33483101308 + 5.3357684939 + 5.3367061393 + 5.3376439493 + 5.33858192393 + 5.33952006322 + 5.34045836719 + 5.34139683588 + 5.34233546932 + 5.34327426754 + 5.34421323055 + 5.3451523584 + 5.34609165111 + 5.34703110871 + 5.34797073124 + 5.3489105187 + 5.34985047115 + 5.3507905886 + 5.35173087109 + 5.35267131865 + 5.35361193129 + 5.35455270906 + 5.35549365198 + 5.35643476008 + 5.35737603339 + 5.35831747193 + 5.35925907575 + 5.36020084486 + 5.36114277929 + 5.36208487908 + 5.36302714426 + 5.36396957484 + 5.36491217087 + 5.36585493237 + 5.36679785936 + 5.36774095189 + 5.36868420997 + 5.36962763364 + 5.37057122292 + 5.37151497785 + 5.37245889846 + 5.37340298476 + 5.3743472368 + 5.3752916546 + 5.37623623819 + 5.3771809876 + 5.37812590286 + 5.37907098399 + 5.38001623103 + 5.38096164401 + 5.38190722295 + 5.38285296789 + 5.38379887885 + 5.38474495586 + 5.38569119895 + 5.38663760816 + 5.3875841835 + 5.38853092501 + 5.38947783273 + 5.39042490666 + 5.39137214686 + 5.39231955334 + 5.39326712613 + 5.39421486527 + 5.39516277079 + 5.3961108427 + 5.39705908105 + 5.39800748585 + 5.39895605715 + 5.39990479497 + 5.40085369933 + 5.40180277028 + 5.40275200783 + 5.40370141201 + 5.40465098287 + 5.40560072041 + 5.40655062468 + 5.40750069571 + 5.40845093352 + 5.40940133813 + 5.4103519096 + 5.41130264793 + 5.41225355316 + 5.41320462532 + 5.41415586443 + 5.41510727054 + 5.41605884366 + 5.41701058383 + 5.41796249107 + 5.41891456542 + 5.41986680691 + 5.42081921555 + 5.42177179139 + 5.42272453446 + 5.42367744477 + 5.42463052237 + 5.42558376727 + 5.42653717952 + 5.42749075913 + 5.42844450614 + 5.42939842058 + 5.43035250248 + 5.43130675187 + 5.43226116877 + 5.43321575322 + 5.43417050524 + 5.43512542486 + 5.43608051212 + 5.43703576705 + 5.43799118966 + 5.43894678 + 5.43990253809 + 5.44085846396 + 5.44181455764 + 5.44277081916 + 5.44372724855 + 5.44468384584 + 5.44564061105 + 5.44659754423 + 5.44755464539 + 5.44851191457 + 5.44946935179 + 5.45042695709 + 5.4513847305 + 5.45234267204 + 5.45330078175 + 5.45425905964 + 5.45521750577 + 5.45617612014 + 5.4571349028 + 5.45809385377 + 5.45905297308 + 5.46001226076 + 5.46097171684 + 5.46193134135 + 5.46289113432 + 5.46385109579 + 5.46481122577 + 5.46577152429 + 5.4667319914 + 5.46769262711 + 5.46865343147 + 5.46961440448 + 5.4705755462 + 5.47153685664 + 5.47249833584 + 5.47345998382 + 5.47442180061 + 5.47538378625 + 5.47634594077 + 5.47730826419 + 5.47827075654 + 5.47923341786 + 5.48019624817 + 5.4811592475 + 5.48212241588 + 5.48308575334 + 5.48404925992 + 5.48501293564 + 5.48597678053 + 5.48694079462 + 5.48790497794 + 5.48886933051 + 5.48983385238 + 5.49079854357 + 5.49176340411 + 5.49272843403 + 5.49369363335 + 5.49465900211 + 5.49562454035 + 5.49659024808 + 5.49755612533 + 5.49852217215 + 5.49948838855 + 5.50045477457 + 5.50142133023 + 5.50238805557 + 5.50335495062 + 5.5043220154 + 5.50528924995 + 5.5062566543 + 5.50722422847 + 5.5081919725 + 5.50915988641 + 5.51012797023 + 5.511096224 + 5.51206464775 + 5.5130332415 + 5.51400200528 + 5.51497093913 + 5.51594004307 + 5.51690931714 + 5.51787876136 + 5.51884837576 + 5.51981816037 + 5.52078811523 + 5.52175824037 + 5.5227285358 + 5.52369900157 + 5.5246696377 + 5.52564044423 + 5.52661142117 + 5.52758256857 + 5.52855388645 + 5.52952537485 + 5.53049703379 + 5.53146886329 + 5.53244086341 + 5.53341303415 + 5.53438537556 + 5.53535788765 + 5.53633057047 + 5.53730342405 + 5.5382764484 + 5.53924964357 + 5.54022300957 + 5.54119654645 + 5.54217025424 + 5.54314413295 + 5.54411818263 + 5.54509240329 + 5.54606679498 + 5.54704135773 + 5.54801609155 + 5.54899099649 + 5.54996607256 + 5.55094131981 + 5.55191673827 + 5.55289232795 + 5.5538680889 + 5.55484402114 + 5.5558201247 + 5.55679639962 + 5.55777284592 + 5.55874946363 + 5.55972625278 + 5.5607032134 + 5.56168034553 + 5.5626576492 + 5.56363512442 + 5.56461277124 + 5.56559058968 + 5.56656857978 + 5.56754674156 + 5.56852507505 + 5.56950358029 + 5.5704822573 + 5.57146110612 + 5.57244012677 + 5.57341931928 + 5.57439868369 + 5.57537822003 + 5.57635792832 + 5.57733780859 + 5.57831786088 + 5.57929808522 + 5.58027848163 + 5.58125905015 + 5.58223979081 + 5.58322070363 + 5.58420178865 + 5.58518304589 + 5.58616447539 + 5.58714607719 + 5.58812785129 + 5.58910979775 + 5.59009191658 + 5.59107420783 + 5.59205667151 + 5.59303930766 + 5.59402211631 + 5.59500509749 + 5.59598825123 + 5.59697157756 + 5.59795507651 + 5.59893874811 + 5.59992259239 + 5.60090660939 + 5.60189079912 + 5.60287516163 + 5.60385969694 + 5.60484440508 + 5.60582928609 + 5.60681433999 + 5.60779956681 + 5.60878496659 + 5.60977053935 + 5.61075628513 + 5.61174220395 + 5.61272829584 + 5.61371456085 + 5.61470099899 + 5.61568761029 + 5.6166743948 + 5.61766135253 + 5.61864848352 + 5.6196357878 + 5.62062326539 + 5.62161091634 + 5.62259874066 + 5.6235867384 + 5.62457490957 + 5.62556325422 + 5.62655177237 + 5.62754046405 + 5.62852932929 + 5.62951836813 + 5.63050758059 + 5.6314969667 + 5.6324865265 + 5.63347626001 + 5.63446616726 + 5.6354562483 + 5.63644650314 + 5.63743693181 + 5.63842753435 + 5.63941831079 + 5.64040926116 + 5.64140038549 + 5.64239168381 + 5.64338315615 + 5.64437480253 + 5.645366623 + 5.64635861758 + 5.64735078631 + 5.6483431292 + 5.6493356463 + 5.65032833763 + 5.65132120323 + 5.65231424312 + 5.65330745734 + 5.65430084592 + 5.65529440888 + 5.65628814626 + 5.65728205808 + 5.65827614439 + 5.6592704052 + 5.66026484056 + 5.66125945049 + 5.66225423501 + 5.66324919417 + 5.66424432799 + 5.66523963651 + 5.66623511975 + 5.66723077774 + 5.66822661052 + 5.66922261811 + 5.67021880056 + 5.67121515787 + 5.6722116901 + 5.67320839727 + 5.6742052794 + 5.67520233654 + 5.6761995687 + 5.67719697593 + 5.67819455825 + 5.67919231569 + 5.68019024829 + 5.68118835607 + 5.68218663907 + 5.68318509731 + 5.68418373083 + 5.68518253966 + 5.68618152383 + 5.68718068336 + 5.6881800183 + 5.68917952866 + 5.69017921449 + 5.69117907581 + 5.69217911265 + 5.69317932505 + 5.69417971303 + 5.69518027663 + 5.69618101587 + 5.6971819308 + 5.69818302142 + 5.69918428779 + 5.70018572993 + 5.70118734787 + 5.70218914164 + 5.70319111127 + 5.7041932568 + 5.70519557825 + 5.70619807566 + 5.70720074905 + 5.70820359845 + 5.70920662391 + 5.71020982545 + 5.71121320309 + 5.71221675687 + 5.71322048683 + 5.71422439299 + 5.71522847538 + 5.71623273403 + 5.71723716899 + 5.71824178026 + 5.7192465679 + 5.72025153192 + 5.72125667236 + 5.72226198925 + 5.72326748262 + 5.7242731525 + 5.72527899893 + 5.72628502193 + 5.72729122153 + 5.72829759778 + 5.72930415068 + 5.73031088029 + 5.73131778662 + 5.73232486972 + 5.7333321296 + 5.73433956631 + 5.73534717987 + 5.73635497031 + 5.73736293767 + 5.73837108198 + 5.73937940326 + 5.74038790155 + 5.74139657688 + 5.74240542928 + 5.74341445879 + 5.74442366542 + 5.74543304922 + 5.74644261021 + 5.74745234843 + 5.74846226391 + 5.74947235667 + 5.75048262676 + 5.75149307419 + 5.75250369901 + 5.75351450124 + 5.75452548091 + 5.75553663806 + 5.75654797271 + 5.7575594849 + 5.75857117466 + 5.75958304202 + 5.76059508701 + 5.76160730966 + 5.76261971001 + 5.76363228807 + 5.7646450439 + 5.76565797751 + 5.76667108894 + 5.76768437822 + 5.76869784538 + 5.76971149045 + 5.77072531346 + 5.77173931445 + 5.77275349344 + 5.77376785047 + 5.77478238557 + 5.77579709877 + 5.7768119901 + 5.77782705958 + 5.77884230727 + 5.77985773317 + 5.78087333733 + 5.78188911978 + 5.78290508055 + 5.78392121966 + 5.78493753716 + 5.78595403307 + 5.78697070742 + 5.78798756025 + 5.78900459158 + 5.79002180145 + 5.79103918989 + 5.79205675693 + 5.7930745026 + 5.79409242693 + 5.79511052996 + 5.79612881171 + 5.79714727222 + 5.79816591151 + 5.79918472963 + 5.8002037266 + 5.80122290245 + 5.80224225721 + 5.80326179092 + 5.80428150361 + 5.8053013953 + 5.80632146603 + 5.80734171584 + 5.80836214474 + 5.80938275278 + 5.81040353999 + 5.81142450639 + 5.81244565202 + 5.81346697691 + 5.81448848109 + 5.8155101646 + 5.81653202745 + 5.8175540697 + 5.81857629136 + 5.81959869247 + 5.82062127305 + 5.82164403315 + 5.8226669728 + 5.82369009201 + 5.82471339084 + 5.8257368693 + 5.82676052743 + 5.82778436526 + 5.82880838282 + 5.82983258015 + 5.83085695727 + 5.83188151422 + 5.83290625103 + 5.83393116772 + 5.83495626434 + 5.83598154091 + 5.83700699747 + 5.83803263404 + 5.83905845066 + 5.84008444737 + 5.84111062418 + 5.84213698113 + 5.84316351826 + 5.8441902356 + 5.84521713317 + 5.84624421101 + 5.84727146915 + 5.84829890763 + 5.84932652647 + 5.8503543257 + 5.85138230537 + 5.85241046549 + 5.8534388061 + 5.85446732724 + 5.85549602893 + 5.85652491121 + 5.8575539741 + 5.85858321765 + 5.85961264187 + 5.86064224681 + 5.86167203249 + 5.86270199895 + 5.86373214622 + 5.86476247432 + 5.8657929833 + 5.86682367318 + 5.867854544 + 5.86888559578 + 5.86991682857 + 5.87094824238 + 5.87197983725 + 5.87301161322 + 5.87404357031 + 5.87507570857 + 5.87610802801 + 5.87714052867 + 5.87817321058 + 5.87920607378 + 5.8802391183 + 5.88127234417 + 5.88230575141 + 5.88333934007 + 5.88437311017 + 5.88540706174 + 5.88644119483 + 5.88747550945 + 5.88851000565 + 5.88954468345 + 5.89057954288 + 5.89161458398 + 5.89264980678 + 5.89368521131 + 5.8947207976 + 5.89575656569 + 5.8967925156 + 5.89782864738 + 5.89886496104 + 5.89990145663 + 5.90093813416 + 5.90197499369 + 5.90301203523 + 5.90404925883 + 5.9050866645 + 5.90612425229 + 5.90716202223 + 5.90819997434 + 5.90923810867 + 5.91027642523 + 5.91131492407 + 5.91235360522 + 5.9133924687 + 5.91443151455 + 5.91547074281 + 5.9165101535 + 5.91754974665 + 5.9185895223 + 5.91962948049 + 5.92066962123 + 5.92170994457 + 5.92275045054 + 5.92379113916 + 5.92483201048 + 5.92587306451 + 5.9269143013 + 5.92795572088 + 5.92899732328 + 5.93003910852 + 5.93108107665 + 5.9321232277 + 5.93316556169 + 5.93420807866 + 5.93525077864 + 5.93629366166 + 5.93733672777 + 5.93837997697 + 5.93942340932 + 5.94046702484 + 5.94151082357 + 5.94255480553 + 5.94359897076 + 5.94464331929 + 5.94568785115 + 5.94673256638 + 5.947777465 + 5.94882254705 + 5.94986781257 + 5.95091326158 + 5.95195889411 + 5.95300471021 + 5.95405070989 + 5.9550968932 + 5.95614326016 + 5.95718981081 + 5.95823654518 + 5.9592834633 + 5.9603305652 + 5.96137785092 + 5.96242532049 + 5.96347297393 + 5.9645208113 + 5.9655688326 + 5.96661703789 + 5.96766542718 + 5.96871400052 + 5.96976275793 + 5.97081169945 + 5.9718608251 + 5.97291013493 + 5.97395962896 + 5.97500930723 + 5.97605916977 + 5.9771092166 + 5.97815944777 + 5.97920986331 + 5.98026046324 + 5.98131124761 + 5.98236221643 + 5.98341336976 + 5.9844647076 + 5.98551623001 + 5.98656793701 + 5.98761982864 + 5.98867190492 + 5.98972416589 + 5.99077661158 + 5.99182924203 + 5.99288205727 + 5.99393505732 + 5.99498824222 + 5.99604161201 + 5.99709516672 + 5.99814890637 + 5.99920283101 + 6.00025694066 + 6.00131123535 + 6.00236571513 + 6.00342038001 + 6.00447523004 + 6.00553026525 + 6.00658548566 + 6.00764089132 + 6.00869648225 + 6.00975225849 + 6.01080822006 + 6.01186436701 + 6.01292069936 + 6.01397721715 + 6.0150339204 + 6.01609080916 + 6.01714788345 + 6.01820514331 + 6.01926258877 + 6.02032021986 + 6.02137803661 + 6.02243603907 + 6.02349422725 + 6.02455260119 + 6.02561116093 + 6.0266699065 + 6.02772883792 + 6.02878795524 + 6.02984725849 + 6.03090674769 + 6.03196642288 + 6.0330262841 + 6.03408633137 + 6.03514656473 + 6.03620698422 + 6.03726758985 + 6.03832838168 + 6.03938935972 + 6.04045052401 + 6.04151187459 + 6.04257341149 + 6.04363513474 + 6.04469704437 + 6.04575914041 + 6.04682142291 + 6.04788389188 + 6.04894654737 + 6.05000938941 + 6.05107241802 + 6.05213563325 + 6.05319903512 + 6.05426262367 + 6.05532639893 + 6.05639036093 + 6.05745450971 + 6.0585188453 + 6.05958336773 + 6.06064807703 + 6.06171297324 + 6.06277805639 + 6.06384332651 + 6.06490878364 + 6.06597442781 + 6.06704025904 + 6.06810627738 + 6.06917248286 + 6.07023887551 + 6.07130545536 + 6.07237222245 + 6.0734391768 + 6.07450631846 + 6.07557364745 + 6.07664116381 + 6.07770886756 + 6.07877675875 + 6.07984483741 + 6.08091310356 + 6.08198155725 + 6.08305019849 + 6.08411902734 + 6.08518804382 + 6.08625724796 + 6.0873266398 + 6.08839621936 + 6.08946598669 + 6.09053594181 + 6.09160608476 + 6.09267641557 + 6.09374693428 + 6.09481764091 + 6.0958885355 + 6.09695961809 + 6.0980308887 + 6.09910234737 + 6.10017399413 + 6.10124582902 + 6.10231785206 + 6.1033900633 + 6.10446246276 + 6.10553505047 + 6.10660782648 + 6.10768079081 + 6.1087539435 + 6.10982728457 + 6.11090081407 + 6.11197453202 + 6.11304843846 + 6.11412253343 + 6.11519681695 + 6.11627128905 + 6.11734594978 + 6.11842079916 + 6.11949583723 + 6.12057106402 + 6.12164647956 + 6.12272208389 + 6.12379787703 + 6.12487385904 + 6.12595002992 + 6.12702638973 + 6.12810293849 + 6.12917967623 + 6.13025660299 + 6.13133371881 + 6.1324110237 + 6.13348851772 + 6.13456620089 + 6.13564407324 + 6.13672213482 + 6.13780038564 + 6.13887882574 + 6.13995745517 + 6.14103627394 + 6.1421152821 + 6.14319447968 + 6.1442738667 + 6.14535344321 + 6.14643320924 + 6.14751316482 + 6.14859330998 + 6.14967364475 + 6.15075416918 + 6.15183488329 + 6.15291578712 + 6.1539968807 + 6.15507816406 + 6.15615963724 + 6.15724130026 + 6.15832315318 + 6.159405196 + 6.16048742878 + 6.16156985154 + 6.16265246432 + 6.16373526714 + 6.16481826006 + 6.16590144308 + 6.16698481626 + 6.16806837962 + 6.1691521332 + 6.17023607703 + 6.17132021114 + 6.17240453557 + 6.17348905035 + 6.17457375551 + 6.17565865109 + 6.17674373712 + 6.17782901363 + 6.17891448067 + 6.18000013825 + 6.18108598642 + 6.18217202521 + 6.18325825464 + 6.18434467477 + 6.18543128561 + 6.1865180872 + 6.18760507958 + 6.18869226277 + 6.18977963682 + 6.19086720176 + 6.19195495761 + 6.19304290442 + 6.19413104221 + 6.19521937103 + 6.19630789089 + 6.19739660185 + 6.19848550392 + 6.19957459715 + 6.20066388157 + 6.2017533572 + 6.2028430241 + 6.20393288228 + 6.20502293178 + 6.20611317264 + 6.20720360488 + 6.20829422855 + 6.20938504368 + 6.21047605029 + 6.21156724843 + 6.21265863813 + 6.21375021942 + 6.21484199233 + 6.2159339569 + 6.21702611316 + 6.21811846114 + 6.21921100089 + 6.22030373243 + 6.22139665579 + 6.22248977102 + 6.22358307813 + 6.22467657718 + 6.22577026819 + 6.22686415119 + 6.22795822622 + 6.22905249331 + 6.2301469525 + 6.23124160381 + 6.23233644729 + 6.23343148297 + 6.23452671088 + 6.23562213105 + 6.23671774352 + 6.23781354833 + 6.2389095455 + 6.24000573506 + 6.24110211707 + 6.24219869154 + 6.24329545851 + 6.24439241801 + 6.24548957008 + 6.24658691476 + 6.24768445207 + 6.24878218205 + 6.24988010474 + 6.25097822016 + 6.25207652836 + 6.25317502936 + 6.25427372319 + 6.25537260991 + 6.25647168953 + 6.25757096208 + 6.25867042762 + 6.25977008616 + 6.26086993775 + 6.26196998241 + 6.26307022018 + 6.26417065109 + 6.26527127519 + 6.26637209249 + 6.26747310304 + 6.26857430687 + 6.26967570402 + 6.27077729451 + 6.27187907838 + 6.27298105567 + 6.27408322641 + 6.27518559063 + 6.27628814837 + 6.27739089966 + 6.27849384453 + 6.27959698303 + 6.28070031517 + 6.28180384101 + 6.28290756056 + 6.28401147387 + 6.28511558097 + 6.2862198819 + 6.28732437668 + 6.28842906535 + 6.28953394795 + 6.29063902451 + 6.29174429506 + 6.29284975963 + 6.29395541827 + 6.29506127101 + 6.29616731787 + 6.2972735589 + 6.29837999413 + 6.29948662359 + 6.30059344731 + 6.30170046534 + 6.30280767769 + 6.30391508442 + 6.30502268555 + 6.30613048112 + 6.30723847116 + 6.3083466557 + 6.30945503478 + 6.31056360843 + 6.31167237669 + 6.3127813396 + 6.31389049718 + 6.31499984947 + 6.3161093965 + 6.31721913831 + 6.31832907493 + 6.3194392064 + 6.32054953275 + 6.32166005402 + 6.32277077023 + 6.32388168143 + 6.32499278765 + 6.32610408892 + 6.32721558527 + 6.32832727675 + 6.32943916338 + 6.3305512452 + 6.33166352224 + 6.33277599454 + 6.33388866213 + 6.33500152504 + 6.33611458332 + 6.33722783699 + 6.33834128609 + 6.33945493066 + 6.34056877072 + 6.34168280631 + 6.34279703747 + 6.34391146423 + 6.34502608663 + 6.34614090469 + 6.34725591846 + 6.34837112797 + 6.34948653324 + 6.35060213433 + 6.35171793126 + 6.35283392406 + 6.35395011277 + 6.35506649742 + 6.35618307806 + 6.3572998547 + 6.3584168274 + 6.35953399617 + 6.36065136106 + 6.36176892211 + 6.36288667933 + 6.36400463278 + 6.36512278248 + 6.36624112847 + 6.36735967078 + 6.36847840945 + 6.36959734451 + 6.370716476 + 6.37183580395 + 6.37295532839 + 6.37407504937 + 6.3751949669 + 6.37631508104 + 6.37743539181 + 6.37855589925 + 6.37967660339 + 6.38079750426 + 6.38191860191 + 6.38303989637 + 6.38416138766 + 6.38528307583 + 6.38640496091 + 6.38752704293 + 6.38864932193 + 6.38977179795 + 6.39089447101 + 6.39201734116 + 6.39314040842 + 6.39426367283 + 6.39538713443 + 6.39651079325 + 6.39763464933 + 6.3987587027 + 6.39988295339 + 6.40100740144 + 6.40213204689 + 6.40325688976 + 6.4043819301 + 6.40550716793 + 6.4066326033 + 6.40775823624 + 6.40888406677 + 6.41001009495 + 6.41113632079 + 6.41226274435 + 6.41338936564 + 6.41451618471 + 6.41564320159 + 6.41677041631 + 6.41789782891 + 6.41902543943 + 6.4201532479 + 6.42128125435 + 6.42240945882 + 6.42353786134 + 6.42466646195 + 6.42579526069 + 6.42692425758 + 6.42805345267 + 6.42918284598 + 6.43031243755 + 6.43144222742 + 6.43257221563 + 6.4337024022 + 6.43483278717 + 6.43596337058 + 6.43709415246 + 6.43822513284 + 6.43935631177 + 6.44048768927 + 6.44161926538 + 6.44275104014 + 6.44388301358 + 6.44501518573 + 6.44614755663 + 6.44728012632 + 6.44841289483 + 6.44954586219 + 6.45067902844 + 6.45181239362 + 6.45294595775 + 6.45407972088 + 6.45521368304 + 6.45634784426 + 6.45748220459 + 6.45861676404 + 6.45975152267 + 6.4608864805 + 6.46202163757 + 6.46315699391 + 6.46429254956 + 6.46542830456 + 6.46656425893 + 6.46770041272 + 6.46883676596 + 6.46997331868 + 6.47111007092 + 6.47224702272 + 6.4733841741 + 6.47452152511 + 6.47565907578 + 6.47679682614 + 6.47793477623 + 6.47907292609 + 6.48021127574 + 6.48134982523 + 6.48248857459 + 6.48362752385 + 6.48476667305 + 6.48590602223 + 6.48704557142 + 6.48818532065 + 6.48932526997 + 6.49046541939 + 6.49160576897 + 6.49274631874 + 6.49388706872 + 6.49502801896 + 6.49616916949 + 6.49731052035 + 6.49845207157 + 6.49959382318 + 6.50073577523 + 6.50187792775 + 6.50302028076 + 6.50416283431 + 6.50530558844 + 6.50644854317 + 6.50759169855 + 6.5087350546 + 6.50987861137 + 6.51102236889 + 6.51216632719 + 6.51331048631 + 6.51445484628 + 6.51559940714 + 6.51674416893 + 6.51788913168 + 6.51903429542 + 6.52017966019 + 6.52132522603 + 6.52247099298 + 6.52361696105 + 6.5247631303 + 6.52590950076 + 6.52705607246 + 6.52820284543 + 6.52934981972 + 6.53049699536 + 6.53164437239 + 6.53279195083 + 6.53393973072 + 6.53508771211 + 6.53623589502 + 6.53738427949 + 6.53853286556 + 6.53968165326 + 6.54083064263 + 6.54197983369 + 6.5431292265 + 6.54427882108 + 6.54542861747 + 6.5465786157 + 6.54772881581 + 6.54887921784 + 6.55002982181 + 6.55118062777 + 6.55233163576 + 6.55348284579 + 6.55463425793 + 6.55578587218 + 6.55693768861 + 6.55808970723 + 6.55924192808 + 6.56039435121 + 6.56154697663 + 6.5626998044 + 6.56385283455 + 6.56500606711 + 6.56615950211 + 6.5673131396 + 6.5684669796 + 6.56962102216 + 6.57077526731 + 6.57192971508 + 6.57308436552 + 6.57423921865 + 6.57539427451 + 6.57654953314 + 6.57770499457 + 6.57886065884 + 6.58001652598 + 6.58117259603 + 6.58232886903 + 6.58348534501 + 6.58464202401 + 6.58579890605 + 6.58695599119 + 6.58811327945 + 6.58927077087 + 6.59042846548 + 6.59158636332 + 6.59274446443 + 6.59390276884 + 6.59506127659 + 6.59621998771 + 6.59737890224 + 6.59853802022 + 6.59969734167 + 6.60085686665 + 6.60201659517 + 6.60317652728 + 6.60433666301 + 6.60549700241 + 6.60665754549 + 6.60781829231 + 6.6089792429 + 6.61014039728 + 6.61130175551 + 6.6124633176 + 6.61362508361 + 6.61478705356 + 6.6159492275 + 6.61711160545 + 6.61827418745 + 6.61943697354 + 6.62059996375 + 6.62176315813 + 6.6229265567 + 6.6240901595 + 6.62525396657 + 6.62641797795 + 6.62758219366 + 6.62874661375 + 6.62991123825 + 6.63107606719 + 6.63224110062 + 6.63340633857 + 6.63457178107 + 6.63573742816 + 6.63690327988 + 6.63806933627 + 6.63923559735 + 6.64040206316 + 6.64156873374 + 6.64273560913 + 6.64390268937 + 6.64506997448 + 6.6462374645 + 6.64740515948 + 6.64857305944 + 6.64974116442 + 6.65090947446 + 6.65207798959 + 6.65324670986 + 6.65441563529 + 6.65558476592 + 6.65675410179 + 6.65792364294 + 6.65909338939 + 6.66026334119 + 6.66143349837 + 6.66260386097 + 6.66377442903 + 6.66494520257 + 6.66611618165 + 6.66728736628 + 6.66845875651 + 6.66963035238 + 6.67080215392 + 6.67197416116 + 6.67314637415 + 6.67431879292 + 6.6754914175 + 6.67666424793 + 6.67783728425 + 6.6790105265 + 6.6801839747 + 6.6813576289 + 6.68253148914 + 6.68370555544 + 6.68487982784 + 6.68605430639 + 6.68722899111 + 6.68840388205 + 6.68957897923 + 6.6907542827 + 6.69192979249 + 6.69310550864 + 6.69428143118 + 6.69545756016 + 6.6966338956 + 6.69781043754 + 6.69898718602 + 6.70016414108 + 6.70134130275 + 6.70251867107 + 6.70369624607 + 6.70487402779 + 6.70605201627 + 6.70723021154 + 6.70840861364 + 6.7095872226 + 6.71076603847 + 6.71194506128 + 6.71312429106 + 6.71430372785 + 6.71548337169 + 6.71666322261 + 6.71784328065 + 6.71902354585 + 6.72020401824 + 6.72138469786 + 6.72256558474 + 6.72374667893 + 6.72492798046 + 6.72610948936 + 6.72729120567 + 6.72847312942 + 6.72965526067 + 6.73083759943 + 6.73202014575 + 6.73320289966 + 6.7343858612 + 6.73556903041 + 6.73675240732 + 6.73793599196 + 6.73911978439 + 6.74030378462 + 6.74148799271 + 6.74267240868 + 6.74385703257 + 6.74504186441 + 6.74622690426 + 6.74741215213 + 6.74859760807 + 6.74978327211 + 6.7509691443 + 6.75215522466 + 6.75334151323 + 6.75452801006 + 6.75571471517 + 6.7569016286 + 6.7580887504 + 6.75927608059 + 6.76046361921 + 6.7616513663 + 6.7628393219 + 6.76402748604 + 6.76521585876 + 6.7664044401 + 6.76759323009 + 6.76878222877 + 6.76997143617 + 6.77116085234 + 6.77235047731 + 6.77354031111 + 6.77473035378 + 6.77592060536 + 6.77711106589 + 6.7783017354 + 6.77949261393 + 6.78068370152 + 6.7818749982 + 6.783066504 + 6.78425821898 + 6.78545014315 + 6.78664227657 + 6.78783461926 + 6.78902717126 + 6.79021993262 + 6.79141290336 + 6.79260608352 + 6.79379947314 + 6.79499307226 + 6.79618688091 + 6.79738089914 + 6.79857512697 + 6.79976956444 + 6.80096421159 + 6.80215906846 + 6.80335413509 + 6.80454941151 + 6.80574489775 + 6.80694059386 + 6.80813649987 + 6.80933261582 + 6.81052894174 + 6.81172547768 + 6.81292222366 + 6.81411917973 + 6.81531634593 + 6.81651372228 + 6.81771130883 + 6.81890910561 + 6.82010711267 + 6.82130533003 + 6.82250375773 + 6.82370239582 + 6.82490124432 + 6.82610030328 + 6.82729957273 + 6.82849905271 + 6.82969874325 + 6.8308986444 + 6.83209875618 + 6.83329907865 + 6.83449961182 + 6.83570035575 + 6.83690131047 + 6.83810247601 + 6.83930385241 + 6.84050543971 + 6.84170723794 + 6.84290924715 + 6.84411146737 + 6.84531389864 + 6.84651654099 + 6.84771939446 + 6.84892245908 + 6.85012573491 + 6.85132922196 + 6.85253292028 + 6.85373682992 + 6.85494095089 + 6.85614528324 + 6.85734982701 + 6.85855458224 + 6.85975954896 + 6.86096472721 + 6.86217011702 + 6.86337571844 + 6.86458153149 + 6.86578755623 + 6.86699379267 + 6.86820024088 + 6.86940690086 + 6.87061377268 + 6.87182085636 + 6.87302815194 + 6.87423565946 + 6.87544337895 + 6.87665131045 + 6.87785945401 + 6.87906780965 + 6.88027637741 + 6.88148515734 + 6.88269414946 + 6.88390335382 + 6.88511277045 + 6.88632239939 + 6.88753224068 + 6.88874229436 + 6.88995256045 + 6.89116303901 + 6.89237373006 + 6.89358463365 + 6.8947957498 + 6.89600707857 + 6.89721861998 + 6.89843037407 + 6.89964234089 + 6.90085452046 + 6.90206691283 + 6.90327951803 + 6.9044923361 + 6.90570536707 + 6.906918611 + 6.9081320679 + 6.90934573782 + 6.9105596208 + 6.91177371687 + 6.91298802608 + 6.91420254845 + 6.91541728403 + 6.91663223286 + 6.91784739496 + 6.91906277039 + 6.92027835917 + 6.92149416134 + 6.92271017695 + 6.92392640602 + 6.9251428486 + 6.92635950472 + 6.92757637443 + 6.92879345775 + 6.93001075473 + 6.9312282654 + 6.9324459898 + 6.93366392798 + 6.93488207995 + 6.93610044577 + 6.93731902548 + 6.9385378191 + 6.93975682667 + 6.94097604825 + 6.94219548385 + 6.94341513352 + 6.9446349973 + 6.94585507522 + 6.94707536732 + 6.94829587364 + 6.94951659422 + 6.9507375291 + 6.9519586783 + 6.95318004188 + 6.95440161986 + 6.95562341229 + 6.9568454192 + 6.95806764063 + 6.95929007662 + 6.9605127272 + 6.96173559242 + 6.96295867231 + 6.9641819669 + 6.96540547625 + 6.96662920038 + 6.96785313933 + 6.96907729313 + 6.97030166184 + 6.97152624548 + 6.97275104409 + 6.97397605772 + 6.97520128639 + 6.97642673015 + 6.97765238903 + 6.97887826307 + 6.98010435231 + 6.98133065679 + 6.98255717655 + 6.98378391161 + 6.98501086203 + 6.98623802783 + 6.98746540906 + 6.98869300576 + 6.98992081795 + 6.99114884569 + 6.992377089 + 6.99360554793 + 6.99483422251 + 6.99606311278 + 6.99729221878 + 6.99852154054 + 6.99975107811 + 7.00098083153 + 7.00221080082 + 7.00344098603 + 7.0046713872 + 7.00590200436 + 7.00713283755 + 7.00836388681 + 7.00959515218 + 7.0108266337 + 7.0120583314 + 7.01329024532 + 7.0145223755 + 7.01575472198 + 7.01698728479 + 7.01822006397 + 7.01945305957 + 7.02068627162 + 7.02191970015 + 7.02315334521 + 7.02438720683 + 7.02562128506 + 7.02685557992 + 7.02809009146 + 7.02932481972 + 7.03055976473 + 7.03179492653 + 7.03303030516 + 7.03426590066 + 7.03550171306 + 7.03673774241 + 7.03797398874 + 7.03921045209 + 7.0404471325 + 7.04168403 + 7.04292114464 + 7.04415847645 + 7.04539602548 + 7.04663379175 + 7.0478717753 + 7.04910997618 + 7.05034839443 + 7.05158703007 + 7.05282588316 + 7.05406495372 + 7.0553042418 + 7.05654374744 + 7.05778347066 + 7.05902341152 + 7.06026357004 + 7.06150394627 + 7.06274454025 + 7.063985352 + 7.06522638159 + 7.06646762902 + 7.06770909436 + 7.06895077764 + 7.07019267889 + 7.07143479815 + 7.07267713546 + 7.07391969086 + 7.07516246439 + 7.07640545608 + 7.07764866598 + 7.07889209412 + 7.08013574054 + 7.08137960529 + 7.08262368838 + 7.08386798988 + 7.08511250981 + 7.08635724821 + 7.08760220512 + 7.08884738058 + 7.09009277463 + 7.0913383873 + 7.09258421864 + 7.09383026868 + 7.09507653746 + 7.09632302502 + 7.0975697314 + 7.09881665663 + 7.10006380076 + 7.10131116382 + 7.10255874586 + 7.1038065469 + 7.10505456699 + 7.10630280617 + 7.10755126448 + 7.10879994195 + 7.11004883862 + 7.11129795453 + 7.11254728972 + 7.11379684423 + 7.11504661809 + 7.11629661135 + 7.11754682404 + 7.1187972562 + 7.12004790788 + 7.1212987791 + 7.12254986991 + 7.12380118035 + 7.12505271045 + 7.12630446025 + 7.1275564298 + 7.12880861912 + 7.13006102827 + 7.13131365727 + 7.13256650616 + 7.133819575 + 7.1350728638 + 7.13632637262 + 7.13758010149 + 7.13883405044 + 7.14008821952 + 7.14134260877 + 7.14259721823 + 7.14385204793 + 7.14510709791 + 7.14636236821 + 7.14761785887 + 7.14887356993 + 7.15012950143 + 7.1513856534 + 7.15264202589 + 7.15389861892 + 7.15515543256 + 7.15641246682 + 7.15766972175 + 7.15892719739 + 7.16018489377 + 7.16144281094 + 7.16270094894 + 7.1639593078 + 7.16521788756 + 7.16647668826 + 7.16773570994 + 7.16899495264 + 7.17025441639 + 7.17151410124 + 7.17277400723 + 7.17403413439 + 7.17529448276 + 7.17655505238 + 7.17781584329 + 7.17907685553 + 7.18033808914 + 7.18159954416 + 7.18286122062 + 7.18412311856 + 7.18538523803 + 7.18664757906 + 7.18791014169 + 7.18917292596 + 7.19043593191 + 7.19169915957 + 7.19296260899 + 7.19422628021 + 7.19549017326 + 7.19675428819 + 7.19801862503 + 7.19928318382 + 7.2005479646 + 7.2018129674 + 7.20307819228 + 7.20434363926 + 7.20560930839 + 7.20687519971 + 7.20814131325 + 7.20940764905 + 7.21067420715 + 7.2119409876 + 7.21320799042 + 7.21447521567 + 7.21574266337 + 7.21701033357 + 7.2182782263 + 7.21954634162 + 7.22081467954 + 7.22208324012 + 7.22335202339 + 7.2246210294 + 7.22589025817 + 7.22715970976 + 7.22842938419 + 7.22969928152 + 7.23096940176 + 7.23223974498 + 7.2335103112 + 7.23478110047 + 7.23605211282 + 7.23732334829 + 7.23859480693 + 7.23986648877 + 7.24113839384 + 7.2424105222 + 7.24368287388 + 7.24495544891 + 7.24622824734 + 7.24750126921 + 7.24877451456 + 7.25004798342 + 7.25132167583 + 7.25259559184 + 7.25386973148 + 7.25514409479 + 7.25641868181 + 7.25769349259 + 7.25896852715 + 7.26024378554 + 7.2615192678 + 7.26279497397 + 7.26407090409 + 7.26534705819 + 7.26662343632 + 7.26790003851 + 7.26917686481 + 7.27045391525 + 7.27173118988 + 7.27300868873 + 7.27428641183 + 7.27556435924 + 7.27684253099 + 7.27812092712 + 7.27939954767 + 7.28067839268 + 7.28195746219 + 7.28323675623 + 7.28451627485 + 7.28579601809 + 7.28707598598 + 7.28835617857 + 7.28963659589 + 7.29091723799 + 7.2921981049 + 7.29347919666 + 7.29476051332 + 7.2960420549 + 7.29732382146 + 7.29860581303 + 7.29988802965 + 7.30117047136 + 7.3024531382 + 7.30373603021 + 7.30501914743 + 7.30630248989 + 7.30758605765 + 7.30886985073 + 7.31015386917 + 7.31143811303 + 7.31272258232 + 7.31400727711 + 7.31529219742 + 7.31657734329 + 7.31786271477 + 7.31914831189 + 7.3204341347 + 7.32172018322 + 7.32300645752 + 7.32429295761 + 7.32557968354 + 7.32686663536 + 7.3281538131 + 7.3294412168 + 7.33072884649 + 7.33201670223 + 7.33330478405 + 7.33459309199 + 7.33588162609 + 7.33717038639 + 7.33845937292 + 7.33974858574 + 7.34103802487 + 7.34232769036 + 7.34361758224 + 7.34490770057 + 7.34619804537 + 7.34748861669 + 7.34877941456 + 7.35007043904 + 7.35136169014 + 7.35265316793 + 7.35394487243 + 7.35523680368 + 7.35652896173 + 7.35782134662 + 7.35911395838 + 7.36040679705 + 7.36169986268 + 7.36299315531 + 7.36428667497 + 7.3655804217 + 7.36687439555 + 7.36816859655 + 7.36946302474 + 7.37075768017 + 7.37205256287 + 7.37334767289 + 7.37464301025 + 7.37593857502 + 7.37723436721 + 7.37853038688 + 7.37982663406 + 7.38112310879 + 7.38241981112 + 7.38371674108 + 7.38501389871 + 7.38631128406 + 7.38760889716 + 7.38890673805 + 7.39020480677 + 7.39150310337 + 7.39280162788 + 7.39410038034 + 7.39539936079 + 7.39669856928 + 7.39799800584 + 7.39929767051 + 7.40059756334 + 7.40189768436 + 7.40319803361 + 7.40449861114 + 7.40579941698 + 7.40710045117 + 7.40840171375 + 7.40970320477 + 7.41100492426 + 7.41230687227 + 7.41360904883 + 7.41491145398 + 7.41621408777 + 7.41751695023 + 7.4188200414 + 7.42012336133 + 7.42142691006 + 7.42273068762 + 7.42403469405 + 7.4253389294 + 7.42664339371 + 7.42794808701 + 7.42925300934 + 7.43055816075 + 7.43186354128 + 7.43316915097 + 7.43447498985 + 7.43578105796 + 7.43708735536 + 7.43839388207 + 7.43970063814 + 7.44100762361 + 7.44231483851 + 7.44362228289 + 7.4449299568 + 7.44623786026 + 7.44754599332 + 7.44885435602 + 7.4501629484 + 7.4514717705 + 7.45278082236 + 7.45409010402 + 7.45539961552 + 7.4567093569 + 7.45801932821 + 7.45932952947 + 7.46063996074 + 7.46195062206 + 7.46326151345 + 7.46457263497 + 7.46588398666 + 7.46719556855 + 7.46850738068 + 7.4698194231 + 7.47113169585 + 7.47244419896 + 7.47375693247 + 7.47506989644 + 7.47638309089 + 7.47769651587 + 7.47901017142 + 7.48032405758 + 7.48163817439 + 7.48295252188 + 7.48426710011 + 7.48558190911 + 7.48689694892 + 7.48821221958 + 7.48952772114 + 7.49084345363 + 7.49215941709 + 7.49347561156 + 7.49479203709 + 7.49610869372 + 7.49742558148 + 7.49874270042 + 7.50006005057 + 7.50137763198 + 7.50269544469 + 7.50401348874 + 7.50533176417 + 7.50665027102 + 7.50796900933 + 7.50928797914 + 7.51060718049 + 7.51192661342 + 7.51324627798 + 7.5145661742 + 7.51588630213 + 7.5172066618 + 7.51852725326 + 7.51984807654 + 7.52116913169 + 7.52249041875 + 7.52381193776 + 7.52513368876 + 7.52645567178 + 7.52777788688 + 7.52910033409 + 7.53042301345 + 7.53174592501 + 7.5330690688 + 7.53439244486 + 7.53571605324 + 7.53703989397 + 7.53836396711 + 7.53968827268 + 7.54101281072 + 7.54233758129 + 7.54366258442 + 7.54498782015 + 7.54631328852 + 7.54763898957 + 7.54896492335 + 7.55029108989 + 7.55161748924 + 7.55294412143 + 7.55427098651 + 7.55559808452 + 7.55692541549 + 7.55825297948 + 7.55958077651 + 7.56090880664 + 7.5622370699 + 7.56356556634 + 7.56489429598 + 7.56622325889 + 7.56755245509 + 7.56888188462 + 7.57021154754 + 7.57154144387 + 7.57287157366 + 7.57420193696 + 7.57553253379 + 7.57686336421 + 7.57819442826 + 7.57952572597 + 7.58085725738 + 7.58218902254 + 7.58352102149 + 7.58485325427 + 7.58618572092 + 7.58751842148 + 7.58885135599 + 7.5901845245 + 7.59151792704 + 7.59285156365 + 7.59418543438 + 7.59551953927 + 7.59685387836 + 7.59818845169 + 7.5995232593 + 7.60085830123 + 7.60219357753 + 7.60352908823 + 7.60486483337 + 7.606200813 + 7.60753702716 + 7.60887347589 + 7.61021015923 + 7.61154707722 + 7.6128842299 + 7.61422161732 + 7.61555923951 + 7.61689709652 + 7.61823518839 + 7.61957351515 + 7.62091207686 + 7.62225087354 + 7.62358990525 + 7.62492917202 + 7.6262686739 + 7.62760841092 + 7.62894838313 + 7.63028859057 + 7.63162903328 + 7.6329697113 + 7.63431062467 + 7.63565177344 + 7.63699315764 + 7.63833477732 + 7.63967663252 + 7.64101872328 + 7.64236104963 + 7.64370361163 + 7.64504640932 + 7.64638944272 + 7.6477327119 + 7.64907621688 + 7.65041995771 + 7.65176393443 + 7.65310814708 + 7.65445259571 + 7.65579728035 + 7.65714220105 + 7.65848735784 + 7.65983275077 + 7.66117837989 + 7.66252424522 + 7.66387034682 + 7.66521668472 + 7.66656325897 + 7.66791006961 + 7.66925711668 + 7.67060440022 + 7.67195192027 + 7.67329967687 + 7.67464767007 + 7.6759958999 + 7.67734436642 + 7.67869306965 + 7.68004200965 + 7.68139118645 + 7.68274060009 + 7.68409025062 + 7.68544013808 + 7.6867902625 + 7.68814062394 + 7.68949122243 + 7.69084205802 + 7.69219313074 + 7.69354444063 + 7.69489598775 + 7.69624777213 + 7.69759979381 + 7.69895205283 + 7.70030454924 + 7.70165728308 + 7.70301025439 + 7.7043634632 + 7.70571690957 + 7.70707059354 + 7.70842451514 + 7.70977867441 + 7.71113307141 + 7.71248770617 + 7.71384257873 + 7.71519768913 + 7.71655303742 + 7.71790862364 + 7.71926444783 + 7.72062051003 + 7.72197681028 + 7.72333334863 + 7.72469012512 + 7.72604713978 + 7.72740439267 + 7.72876188382 + 7.73011961327 + 7.73147758107 + 7.73283578725 + 7.73419423187 + 7.73555291495 + 7.73691183655 + 7.73827099671 + 7.73963039546 + 7.74099003285 + 7.74234990893 + 7.74371002372 + 7.74507037728 + 7.74643096965 + 7.74779180087 + 7.74915287097 + 7.75051418001 + 7.75187572803 + 7.75323751506 + 7.75459954114 + 7.75596180633 + 7.75732431066 + 7.75868705418 + 7.76005003692 + 7.76141325893 + 7.76277672025 + 7.76414042092 + 7.76550436099 + 7.76686854049 + 7.76823295947 + 7.76959761797 + 7.77096251603 + 7.7723276537 + 7.77369303102 + 7.77505864802 + 7.77642450475 + 7.77779060126 + 7.77915693758 + 7.78052351376 + 7.78189032984 + 7.78325738586 + 7.78462468186 + 7.78599221789 + 7.78735999398 + 7.78872801018 + 7.79009626654 + 7.79146476309 + 7.79283349988 + 7.79420247694 + 7.79557169433 + 7.79694115208 + 7.79831085023 + 7.79968078883 + 7.80105096792 + 7.80242138754 + 7.80379204774 + 7.80516294855 + 7.80653409002 + 7.80790547219 + 7.8092770951 + 7.8106489588 + 7.81202106332 + 7.81339340871 + 7.81476599502 + 7.81613882228 + 7.81751189054 + 7.81888519983 + 7.82025875021 + 7.82163254171 + 7.82300657437 + 7.82438084825 + 7.82575536337 + 7.82713011979 + 7.82850511754 + 7.82988035667 + 7.83125583722 + 7.83263155923 + 7.83400752274 + 7.83538372781 + 7.83676017446 + 7.83813686274 + 7.8395137927 + 7.84089096437 + 7.84226837781 + 7.84364603304 + 7.84502393012 + 7.84640206909 + 7.84778044998 + 7.84915907285 + 7.85053793773 + 7.85191704466 + 7.8532963937 + 7.85467598488 + 7.85605581824 + 7.85743589382 + 7.85881621168 + 7.86019677184 + 7.86157757436 + 7.86295861928 + 7.86433990664 + 7.86572143647 + 7.86710320883 + 7.86848522376 + 7.8698674813 + 7.87124998149 + 7.87263272437 + 7.87401570999 + 7.8753989384 + 7.87678240962 + 7.87816612371 + 7.8795500807 + 7.88093428065 + 7.88231872359 + 7.88370340956 + 7.88508833861 + 7.88647351079 + 7.88785892612 + 7.88924458467 + 7.89063048646 + 7.89201663154 + 7.89340301996 + 7.89478965175 + 7.89617652697 + 7.89756364565 + 7.89895100783 + 7.90033861356 + 7.90172646288 + 7.90311455583 + 7.90450289246 + 7.90589147281 + 7.90728029693 + 7.90866936484 + 7.91005867661 + 7.91144823226 + 7.91283803185 + 7.91422807541 + 7.91561836299 + 7.91700889464 + 7.91839967038 + 7.91979069028 + 7.92118195436 + 7.92257346268 + 7.92396521527 + 7.92535721219 + 7.92674945346 + 7.92814193914 + 7.92953466927 + 7.93092764388 + 7.93232086303 + 7.93371432676 + 7.9351080351 + 7.93650198811 + 7.93789618582 + 7.93929062828 + 7.94068531553 + 7.94208024762 + 7.94347542458 + 7.94487084646 + 7.9462665133 + 7.94766242515 + 7.94905858205 + 7.95045498404 + 7.95185163117 + 7.95324852347 + 7.954645661 + 7.95604304378 + 7.95744067188 + 7.95883854533 + 7.96023666416 + 7.96163502844 + 7.96303363819 + 7.96443249347 + 7.96583159431 + 7.96723094077 + 7.96863053287 + 7.97003037067 + 7.9714304542 + 7.97283078352 + 7.97423135866 + 7.97563217967 + 7.97703324659 + 7.97843455947 + 7.97983611834 + 7.98123792325 + 7.98263997424 + 7.98404227136 + 7.98544481465 + 7.98684760416 + 7.98825063992 + 7.98965392198 + 7.99105745038 + 7.99246122517 + 7.99386524638 + 7.99526951407 + 7.99667402828 + 7.99807878904 + 7.99948379641 + 8.00088905042 + 8.00229455112 + 8.00370029855 + 8.00510629276 + 8.00651253379 + 8.00791902168 + 8.00932575647 + 8.01073273822 + 8.01213996695 + 8.01354744273 + 8.01495516558 + 8.01636313555 + 8.01777135269 + 8.01917981703 + 8.02058852863 + 8.02199748753 + 8.02340669376 + 8.02481614738 + 8.02622584842 + 8.02763579694 + 8.02904599296 + 8.03045643655 + 8.03186712773 + 8.03327806655 + 8.03468925307 + 8.03610068731 + 8.03751236933 + 8.03892429916 + 8.04033647685 + 8.04174890245 + 8.043161576 + 8.04457449754 + 8.04598766711 + 8.04740108476 + 8.04881475053 + 8.05022866447 + 8.05164282662 + 8.05305723702 + 8.05447189572 + 8.05588680275 + 8.05730195817 + 8.05871736202 + 8.06013301434 + 8.06154891517 + 8.06296506456 + 8.06438146255 + 8.06579810919 + 8.06721500451 + 8.06863214857 + 8.07004954141 + 8.07146718306 + 8.07288507358 + 8.074303213 + 8.07572160138 + 8.07714023874 + 8.07855912515 + 8.07997826064 + 8.08139764526 + 8.08281727904 + 8.08423716204 + 8.0856572943 + 8.08707767585 + 8.08849830675 + 8.08991918704 + 8.09134031676 + 8.09276169596 + 8.09418332467 + 8.09560520295 + 8.09702733084 + 8.09844970838 + 8.09987233561 + 8.10129521258 + 8.10271833934 + 8.10414171592 + 8.10556534237 + 8.10698921873 + 8.10841334505 + 8.10983772138 + 8.11126234775 + 8.11268722421 + 8.1141123508 + 8.11553772757 + 8.11696335456 + 8.11838923182 + 8.11981535939 + 8.1212417373 + 8.12266836562 + 8.12409524438 + 8.12552237362 + 8.12694975339 + 8.12837738374 + 8.1298052647 + 8.13123339632 + 8.13266177865 + 8.13409041173 + 8.1355192956 + 8.1369484303 + 8.13837781589 + 8.1398074524 + 8.14123733988 + 8.14266747838 + 8.14409786793 + 8.14552850859 + 8.14695940038 + 8.14839054337 + 8.1498219376 + 8.1512535831 + 8.15268547992 + 8.15411762811 + 8.1555500277 + 8.15698267875 + 8.1584155813 + 8.1598487354 + 8.16128214108 + 8.16271579839 + 8.16414970737 + 8.16558386808 + 8.16701828054 + 8.16845294482 + 8.16988786095 + 8.17132302897 + 8.17275844893 + 8.17419412088 + 8.17563004486 + 8.17706622091 + 8.17850264907 + 8.1799393294 + 8.18137626193 + 8.18281344672 + 8.18425088379 + 8.18568857321 + 8.18712651501 + 8.18856470923 + 8.19000315593 + 8.19144185515 + 8.19288080692 + 8.1943200113 + 8.19575946832 + 8.19719917804 + 8.1986391405 + 8.20007935574 + 8.2015198238 + 8.20296054474 + 8.20440151859 + 8.2058427454 + 8.20728422521 + 8.20872595807 + 8.21016794403 + 8.21161018312 + 8.21305267539 + 8.21449542089 + 8.21593841966 + 8.21738167175 + 8.21882517719 + 8.22026893604 + 8.22171294833 + 8.22315721412 + 8.22460173345 + 8.22604650636 + 8.22749153289 + 8.22893681309 + 8.23038234701 + 8.23182813469 + 8.23327417618 + 8.23472047151 + 8.23616702074 + 8.2376138239 + 8.23906088105 + 8.24050819223 + 8.24195575747 + 8.24340357684 + 8.24485165036 + 8.24629997809 + 8.24774856007 + 8.24919739635 + 8.25064648696 + 8.25209583196 + 8.25354543139 + 8.25499528529 + 8.25644539371 + 8.2578957567 + 8.25934637429 + 8.26079724653 + 8.26224837347 + 8.26369975515 + 8.26515139162 + 8.26660328292 + 8.2680554291 + 8.26950783019 + 8.27096048625 + 8.27241339733 + 8.27386656345 + 8.27531998468 + 8.27677366105 + 8.27822759261 + 8.2796817794 + 8.28113622148 + 8.28259091887 + 8.28404587164 + 8.28550107982 + 8.28695654346 + 8.2884122626 + 8.28986823728 + 8.29132446756 + 8.29278095348 + 8.29423769508 + 8.29569469241 + 8.29715194551 + 8.29860945443 + 8.30006721921 + 8.30152523989 + 8.30298351653 + 8.30444204917 + 8.30590083784 + 8.30735988261 + 8.3088191835 + 8.31027874058 + 8.31173855387 + 8.31319862343 + 8.3146589493 + 8.31611953153 + 8.31758037016 + 8.31904146524 + 8.32050281681 + 8.32196442491 + 8.3234262896 + 8.32488841091 + 8.3263507889 + 8.3278134236 + 8.32927631506 + 8.33073946333 + 8.33220286845 + 8.33366653047 + 8.33513044944 + 8.33659462539 + 8.33805905837 + 8.33952374843 + 8.34098869561 + 8.34245389996 + 8.34391936152 + 8.34538508035 + 8.34685105647 + 8.34831728994 + 8.34978378081 + 8.35125052912 + 8.3527175349 + 8.35418479822 + 8.35565231912 + 8.35712009763 + 8.35858813381 + 8.3600564277 + 8.36152497934 + 8.36299378878 + 8.36446285607 + 8.36593218125 + 8.36740176437 + 8.36887160547 + 8.37034170459 + 8.37181206179 + 8.37328267711 + 8.37475355059 + 8.37622468227 + 8.37769607221 + 8.37916772045 + 8.38063962704 + 8.38211179201 + 8.38358421542 + 8.38505689731 + 8.38652983772 + 8.3880030367 + 8.3894764943 + 8.39095021057 + 8.39242418554 + 8.39389841926 + 8.39537291178 + 8.39684766315 + 8.3983226734 + 8.39979794259 + 8.40127347075 + 8.40274925795 + 8.40422530421 + 8.40570160959 + 8.40717817413 + 8.40865499788 + 8.41013208088 + 8.41160942318 + 8.41308702483 + 8.41456488586 + 8.41604300633 + 8.41752138628 + 8.41900002575 + 8.4204789248 + 8.42195808346 + 8.42343750179 + 8.42491717982 + 8.42639711761 + 8.42787731519 + 8.42935777262 + 8.43083848995 + 8.43231946721 + 8.43380070445 + 8.43528220171 + 8.43676395906 + 8.43824597652 + 8.43972825414 + 8.44121079198 + 8.44269359007 + 8.44417664846 + 8.4456599672 + 8.44714354633 + 8.4486273859 + 8.45011148596 + 8.45159584654 + 8.4530804677 + 8.45456534949 + 8.45605049194 + 8.4575358951 + 8.45902155902 + 8.46050748375 + 8.46199366932 + 8.4634801158 + 8.46496682321 + 8.46645379162 + 8.46794102105 + 8.46942851157 + 8.47091626321 + 8.47240427602 + 8.47389255005 + 8.47538108534 + 8.47686988194 + 8.4783589399 + 8.47984825926 + 8.48133784006 + 8.48282768235 + 8.48431778619 + 8.4858081516 + 8.48729877865 + 8.48878966737 + 8.49028081781 + 8.49177223003 + 8.49326390405 + 8.49475583994 + 8.49624803773 + 8.49774049747 + 8.49923321921 + 8.500726203 + 8.50221944887 + 8.50371295688 + 8.50520672707 + 8.50670075949 + 8.50819505418 + 8.50968961119 + 8.51118443057 + 8.51267951236 + 8.5141748566 + 8.51567046336 + 8.51716633266 + 8.51866246455 + 8.52015885909 + 8.52165551632 + 8.52315243628 + 8.52464961903 + 8.5261470646 + 8.52764477304 + 8.5291427444 + 8.53064097873 + 8.53213947607 + 8.53363823646 + 8.53513725996 + 8.53663654661 + 8.53813609646 + 8.53963590954 + 8.54113598592 + 8.54263632563 + 8.54413692872 + 8.54563779524 + 8.54713892523 + 8.54864031874 + 8.55014197582 + 8.55164389651 + 8.55314608086 + 8.55464852891 + 8.55615124072 + 8.55765421632 + 8.55915745576 + 8.5606609591 + 8.56216472637 + 8.56366875762 + 8.56517305291 + 8.56667761226 + 8.56818243574 + 8.56968752339 + 8.57119287525 + 8.57269849138 + 8.57420437181 + 8.57571051659 + 8.57721692577 + 8.5787235994 + 8.58023053753 + 8.58173774019 + 8.58324520744 + 8.58475293932 + 8.58626093588 + 8.58776919716 + 8.58927772322 + 8.59078651409 + 8.59229556983 + 8.59380489047 + 8.59531447608 + 8.59682432669 + 8.59833444235 + 8.59984482311 + 8.60135546901 + 8.6028663801 + 8.60437755643 + 8.60588899804 + 8.60740070498 + 8.6089126773 + 8.61042491504 + 8.61193741825 + 8.61345018698 + 8.61496322127 + 8.61647652117 + 8.61799008672 + 8.61950391798 + 8.62101801499 + 8.62253237779 + 8.62404700643 + 8.62556190097 + 8.62707706144 + 8.62859248789 + 8.63010818037 + 8.63162413893 + 8.63314036361 + 8.63465685447 + 8.63617361153 + 8.63769063486 + 8.6392079245 + 8.6407254805 + 8.6422433029 + 8.64376139175 + 8.64527974709 + 8.64679836898 + 8.64831725746 + 8.64983641258 + 8.65135583438 + 8.65287552291 + 8.65439547822 + 8.65591570036 + 8.65743618936 + 8.65895694528 + 8.66047796817 + 8.66199925807 + 8.66352081503 + 8.66504263909 + 8.66656473031 + 8.66808708872 + 8.66960971439 + 8.67113260734 + 8.67265576764 + 8.67417919532 + 8.67570289043 + 8.67722685303 + 8.67875108316 + 8.68027558086 + 8.68180034618 + 8.68332537917 + 8.68485067987 + 8.68637624834 + 8.68790208462 + 8.68942818876 + 8.6909545608 + 8.69248120078 + 8.69400810877 + 8.69553528481 + 8.69706272893 + 8.69859044119 + 8.70011842164 + 8.70164667033 + 8.70317518729 + 8.70470397258 + 8.70623302624 + 8.70776234833 + 8.70929193889 + 8.71082179796 + 8.71235192559 + 8.71388232184 + 8.71541298674 + 8.71694392034 + 8.7184751227 + 8.72000659386 + 8.72153833386 + 8.72307034275 + 8.72460262059 + 8.72613516741 + 8.72766798327 + 8.72920106821 + 8.73073442228 + 8.73226804553 + 8.733801938 + 8.73533609974 + 8.7368705308 + 8.73840523122 + 8.73994020106 + 8.74147544036 + 8.74301094916 + 8.74454672752 + 8.74608277548 + 8.74761909309 + 8.7491556804 + 8.75069253745 + 8.7522296643 + 8.75376706098 + 8.75530472755 + 8.75684266405 + 8.75838087053 + 8.75991934704 + 8.76145809363 + 8.76299711034 + 8.76453639722 + 8.76607595432 + 8.76761578169 + 8.76915587936 + 8.7706962474 + 8.77223688585 + 8.77377779475 + 8.77531897415 + 8.7768604241 + 8.77840214465 + 8.77994413585 + 8.78148639774 + 8.78302893037 + 8.78457173379 + 8.78611480804 + 8.78765815317 + 8.78920176924 + 8.79074565628 + 8.79228981435 + 8.79383424349 + 8.79537894376 + 8.79692391519 + 8.79846915784 + 8.80001467175 + 8.80156045697 + 8.80310651355 + 8.80465284154 + 8.80619944098 + 8.80774631192 + 8.80929345441 + 8.8108408685 + 8.81238855423 + 8.81393651166 + 8.81548474083 + 8.81703324178 + 8.81858201457 + 8.82013105924 + 8.82168037585 + 8.82322996443 + 8.82477982504 + 8.82632995772 + 8.82788036253 + 8.8294310395 + 8.83098198869 + 8.83253321015 + 8.83408470392 + 8.83563647005 + 8.83718850859 + 8.83874081959 + 8.84029340309 + 8.84184625915 + 8.8433993878 + 8.8449527891 + 8.8465064631 + 8.84806040984 + 8.84961462937 + 8.85116912174 + 8.852723887 + 8.85427892519 + 8.85583423637 + 8.85738982058 + 8.85894567787 + 8.86050180828 + 8.86205821187 + 8.86361488868 + 8.86517183876 + 8.86672906216 + 8.86828655893 + 8.86984432911 + 8.87140237276 + 8.87296068991 + 8.87451928063 + 8.87607814495 + 8.87763728292 + 8.8791966946 + 8.88075638003 + 8.88231633926 + 8.88387657234 + 8.88543707931 + 8.88699786022 + 8.88855891513 + 8.89012024407 + 8.8916818471 + 8.89324372427 + 8.89480587562 + 8.8963683012 + 8.89793100107 + 8.89949397526 + 8.90105722382 + 8.90262074681 + 8.90418454428 + 8.90574861626 + 8.90731296282 + 8.90887758399 + 8.91044247982 + 8.91200765037 + 8.91357309568 + 8.91513881581 + 8.91670481079 + 8.91827108067 + 8.91983762551 + 8.92140444536 + 8.92297154025 + 8.92453891025 + 8.92610655539 + 8.92767447573 + 8.92924267131 + 8.93081114219 + 8.93237988841 + 8.93394891002 + 8.93551820706 + 8.93708777959 + 8.93865762766 + 8.94022775131 + 8.94179815059 + 8.94336882555 + 8.94493977624 + 8.9465110027 + 8.94808250499 + 8.94965428315 + 8.95122633724 + 8.95279866729 + 8.95437127337 + 8.95594415551 + 8.95751731376 + 8.95909074818 + 8.96066445881 + 8.96223844571 + 8.96381270891 + 8.96538724847 + 8.96696206444 + 8.96853715686 + 8.97011252579 + 8.97168817127 + 8.97326409335 + 8.97484029207 + 8.9764167675 + 8.97799351967 + 8.97957054864 + 8.98114785445 + 8.98272543715 + 8.9843032968 + 8.98588143343 + 8.9874598471 + 8.98903853786 + 8.99061750575 + 8.99219675083 + 8.99377627314 + 8.99535607273 + 8.99693614965 + 8.99851650395 + 9.00009713567 + 9.00167804488 + 9.0032592316 + 9.0048406959 + 9.00642243782 + 9.00800445742 + 9.00958675473 + 9.01116932981 + 9.01275218271 + 9.01433531347 + 9.01591872215 + 9.0175024088 + 9.01908637345 + 9.02067061617 + 9.02225513699 + 9.02383993598 + 9.02542501317 + 9.02701036862 + 9.02859600237 + 9.03018191448 + 9.03176810499 + 9.03335457395 + 9.03494132141 + 9.03652834743 + 9.03811565204 + 9.0397032353 + 9.04129109725 + 9.04287923795 + 9.04446765745 + 9.04605635578 + 9.04764533301 + 9.04923458918 + 9.05082412434 + 9.05241393854 + 9.05400403183 + 9.05559440425 + 9.05718505586 + 9.05877598671 + 9.06036719684 + 9.0619586863 + 9.06355045514 + 9.06514250342 + 9.06673483117 + 9.06832743846 + 9.06992032532 + 9.07151349181 + 9.07310693798 + 9.07470066387 + 9.07629466953 + 9.07788895503 + 9.07948352039 + 9.08107836567 + 9.08267349093 + 9.08426889621 + 9.08586458155 + 9.08746054702 + 9.08905679265 + 9.0906533185 + 9.09225012461 + 9.09384721104 + 9.09544457784 + 9.09704222505 + 9.09864015272 + 9.10023836091 + 9.10183684965 + 9.10343561901 + 9.10503466903 + 9.10663399975 + 9.10823361124 + 9.10983350353 + 9.11143367668 + 9.11303413073 + 9.11463486575 + 9.11623588176 + 9.11783717883 + 9.11943875701 + 9.12104061634 + 9.12264275687 + 9.12424517865 + 9.12584788173 + 9.12745086616 + 9.129054132 + 9.13065767928 + 9.13226150806 + 9.13386561839 + 9.13547001032 + 9.1370746839 + 9.13867963917 + 9.14028487618 + 9.141890395 + 9.14349619565 + 9.1451022782 + 9.1467086427 + 9.14831528919 + 9.14992221772 + 9.15152942834 + 9.15313692111 + 9.15474469607 + 9.15635275326 + 9.15796109275 + 9.15956971458 + 9.1611786188 + 9.16278780546 + 9.1643972746 + 9.16600702629 + 9.16761706056 + 9.16922737747 + 9.17083797706 + 9.1724488594 + 9.17406002452 + 9.17567147247 + 9.17728320332 + 9.17889521709 + 9.18050751385 + 9.18212009365 + 9.18373295653 + 9.18534610255 + 9.18695953175 + 9.18857324418 + 9.19018723989 + 9.19180151894 + 9.19341608137 + 9.19503092724 + 9.19664605658 + 9.19826146946 + 9.19987716592 + 9.20149314601 + 9.20310940978 + 9.20472595729 + 9.20634278857 + 9.20795990369 + 9.20957730268 + 9.21119498561 + 9.21281295251 + 9.21443120345 + 9.21604973847 + 9.21766855761 + 9.21928766094 + 9.22090704849 + 9.22252672033 + 9.22414667649 + 9.22576691704 + 9.22738744201 + 9.22900825146 + 9.23062934544 + 9.232250724 + 9.23387238719 + 9.23549433506 + 9.23711656765 + 9.23873908503 + 9.24036188724 + 9.24198497432 + 9.24360834633 + 9.24523200332 + 9.24685594534 + 9.24848017244 + 9.25010468467 + 9.25172948208 + 9.25335456471 + 9.25497993263 + 9.25660558587 + 9.2582315245 + 9.25985774855 + 9.26148425809 + 9.26311105315 + 9.26473813379 + 9.26636550007 + 9.26799315202 + 9.2696210897 + 9.27124931317 + 9.27287782246 + 9.27450661764 + 9.27613569874 + 9.27776506583 + 9.27939471895 + 9.28102465815 + 9.28265488348 + 9.284285395 + 9.28591619274 + 9.28754727677 + 9.28917864713 + 9.29081030388 + 9.29244224705 + 9.29407447672 + 9.29570699291 + 9.29733979569 + 9.2989728851 + 9.3006062612 + 9.30223992404 + 9.30387387366 + 9.30550811011 + 9.30714263345 + 9.30877744373 + 9.310412541 + 9.3120479253 + 9.31368359669 + 9.31531955522 + 9.31695580093 + 9.31859233389 + 9.32022915413 + 9.32186626171 + 9.32350365669 + 9.3251413391 + 9.32677930901 + 9.32841756646 + 9.3300561115 + 9.33169494418 + 9.33333406455 + 9.33497347267 + 9.33661316859 + 9.33825315234 + 9.339893424 + 9.34153398359 + 9.34317483119 + 9.34481596683 + 9.34645739057 + 9.34809910245 + 9.34974110254 + 9.35138339087 + 9.3530259675 + 9.35466883249 + 9.35631198587 + 9.35795542771 + 9.35959915804 + 9.36124317693 + 9.36288748443 + 9.36453208058 + 9.36617696543 + 9.36782213904 + 9.36946760145 + 9.37111335272 + 9.3727593929 + 9.37440572204 + 9.37605234019 + 9.37769924739 + 9.37934644371 + 9.38099392919 + 9.38264170388 + 9.38428976783 + 9.38593812109 + 9.38758676372 + 9.38923569577 + 9.39088491728 + 9.39253442831 + 9.39418422891 + 9.39583431912 + 9.397484699 + 9.39913536861 + 9.40078632798 + 9.40243757718 + 9.40408911625 + 9.40574094524 + 9.4073930642 + 9.4090454732 + 9.41069817227 + 9.41235116146 + 9.41400444084 + 9.41565801044 + 9.41731187032 + 9.41896602054 + 9.42062046113 + 9.42227519216 + 9.42393021367 + 9.42558552572 + 9.42724112836 + 9.42889702163 + 9.43055320559 + 9.43220968028 + 9.43386644577 + 9.4355235021 + 9.43718084932 + 9.43883848748 + 9.44049641664 + 9.44215463685 + 9.44381314815 + 9.44547195059 + 9.44713104424 + 9.44879042914 + 9.45045010533 + 9.45211007288 + 9.45377033184 + 9.45543088224 + 9.45709172415 + 9.45875285762 + 9.4604142827 + 9.46207599944 + 9.46373800788 + 9.46540030809 + 9.46706290011 + 9.46872578399 + 9.47038895979 + 9.47205242756 + 9.47371618734 + 9.47538023919 + 9.47704458317 + 9.47870921931 + 9.48037414768 + 9.48203936832 + 9.48370488128 + 9.48537068663 + 9.4870367844 + 9.48870317465 + 9.49036985743 + 9.49203683279 + 9.49370410078 + 9.49537166147 + 9.49703951488 + 9.49870766109 + 9.50037610013 + 9.50204483206 + 9.50371385694 + 9.50538317481 + 9.50705278572 + 9.50872268973 + 9.51039288689 + 9.51206337724 + 9.51373416085 + 9.51540523776 + 9.51707660802 + 9.51874827169 + 9.52042022881 + 9.52209247944 + 9.52376502363 + 9.52543786143 + 9.52711099289 + 9.52878441807 + 9.53045813702 + 9.53213214978 + 9.53380645641 + 9.53548105696 + 9.53715595148 + 9.53883114002 + 9.54050662264 + 9.54218239939 + 9.54385847032 + 9.54553483547 + 9.54721149491 + 9.54888844868 + 9.55056569684 + 9.55224323943 + 9.55392107651 + 9.55559920813 + 9.55727763435 + 9.5589563552 + 9.56063537076 + 9.56231468105 + 9.56399428615 + 9.5656741861 + 9.56735438095 + 9.56903487076 + 9.57071565557 + 9.57239673543 + 9.57407811041 + 9.57575978055 + 9.5774417459 + 9.57912400652 + 9.58080656245 + 9.58248941376 + 9.58417256048 + 9.58585600267 + 9.58753974039 + 9.58922377368 + 9.59090810261 + 9.59259272721 + 9.59427764754 + 9.59596286366 + 9.59764837561 + 9.59933418345 + 9.60102028723 + 9.60270668701 + 9.60439338282 + 9.60608037473 + 9.60776766279 + 9.60945524704 + 9.61114312755 + 9.61283130436 + 9.61451977753 + 9.6162085471 + 9.61789761313 + 9.61958697568 + 9.62127663478 + 9.62296659051 + 9.6246568429 + 9.62634739201 + 9.62803823789 + 9.62972938059 + 9.63142082017 + 9.63311255668 + 9.63480459017 + 9.63649692069 + 9.6381895483 + 9.63988247304 + 9.64157569497 + 9.64326921415 + 9.64496303061 + 9.64665714442 + 9.64835155563 + 9.65004626429 + 9.65174127045 + 9.65343657416 + 9.65513217548 + 9.65682807446 + 9.65852427115 + 9.66022076561 + 9.66191755787 + 9.66361464801 + 9.66531203607 + 9.66700972209 + 9.66870770615 + 9.67040598828 + 9.67210456853 + 9.67380344698 + 9.67550262365 + 9.67720209861 + 9.67890187191 + 9.6806019436 + 9.68230231373 + 9.68400298236 + 9.68570394954 + 9.68740521532 + 9.68910677975 + 9.69080864289 + 9.69251080478 + 9.69421326548 + 9.69591602505 + 9.69761908353 + 9.69932244098 + 9.70102609745 + 9.702730053 + 9.70443430767 + 9.70613886151 + 9.70784371459 + 9.70954886695 + 9.71125431864 + 9.71296006972 + 9.71466612025 + 9.71637247026 + 9.71807911982 + 9.71978606898 + 9.72149331779 + 9.7232008663 + 9.72490871457 + 9.72661686265 + 9.72832531059 + 9.73003405844 + 9.73174310626 + 9.7334524541 + 9.73516210201 + 9.73687205004 + 9.73858229825 + 9.74029284669 + 9.74200369542 + 9.74371484447 + 9.74542629392 + 9.74713804381 + 9.74885009419 + 9.75056244512 + 9.75227509664 + 9.75398804882 + 9.7557013017 + 9.75741485534 + 9.75912870979 + 9.7608428651 + 9.76255732133 + 9.76427207853 + 9.76598713675 + 9.76770249604 + 9.76941815646 + 9.77113411806 + 9.77285038089 + 9.77456694501 + 9.77628381047 + 9.77800097731 + 9.77971844561 + 9.7814362154 + 9.78315428674 + 9.78487265968 + 9.78659133428 + 9.78831031059 + 9.79002958866 + 9.79174916854 + 9.79346905029 + 9.79518923397 + 9.79690971962 + 9.79863050729 + 9.80035159705 + 9.80207298894 + 9.80379468301 + 9.80551667932 + 9.80723897793 + 9.80896157888 + 9.81068448223 + 9.81240768803 + 9.81413119633 + 9.8158550072 + 9.81757912067 + 9.81930353681 + 9.82102825566 + 9.82275327729 + 9.82447860173 + 9.82620422906 + 9.82793015931 + 9.82965639255 + 9.83138292882 + 9.83310976818 + 9.83483691069 + 9.83656435639 + 9.83829210533 + 9.84002015758 + 9.84174851319 + 9.8434771722 + 9.84520613468 + 9.84693540067 + 9.84866497023 + 9.85039484341 + 9.85212502027 + 9.85385550085 + 9.85558628522 + 9.85731737342 + 9.85904876551 + 9.86078046154 + 9.86251246156 + 9.86424476564 + 9.86597737381 + 9.86771028614 + 9.86944350268 + 9.87117702348 + 9.8729108486 + 9.87464497808 + 9.87637941199 + 9.87811415037 + 9.87984919329 + 9.88158454078 + 9.88332019291 + 9.88505614973 + 9.88679241129 + 9.88852897765 + 9.89026584886 + 9.89200302497 + 9.89374050604 + 9.89547829212 + 9.89721638326 + 9.89895477952 + 9.90069348096 + 9.90243248761 + 9.90417179955 + 9.90591141682 + 9.90765133947 + 9.90939156756 + 9.91113210115 + 9.91287294028 + 9.91461408501 + 9.91635553539 + 9.91809729148 + 9.91983935334 + 9.921581721 + 9.92332439454 + 9.925067374 + 9.92681065943 + 9.92855425089 + 9.93029814844 + 9.93204235212 + 9.933786862 + 9.93553167812 + 9.93727680053 + 9.9390222293 + 9.94076796447 + 9.94251400611 + 9.94426035425 + 9.94600700897 + 9.9477539703 + 9.94950123831 + 9.95124881305 + 9.95299669457 + 9.95474488293 + 9.95649337817 + 9.95824218036 + 9.95999128955 + 9.96174070579 + 9.96349042914 + 9.96524045964 + 9.96699079736 + 9.96874144235 + 9.97049239466 + 9.97224365434 + 9.97399522145 + 9.97574709605 + 9.97749927818 + 9.97925176791 + 9.98100456528 + 9.98275767034 + 9.98451108317 + 9.9862648038 + 9.98801883229 + 9.98977316869 + 9.99152781307 + 9.99328276547 + 9.99503802594 + 9.99679359455 + 9.99854947134 + 10.0003056564 + 10.0020621497 + 10.0038189514 + 10.0055760615 + 10.00733348 + 10.009091207 + 10.0108492426 + 10.0126075869 + 10.0143662398 + 10.0161252014 + 10.0178844718 + 10.0196440511 + 10.0214039392 + 10.0231641363 + 10.0249246423 + 10.0266854575 + 10.0284465817 + 10.0302080151 + 10.0319697577 + 10.0337318096 + 10.0354941708 + 10.0372568414 + 10.0390198214 + 10.0407831109 + 10.04254671 + 10.0443106186 + 10.0460748369 + 10.0478393649 + 10.0496042026 + 10.0513693502 + 10.0531348076 + 10.054900575 + 10.0566666523 + 10.0584330397 + 10.0601997371 + 10.0619667447 + 10.0637340625 + 10.0655016905 + 10.0672696288 + 10.0690378775 + 10.0708064366 + 10.0725753062 + 10.0743444863 + 10.0761139769 + 10.0778837782 + 10.0796538902 + 10.0814243129 + 10.0831950464 + 10.0849660908 + 10.086737446 + 10.0885091122 + 10.0902810895 + 10.0920533778 + 10.0938259772 + 10.0955988878 + 10.0973721096 + 10.0991456427 + 10.1009194871 + 10.102693643 + 10.1044681102 + 10.106242889 + 10.1080179794 + 10.1097933813 + 10.111569095 + 10.1133451203 + 10.1151214574 + 10.1168981064 + 10.1186750672 + 10.12045234 + 10.1222299248 + 10.1240078216 + 10.1257860306 + 10.1275645517 + 10.129343385 + 10.1311225306 + 10.1329019885 + 10.1346817587 + 10.1364618415 + 10.1382422367 + 10.1400229444 + 10.1418039648 + 10.1435852978 + 10.1453669435 + 10.147148902 + 10.1489311733 + 10.1507137574 + 10.1524966545 + 10.1542798646 + 10.1560633877 + 10.1578472239 + 10.1596313733 + 10.1614158359 + 10.1632006117 + 10.1649857008 + 10.1667711033 + 10.1685568192 + 10.1703428486 + 10.1721291916 + 10.1739158481 + 10.1757028183 + 10.1774901021 + 10.1792776997 + 10.1810656112 + 10.1828538365 + 10.1846423757 + 10.1864312288 + 10.1882203961 + 10.1900098773 + 10.1917996728 + 10.1935897824 + 10.1953802063 + 10.1971709445 + 10.198961997 + 10.200753364 + 10.2025450454 + 10.2043370413 + 10.2061293519 + 10.207921977 + 10.2097149169 + 10.2115081715 + 10.2133017409 + 10.2150956252 + 10.2168898243 + 10.2186843385 + 10.2204791676 + 10.2222743119 + 10.2240697713 + 10.2258655458 + 10.2276616356 + 10.2294580407 + 10.2312547612 + 10.2330517971 + 10.2348491484 + 10.2366468153 + 10.2384447977 + 10.2402430957 + 10.2420417095 + 10.243840639 + 10.2456398843 + 10.2474394454 + 10.2492393225 + 10.2510395155 + 10.2528400245 + 10.2546408496 + 10.2564419909 + 10.2582434483 + 10.260045222 + 10.2618473119 + 10.2636497182 + 10.265452441 + 10.2672554802 + 10.2690588359 + 10.2708625081 + 10.2726664971 + 10.2744708027 + 10.276275425 + 10.2780803641 + 10.2798856201 + 10.281691193 + 10.2834970829 + 10.2853032898 + 10.2871098137 + 10.2889166548 + 10.2907238131 + 10.2925312886 + 10.2943390814 + 10.2961471916 + 10.2979556191 + 10.2997643642 + 10.3015734267 + 10.3033828069 + 10.3051925046 + 10.3070025201 + 10.3088128533 + 10.3106235043 + 10.3124344732 + 10.3142457599 + 10.3160573647 + 10.3178692874 + 10.3196815283 + 10.3214940872 + 10.3233069644 + 10.3251201598 + 10.3269336735 + 10.3287475056 + 10.330561656 + 10.332376125 + 10.3341909125 + 10.3360060185 + 10.3378214432 + 10.3396371866 + 10.3414532487 + 10.3432696297 + 10.3450863295 + 10.3469033482 + 10.3487206859 + 10.3505383426 + 10.3523563184 + 10.3541746134 + 10.3559932275 + 10.3578121609 + 10.3596314136 + 10.3614509857 + 10.3632708772 + 10.3650910882 + 10.3669116187 + 10.3687324688 + 10.3705536385 + 10.3723751279 + 10.3741969371 + 10.3760190662 + 10.377841515 + 10.3796642839 + 10.3814873726 + 10.3833107815 + 10.3851345104 + 10.3869585595 + 10.3887829288 + 10.3906076183 + 10.3924326282 + 10.3942579584 + 10.3960836091 + 10.3979095803 + 10.399735872 + 10.4015624843 + 10.4033894173 + 10.4052166709 + 10.4070442454 + 10.4088721407 + 10.4107003568 + 10.4125288939 + 10.414357752 + 10.4161869312 + 10.4180164314 + 10.4198462529 + 10.4216763955 + 10.4235068594 + 10.4253376447 + 10.4271687513 + 10.4290001794 + 10.430831929 + 10.4326640001 + 10.4344963929 + 10.4363291073 + 10.4381621435 + 10.4399955014 + 10.4418291812 + 10.4436631829 + 10.4454975065 + 10.4473321522 + 10.4491671199 + 10.4510024098 + 10.4528380218 + 10.454673956 + 10.4565102126 + 10.4583467915 + 10.4601836928 + 10.4620209166 + 10.4638584629 + 10.4656963318 + 10.4675345233 + 10.4693730375 + 10.4712118744 + 10.4730510342 + 10.4748905168 + 10.4767303223 + 10.4785704508 + 10.4804109023 + 10.4822516769 + 10.4840927747 + 10.4859341956 + 10.4877759398 + 10.4896180074 + 10.4914603983 + 10.4933031126 + 10.4951461504 + 10.4969895117 + 10.4988331967 + 10.5006772053 + 10.5025215376 + 10.5043661937 + 10.5062111736 + 10.5080564774 + 10.5099021051 + 10.5117480568 + 10.5135943326 + 10.5154409325 + 10.5172878565 + 10.5191351048 + 10.5209826773 + 10.5228305742 + 10.5246787955 + 10.5265273412 + 10.5283762115 + 10.5302254063 + 10.5320749257 + 10.5339247698 + 10.5357749387 + 10.5376254323 + 10.5394762508 + 10.5413273942 + 10.5431788625 + 10.5450306559 + 10.5468827743 + 10.5487352179 + 10.5505879867 + 10.5524410807 + 10.5542945001 + 10.5561482447 + 10.5580023149 + 10.5598567105 + 10.5617114316 + 10.5635664783 + 10.5654218507 + 10.5672775487 + 10.5691335726 + 10.5709899222 + 10.5728465978 + 10.5747035992 + 10.5765609267 + 10.5784185802 + 10.5802765598 + 10.5821348656 + 10.5839934976 + 10.5858524559 + 10.5877117405 + 10.5895713515 + 10.591431289 + 10.5932915529 + 10.5951521435 + 10.5970130606 + 10.5988743045 + 10.600735875 + 10.6025977724 + 10.6044599966 + 10.6063225477 + 10.6081854258 + 10.6100486309 + 10.6119121631 + 10.6137760225 + 10.615640209 + 10.6175047228 + 10.6193695639 + 10.6212347323 + 10.6231002282 + 10.6249660516 + 10.6268322025 + 10.628698681 + 10.6305654872 + 10.632432621 + 10.6343000827 + 10.6361678722 + 10.6380359895 + 10.6399044348 + 10.6417732081 + 10.6436423095 + 10.645511739 + 10.6473814966 + 10.6492515825 + 10.6511219967 + 10.6529927392 + 10.6548638102 + 10.6567352095 + 10.6586069375 + 10.6604789939 + 10.6623513791 + 10.6642240929 + 10.6660971354 + 10.6679705068 + 10.669844207 + 10.6717182362 + 10.6735925943 + 10.6754672815 + 10.6773422978 + 10.6792176432 + 10.6810933179 + 10.6829693218 + 10.684845655 + 10.6867223176 + 10.6885993097 + 10.6904766313 + 10.6923542824 + 10.6942322632 + 10.6961105736 + 10.6979892137 + 10.6998681837 + 10.7017474835 + 10.7036271132 + 10.7055070728 + 10.7073873625 + 10.7092679823 + 10.7111489322 + 10.7130302123 + 10.7149118227 + 10.7167937633 + 10.7186760344 + 10.7205586358 + 10.7224415678 + 10.7243248303 + 10.7262084234 + 10.7280923471 + 10.7299766016 + 10.7318611869 + 10.733746103 + 10.7356313499 + 10.7375169279 + 10.7394028368 + 10.7412890768 + 10.7431756479 + 10.7450625502 + 10.7469497838 + 10.7488373487 + 10.7507252449 + 10.7526134725 + 10.7545020316 + 10.7563909222 + 10.7582801444 + 10.7601696983 + 10.7620595839 + 10.7639498012 + 10.7658403504 + 10.7677312314 + 10.7696224444 + 10.7715139894 + 10.7734058664 + 10.7752980756 + 10.7771906169 + 10.7790834905 + 10.7809766963 + 10.7828702345 + 10.7847641051 + 10.7866583082 + 10.7885528437 + 10.7904477119 + 10.7923429127 + 10.7942384462 + 10.7961343125 + 10.7980305116 + 10.7999270435 + 10.8018239084 + 10.8037211063 + 10.8056186372 + 10.8075165012 + 10.8094146984 + 10.8113132288 + 10.8132120925 + 10.8151112895 + 10.81701082 + 10.8189106839 + 10.8208108813 + 10.8227114122 + 10.8246122769 + 10.8265134752 + 10.8284150072 + 10.8303168731 + 10.8322190728 + 10.8341216065 + 10.8360244742 + 10.8379276759 + 10.8398312117 + 10.8417350816 + 10.8436392858 + 10.8455438242 + 10.847448697 + 10.8493539042 + 10.8512594459 + 10.853165322 + 10.8550715327 + 10.8569780781 + 10.8588849581 + 10.8607921729 + 10.8626997225 + 10.864607607 + 10.8665158264 + 10.8684243808 + 10.8703332702 + 10.8722424947 + 10.8741520544 + 10.8760619493 + 10.8779721795 + 10.879882745 + 10.8817936459 + 10.8837048822 + 10.8856164541 + 10.8875283615 + 10.8894406046 + 10.8913531834 + 10.8932660979 + 10.8951793482 + 10.8970929344 + 10.8990068565 + 10.9009211146 + 10.9028357087 + 10.904750639 + 10.9066659054 + 10.908581508 + 10.9104974469 + 10.9124137221 + 10.9143303338 + 10.9162472819 + 10.9181645665 + 10.9200821876 + 10.9220001455 + 10.92391844 + 10.9258370712 + 10.9277560393 + 10.9296753442 + 10.9315949861 + 10.933514965 + 10.9354352809 + 10.9373559339 + 10.9392769241 + 10.9411982515 + 10.9431199162 + 10.9450419182 + 10.9469642576 + 10.9488869345 + 10.950809949 + 10.952733301 + 10.9546569906 + 10.9565810179 + 10.958505383 + 10.9604300859 + 10.9623551267 + 10.9642805055 + 10.9662062222 + 10.968132277 + 10.9700586698 + 10.9719854009 + 10.9739124702 + 10.9758398778 + 10.9777676237 + 10.9796957081 + 10.9816241309 + 10.9835528923 + 10.9854819922 + 10.9874114308 + 10.9893412081 + 10.9912713242 + 10.993201779 + 10.9951325728 + 10.9970637056 + 10.9989951773 + 11.0009269881 + 11.002859138 + 11.0047916271 + 11.0067244555 + 11.0086576231 + 11.0105911301 + 11.0125249766 + 11.0144591625 + 11.0163936879 + 11.018328553 + 11.0202637577 + 11.0221993022 + 11.0241351864 + 11.0260714104 + 11.0280079744 + 11.0299448783 + 11.0318821223 + 11.0338197063 + 11.0357576304 + 11.0376958948 + 11.0396344994 + 11.0415734443 + 11.0435127296 + 11.0454523554 + 11.0473923216 + 11.0493326284 + 11.0512732758 + 11.0532142639 + 11.0551555927 + 11.0570972624 + 11.0590392728 + 11.0609816242 + 11.0629243166 + 11.06486735 + 11.0668107245 + 11.0687544401 + 11.070698497 + 11.0726428951 + 11.0745876346 + 11.0765327154 + 11.0784781378 + 11.0804239016 + 11.082370007 + 11.084316454 + 11.0862632428 + 11.0882103733 + 11.0901578456 + 11.0921056597 + 11.0940538159 + 11.096002314 + 11.0979511541 + 11.0999003364 + 11.1018498608 + 11.1037997275 + 11.1057499365 + 11.1077004878 + 11.1096513816 + 11.1116026178 + 11.1135541965 + 11.1155061179 + 11.1174583819 + 11.1194109886 + 11.1213639381 + 11.1233172304 + 11.1252708656 + 11.1272248438 + 11.129179165 + 11.1311338293 + 11.1330888367 + 11.1350441873 + 11.1369998812 + 11.1389559184 + 11.1409122989 + 11.1428690229 + 11.1448260904 + 11.1467835014 + 11.1487412561 + 11.1506993545 + 11.1526577966 + 11.1546165824 + 11.1565757122 + 11.1585351859 + 11.1604950035 + 11.1624551652 + 11.164415671 + 11.1663765209 + 11.1683377151 + 11.1702992536 + 11.1722611364 + 11.1742233636 + 11.1761859353 + 11.1781488514 + 11.1801121122 + 11.1820757177 + 11.1840396678 + 11.1860039627 + 11.1879686024 + 11.189933587 + 11.1918989166 + 11.1938645911 + 11.1958306108 + 11.1977969756 + 11.1997636855 + 11.2017307407 + 11.2036981412 + 11.2056658871 + 11.2076339785 + 11.2096024153 + 11.2115711977 + 11.2135403256 + 11.2155097993 + 11.2174796187 + 11.2194497839 + 11.221420295 + 11.2233911519 + 11.2253623549 + 11.2273339039 + 11.229305799 + 11.2312780402 + 11.2332506277 + 11.2352235615 + 11.2371968416 + 11.2391704681 + 11.2411444411 + 11.2431187606 + 11.2450934266 + 11.2470684394 + 11.2490437988 + 11.251019505 + 11.2529955581 + 11.254971958 + 11.2569487049 + 11.2589257988 + 11.2609032398 + 11.2628810279 + 11.2648591632 + 11.2668376457 + 11.2688164756 + 11.2707956529 + 11.2727751775 + 11.2747550497 + 11.2767352695 + 11.2787158369 + 11.2806967519 + 11.2826780148 + 11.2846596254 + 11.2866415839 + 11.2886238903 + 11.2906065447 + 11.2925895471 + 11.2945728977 + 11.2965565964 + 11.2985406434 + 11.3005250386 + 11.3025097822 + 11.3044948743 + 11.3064803148 + 11.3084661038 + 11.3104522415 + 11.3124387278 + 11.3144255628 + 11.3164127466 + 11.3184002793 + 11.3203881609 + 11.3223763914 + 11.324364971 + 11.3263538996 + 11.3283431774 + 11.3303328045 + 11.3323227808 + 11.3343131064 + 11.3363037814 + 11.3382948059 + 11.3402861799 + 11.3422779035 + 11.3442699767 + 11.3462623996 + 11.3482551723 + 11.3502482949 + 11.3522417673 + 11.3542355896 + 11.356229762 + 11.3582242844 + 11.360219157 + 11.3622143798 + 11.3642099528 + 11.3662058762 + 11.3682021499 + 11.370198774 + 11.3721957487 + 11.3741930739 + 11.3761907498 + 11.3781887763 + 11.3801871536 + 11.3821858817 + 11.3841849607 + 11.3861843906 + 11.3881841715 + 11.3901843035 + 11.3921847866 + 11.3941856208 + 11.3961868063 + 11.3981883431 + 11.4001902313 + 11.4021924709 + 11.404195062 + 11.4061980046 + 11.4082012988 + 11.4102049447 + 11.4122089424 + 11.4142132918 + 11.4162179931 + 11.4182230464 + 11.4202284516 + 11.4222342088 + 11.4242403182 + 11.4262467797 + 11.4282535935 + 11.4302607595 + 11.4322682779 + 11.4342761487 + 11.436284372 + 11.4382929479 + 11.4403018763 + 11.4423111574 + 11.4443207912 + 11.4463307778 + 11.4483411173 + 11.4503518096 + 11.4523628549 + 11.4543742533 + 11.4563860048 + 11.4583981094 + 11.4604105672 + 11.4624233784 + 11.4644365428 + 11.4664500607 + 11.468463932 + 11.4704781569 + 11.4724927354 + 11.4745076675 + 11.4765229533 + 11.4785385929 + 11.4805545864 + 11.4825709338 + 11.4845876351 + 11.4866046904 + 11.4886220999 + 11.4906398634 + 11.4926579813 + 11.4946764533 + 11.4966952797 + 11.4987144606 + 11.5007339958 + 11.5027538856 + 11.50477413 + 11.5067947291 + 11.5088156828 + 11.5108369913 + 11.5128586547 + 11.5148806729 + 11.5169030462 + 11.5189257744 + 11.5209488577 + 11.5229722962 + 11.5249960899 + 11.5270202388 + 11.5290447431 + 11.5310696028 + 11.5330948179 + 11.5351203886 + 11.5371463148 + 11.5391725967 + 11.5411992343 + 11.5432262277 + 11.5452535769 + 11.547281282 + 11.5493093431 + 11.5513377602 + 11.5533665333 + 11.5553956626 + 11.5574251482 + 11.55945499 + 11.5614851881 + 11.5635157426 + 11.5655466536 + 11.5675779211 + 11.5696095452 + 11.5716415259 + 11.5736738634 + 11.5757065576 + 11.5777396086 + 11.5797730166 + 11.5818067815 + 11.5838409034 + 11.5858753824 + 11.5879102186 + 11.5899454119 + 11.5919809626 + 11.5940168706 + 11.5960531359 + 11.5980897588 + 11.6001267391 + 11.6021640771 + 11.6042017727 + 11.606239826 + 11.6082782371 + 11.610317006 + 11.6123561328 + 11.6143956176 + 11.6164354605 + 11.6184756614 + 11.6205162204 + 11.6225571377 + 11.6245984132 + 11.6266400471 + 11.6286820394 + 11.6307243902 + 11.6327670995 + 11.6348101674 + 11.6368535939 + 11.6388973792 + 11.6409415232 + 11.6429860261 + 11.6450308879 + 11.6470761087 + 11.6491216885 + 11.6511676273 + 11.6532139254 + 11.6552605827 + 11.6573075992 + 11.6593549751 + 11.6614027105 + 11.6634508053 + 11.6654992596 + 11.6675480735 + 11.6695972471 + 11.6716467805 + 11.6736966736 + 11.6757469265 + 11.6777975394 + 11.6798485123 + 11.6818998452 + 11.6839515382 + 11.6860035914 + 11.6880560048 + 11.6901087785 + 11.6921619126 + 11.6942154071 + 11.6962692621 + 11.6983234776 + 11.7003780538 + 11.7024329906 + 11.7044882882 + 11.7065439465 + 11.7085999657 + 11.7106563459 + 11.7127130871 + 11.7147701893 + 11.7168276526 + 11.7188854771 + 11.7209436628 + 11.7230022099 + 11.7250611183 + 11.7271203882 + 11.7291800196 + 11.7312400125 + 11.7333003671 + 11.7353610833 + 11.7374221613 + 11.7394836012 + 11.7415454029 + 11.7436075665 + 11.7456700922 + 11.7477329799 + 11.7497962297 + 11.7518598418 + 11.7539238161 + 11.7559881528 + 11.7580528518 + 11.7601179133 + 11.7621833373 + 11.7642491239 + 11.7663152731 + 11.768381785 + 11.7704486598 + 11.7725158973 + 11.7745834977 + 11.7766514611 + 11.7787197876 + 11.7807884771 + 11.7828575298 + 11.7849269456 + 11.7869967248 + 11.7890668673 + 11.7911373732 + 11.7932082426 + 11.7952794756 + 11.7973510721 + 11.7994230323 + 11.8014953562 + 11.8035680439 + 11.8056410955 + 11.807714511 + 11.8097882904 + 11.811862434 + 11.8139369416 + 11.8160118134 + 11.8180870494 + 11.8201626498 + 11.8222386145 + 11.8243149436 + 11.8263916373 + 11.8284686955 + 11.8305461183 + 11.8326239058 + 11.834702058 + 11.8367805751 + 11.838859457 + 11.8409387039 + 11.8430183158 + 11.8450982928 + 11.8471786349 + 11.8492593422 + 11.8513404147 + 11.8534218526 + 11.8555036559 + 11.8575858246 + 11.8596683589 + 11.8617512587 + 11.8638345242 + 11.8659181554 + 11.8680021524 + 11.8700865152 + 11.8721712439 + 11.8742563386 + 11.8763417993 + 11.8784276262 + 11.8805138191 + 11.8826003783 + 11.8846873038 + 11.8867745957 + 11.888862254 + 11.8909502787 + 11.89303867 + 11.8951274279 + 11.8972165525 + 11.8993060439 + 11.901395902 + 11.903486127 + 11.9055767189 + 11.9076676779 + 11.9097590039 + 11.911850697 + 11.9139427573 + 11.9160351849 + 11.9181279798 + 11.9202211421 + 11.9223146718 + 11.924408569 + 11.9265028339 + 11.9285974663 + 11.9306924665 + 11.9327878344 + 11.9348835702 + 11.9369796739 + 11.9390761456 + 11.9411729852 + 11.943270193 + 11.9453677689 + 11.9474657131 + 11.9495640255 + 11.9516627063 + 11.9537617556 + 11.9558611733 + 11.9579609595 + 11.9600611144 + 11.9621616379 + 11.9642625302 + 11.9663637913 + 11.9684654212 + 11.9705674201 + 11.972669788 + 11.974772525 + 11.9768756311 + 11.9789791064 + 11.9810829509 + 11.9831871648 + 11.985291748 + 11.9873967007 + 11.989502023 + 11.9916077148 + 11.9937137763 + 11.9958202074 + 11.9979270084 + 12.0000341792 + 12.0021417199 + 12.0042496306 + 12.0063579113 + 12.0084665621 + 12.0105755831 + 12.0126849744 + 12.0147947359 + 12.0169048678 + 12.0190153701 + 12.0211262429 + 12.0232374863 + 12.0253491003 + 12.0274610849 + 12.0295734404 + 12.0316861666 + 12.0337992638 + 12.0359127319 + 12.038026571 + 12.0401407811 + 12.0422553625 + 12.044370315 + 12.0464856388 + 12.048601334 + 12.0507174005 + 12.0528338385 + 12.0549506481 + 12.0570678293 + 12.0591853821 + 12.0613033066 + 12.063421603 + 12.0655402712 + 12.0676593114 + 12.0697787235 + 12.0718985077 + 12.074018664 + 12.0761391925 + 12.0782600933 + 12.0803813663 + 12.0825030118 + 12.0846250297 + 12.0867474201 + 12.0888701831 + 12.0909933188 + 12.0931168271 + 12.0952407083 + 12.0973649623 + 12.0994895891 + 12.101614589 + 12.1037399619 + 12.1058657079 + 12.1079918271 + 12.1101183195 + 12.1122451852 + 12.1143724243 + 12.1165000368 + 12.1186280228 + 12.1207563823 + 12.1228851155 + 12.1250142224 + 12.1271437031 + 12.1292735575 + 12.1314037859 + 12.1335343882 + 12.1356653646 + 12.137796715 + 12.1399284396 + 12.1420605384 + 12.1441930115 + 12.1463258589 + 12.1484590807 + 12.1505926771 + 12.152726648 + 12.1548609935 + 12.1569957136 + 12.1591308085 + 12.1612662783 + 12.1634021229 + 12.1655383424 + 12.167674937 + 12.1698119066 + 12.1719492514 + 12.1740869714 + 12.1762250666 + 12.1783635372 + 12.1805023832 + 12.1826416046 + 12.1847812016 + 12.1869211742 + 12.1890615225 + 12.1912022465 + 12.1933433463 + 12.1954848219 + 12.1976266735 + 12.1997689011 + 12.2019115047 + 12.2040544845 + 12.2061978405 + 12.2083415727 + 12.2104856812 + 12.2126301662 + 12.2147750276 + 12.2169202655 + 12.2190658801 + 12.2212118712 + 12.2233582392 + 12.2255049838 + 12.2276521054 + 12.2297996039 + 12.2319474793 + 12.2340957318 + 12.2362443615 + 12.2383933683 + 12.2405427524 + 12.2426925138 + 12.2448426526 + 12.2469931688 + 12.2491440625 + 12.2512953339 + 12.2534469828 + 12.2555990095 + 12.257751414 + 12.2599041964 + 12.2620573566 + 12.2642108948 + 12.2663648111 + 12.2685191055 + 12.2706737781 + 12.2728288289 + 12.274984258 + 12.2771400655 + 12.2792962515 + 12.281452816 + 12.283609759 + 12.2857670807 + 12.2879247811 + 12.2900828603 + 12.2922413184 + 12.2944001553 + 12.2965593713 + 12.2987189662 + 12.3008789403 + 12.3030392936 + 12.3052000261 + 12.3073611379 + 12.3095226291 + 12.3116844997 + 12.3138467499 + 12.3160093796 + 12.318172389 + 12.3203357781 + 12.3224995469 + 12.3246636956 + 12.3268282243 + 12.3289931328 + 12.3311584215 + 12.3333240902 + 12.3354901392 + 12.3376565683 + 12.3398233778 + 12.3419905677 + 12.344158138 + 12.3463260888 + 12.3484944202 + 12.3506631322 + 12.352832225 + 12.3550016985 + 12.3571715529 + 12.3593417882 + 12.3615124045 + 12.3636834018 + 12.3658547802 + 12.3680265398 + 12.3701986807 + 12.3723712028 + 12.3745441064 + 12.3767173914 + 12.3788910579 + 12.381065106 + 12.3832395357 + 12.3854143472 + 12.3875895405 + 12.3897651155 + 12.3919410726 + 12.3941174115 + 12.3962941326 + 12.3984712358 + 12.4006487211 + 12.4028265887 + 12.4050048386 + 12.4071834709 + 12.4093624857 + 12.411541883 + 12.4137216628 + 12.4159018254 + 12.4180823706 + 12.4202632986 + 12.4224446095 + 12.4246263033 + 12.4268083801 + 12.42899084 + 12.431173683 + 12.4333569092 + 12.4355405186 + 12.4377245114 + 12.4399088875 + 12.4420936472 + 12.4442787903 + 12.4464643171 + 12.4486502275 + 12.4508365216 + 12.4530231996 + 12.4552102614 + 12.4573977071 + 12.4595855369 + 12.4617737507 + 12.4639623486 + 12.4661513308 + 12.4683406972 + 12.4705304479 + 12.4727205831 + 12.4749111027 + 12.4771020069 + 12.4792932957 + 12.4814849692 + 12.4836770274 + 12.4858694704 + 12.4880622983 + 12.4902555111 + 12.492449109 + 12.4946430919 + 12.49683746 + 12.4990322133 + 12.5012273518 + 12.5034228758 + 12.5056187851 + 12.5078150799 + 12.5100117603 + 12.5122088263 + 12.514406278 + 12.5166041155 + 12.5188023388 + 12.521000948 + 12.5231999431 + 12.5253993243 + 12.5275990915 + 12.5297992449 + 12.5319997846 + 12.5342007105 + 12.5364020229 + 12.5386037216 + 12.5408058069 + 12.5430082787 + 12.5452111372 + 12.5474143823 + 12.5496180143 + 12.5518220331 + 12.5540264388 + 12.5562312315 + 12.5584364112 + 12.560641978 + 12.562847932 + 12.5650542733 + 12.5672610019 + 12.5694681179 + 12.5716756213 + 12.5738835122 + 12.5760917908 + 12.578300457 + 12.5805095109 + 12.5827189526 + 12.5849287822 + 12.5871389997 + 12.5893496052 + 12.5915605988 + 12.5937719805 + 12.5959837504 + 12.5981959086 + 12.6004084551 + 12.60262139 + 12.6048347134 + 12.6070484253 + 12.6092625259 + 12.6114770151 + 12.6136918931 + 12.6159071599 + 12.6181228156 + 12.6203388602 + 12.6225552939 + 12.6247721167 + 12.6269893286 + 12.6292069297 + 12.6314249201 + 12.6336432999 + 12.6358620691 + 12.6380812278 + 12.6403007761 + 12.6425207141 + 12.6447410417 + 12.6469617591 + 12.6491828663 + 12.6514043635 + 12.6536262506 + 12.6558485278 + 12.6580711951 + 12.6602942526 + 12.6625177003 + 12.6647415383 + 12.6669657668 + 12.6691903857 + 12.6714153951 + 12.6736407951 + 12.6758665858 + 12.6780927672 + 12.6803193394 + 12.6825463025 + 12.6847736565 + 12.6870014015 + 12.6892295376 + 12.6914580649 + 12.6936869834 + 12.6959162931 + 12.6981459942 + 12.7003760867 + 12.7026065707 + 12.7048374462 + 12.7070687134 + 12.7093003723 + 12.7115324229 + 12.7137648654 + 12.7159976997 + 12.7182309261 + 12.7204645444 + 12.7226985549 + 12.7249329576 + 12.7271677525 + 12.7294029397 + 12.7316385192 + 12.7338744913 + 12.7361108558 + 12.738347613 + 12.7405847628 + 12.7428223053 + 12.7450602406 + 12.7472985688 + 12.7495372899 + 12.7517764041 + 12.7540159113 + 12.7562558116 + 12.7584961051 + 12.760736792 + 12.7629778721 + 12.7652193457 + 12.7674612128 + 12.7697034734 + 12.7719461276 + 12.7741891756 + 12.7764326173 + 12.7786764528 + 12.7809206822 + 12.7831653056 + 12.7854103231 + 12.7876557346 + 12.7899015403 + 12.7921477403 + 12.7943943346 + 12.7966413233 + 12.7988887064 + 12.801136484 + 12.8033846563 + 12.8056332231 + 12.8078821848 + 12.8101315412 + 12.8123812925 + 12.8146314387 + 12.81688198 + 12.8191329163 + 12.8213842477 + 12.8236359744 + 12.8258880964 + 12.8281406137 + 12.8303935264 + 12.8326468347 + 12.8349005385 + 12.8371546379 + 12.839409133 + 12.8416640239 + 12.8439193107 + 12.8461749933 + 12.848431072 + 12.8506875466 + 12.8529444174 + 12.8552016844 + 12.8574593477 + 12.8597174072 + 12.8619758632 + 12.8642347156 + 12.8664939646 + 12.8687536102 + 12.8710136524 + 12.8732740914 + 12.8755349272 + 12.8777961599 + 12.8800577896 + 12.8823198163 + 12.88458224 + 12.886845061 + 12.8891082791 + 12.8913718946 + 12.8936359074 + 12.8959003177 + 12.8981651255 + 12.9004303309 + 12.9026959339 + 12.9049619346 + 12.9072283332 + 12.9094951295 + 12.9117623239 + 12.9140299162 + 12.9162979066 + 12.9185662951 + 12.9208350819 + 12.9231042669 + 12.9253738503 + 12.9276438321 + 12.9299142123 + 12.9321849912 + 12.9344561687 + 12.9367277448 + 12.9389997198 + 12.9412720936 + 12.9435448663 + 12.9458180379 + 12.9480916086 + 12.9503655785 + 12.9526399475 + 12.9549147158 + 12.9571898834 + 12.9594654505 + 12.9617414169 + 12.964017783 + 12.9662945486 + 12.9685717139 + 12.970849279 + 12.9731272439 + 12.9754056087 + 12.9776843734 + 12.9799635382 + 12.9822431031 + 12.9845230681 + 12.9868034334 + 12.989084199 + 12.991365365 + 12.9936469315 + 12.9959288984 + 12.998211266 + 13.0004940342 + 13.0027772032 + 13.0050607729 + 13.0073447436 + 13.0096291151 + 13.0119138877 + 13.0141990614 + 13.0164846363 + 13.0187706123 + 13.0210569897 + 13.0233437684 + 13.0256309486 + 13.0279185303 + 13.0302065135 + 13.0324948984 + 13.0347836851 + 13.0370728735 + 13.0393624638 + 13.041652456 + 13.0439428502 + 13.0462336465 + 13.0485248449 + 13.0508164456 + 13.0531084485 + 13.0554008538 + 13.0576936615 + 13.0599868717 + 13.0622804845 + 13.0645744999 + 13.066868918 + 13.0691637389 + 13.0714589627 + 13.0737545894 + 13.076050619 + 13.0783470517 + 13.0806438876 + 13.0829411267 + 13.085238769 + 13.0875368147 + 13.0898352638 + 13.0921341164 + 13.0944333725 + 13.0967330323 + 13.0990330958 + 13.101333563 + 13.1036344341 + 13.1059357091 + 13.1082373881 + 13.1105394711 + 13.1128419583 + 13.1151448496 + 13.1174481453 + 13.1197518452 + 13.1220559496 + 13.1243604584 + 13.1266653718 + 13.1289706899 + 13.1312764126 + 13.1335825401 + 13.1358890724 + 13.1381960096 + 13.1405033518 + 13.142811099 + 13.1451192514 + 13.147427809 + 13.1497367718 + 13.1520461399 + 13.1543559135 + 13.1566660925 + 13.1589766771 + 13.1612876673 + 13.1635990631 + 13.1659108648 + 13.1682230723 + 13.1705356856 + 13.172848705 + 13.1751621304 + 13.1774759619 + 13.1797901996 + 13.1821048435 + 13.1844198938 + 13.1867353505 + 13.1890512136 + 13.1913674833 + 13.1936841597 + 13.1960012427 + 13.1983187324 + 13.200636629 + 13.2029549325 + 13.205273643 + 13.2075927605 + 13.2099122851 + 13.2122322169 + 13.214552556 + 13.2168733024 + 13.2191944562 + 13.2215160175 + 13.2238379863 + 13.2261603627 + 13.2284831468 + 13.2308063387 + 13.2331299384 + 13.235453946 + 13.2377783616 + 13.2401031853 + 13.242428417 + 13.2447540569 + 13.2470801051 + 13.2494065617 + 13.2517334266 + 13.2540607 + 13.256388382 + 13.2587164725 + 13.2610449718 + 13.2633738798 + 13.2657031967 + 13.2680329225 + 13.2703630572 + 13.272693601 + 13.2750245539 + 13.277355916 + 13.2796876874 + 13.2820198681 + 13.2843524582 + 13.2866854578 + 13.289018867 + 13.2913526858 + 13.2936869142 + 13.2960215525 + 13.2983566005 + 13.3006920585 + 13.3030279265 + 13.3053642045 + 13.3077008927 + 13.3100379911 + 13.3123754997 + 13.3147134187 + 13.3170517481 + 13.3193904879 + 13.3217296384 + 13.3240691994 + 13.3264091712 + 13.3287495538 + 13.3310903472 + 13.3334315515 + 13.3357731668 + 13.3381151932 + 13.3404576307 + 13.3428004794 + 13.3451437394 + 13.3474874108 + 13.3498314936 + 13.3521759878 + 13.3545208937 + 13.3568662112 + 13.3592119404 + 13.3615580814 + 13.3639046342 + 13.366251599 + 13.3685989758 + 13.3709467647 + 13.3732949657 + 13.3756435789 + 13.3779926045 + 13.3803420424 + 13.3826918927 + 13.3850421555 + 13.387392831 + 13.389743919 + 13.3920954198 + 13.3944473335 + 13.3967996599 + 13.3991523994 + 13.4015055518 + 13.4038591173 + 13.406213096 + 13.408567488 + 13.4109222932 + 13.4132775118 + 13.4156331439 + 13.4179891895 + 13.4203456487 + 13.4227025216 + 13.4250598082 + 13.4274175086 + 13.4297756229 + 13.4321341512 + 13.4344930935 + 13.4368524499 + 13.4392122205 + 13.4415724053 + 13.4439330045 + 13.4462940181 + 13.4486554461 + 13.4510172887 + 13.4533795459 + 13.4557422178 + 13.4581053044 + 13.4604688059 + 13.4628327223 + 13.4651970537 + 13.4675618001 + 13.4699269616 + 13.4722925384 + 13.4746585304 + 13.4770249377 + 13.4793917605 + 13.4817589988 + 13.4841266526 + 13.4864947221 + 13.4888632072 + 13.4912321082 + 13.493601425 + 13.4959711577 + 13.4983413065 + 13.5007118713 + 13.5030828522 + 13.5054542494 + 13.5078260629 + 13.5101982927 + 13.512570939 + 13.5149440018 + 13.5173174812 + 13.5196913772 + 13.52206569 + 13.5244404195 + 13.526815566 + 13.5291911294 + 13.5315671098 + 13.5339435073 + 13.536320322 + 13.5386975539 + 13.5410752032 + 13.5434532698 + 13.5458317539 + 13.5482106556 + 13.5505899748 + 13.5529697117 + 13.5553498664 + 13.557730439 + 13.5601114294 + 13.5624928378 + 13.5648746642 + 13.5672569088 + 13.5696395716 + 13.5720226526 + 13.574406152 + 13.5767900698 + 13.5791744061 + 13.581559161 + 13.5839443345 + 13.5863299267 + 13.5887159377 + 13.5911023675 + 13.5934892163 + 13.5958764841 + 13.598264171 + 13.600652277 + 13.6030408023 + 13.6054297468 + 13.6078191107 + 13.6102088941 + 13.612599097 + 13.6149897195 + 13.6173807616 + 13.6197722235 + 13.6221641052 + 13.6245564068 + 13.6269491284 + 13.62934227 + 13.6317358317 + 13.6341298135 + 13.6365242157 + 13.6389190382 + 13.6413142811 + 13.6437099444 + 13.6461060283 + 13.6485025329 + 13.6508994581 + 13.6532968041 + 13.655694571 + 13.6580927588 + 13.6604913676 + 13.6628903974 + 13.6652898484 + 13.6676897206 + 13.6700900141 + 13.672490729 + 13.6748918653 + 13.6772934231 + 13.6796954025 + 13.6820978036 + 13.6845006264 + 13.686903871 + 13.6893075375 + 13.691711626 + 13.6941161365 + 13.6965210691 + 13.6989264239 + 13.7013322009 + 13.7037384002 + 13.706145022 + 13.7085520662 + 13.710959533 + 13.7133674224 + 13.7157757346 + 13.7181844694 + 13.7205936272 + 13.7230032078 + 13.7254132115 + 13.7278236382 + 13.7302344881 + 13.7326457611 + 13.7350574575 + 13.7374695773 + 13.7398821205 + 13.7422950872 + 13.7447084774 + 13.7471222914 + 13.7495365291 + 13.7519511906 + 13.754366276 + 13.7567817854 + 13.7591977188 + 13.7616140763 + 13.764030858 + 13.7664480639 + 13.7688656942 + 13.7712837489 + 13.7737022281 + 13.7761211318 + 13.7785404602 + 13.7809602133 + 13.7833803911 + 13.7858009938 + 13.7882220215 + 13.7906434741 + 13.7930653519 + 13.7954876547 + 13.7979103829 + 13.8003335363 + 13.8027571151 + 13.8051811193 + 13.8076055491 + 13.8100304045 + 13.8124556855 + 13.8148813924 + 13.817307525 + 13.8197340835 + 13.822161068 + 13.8245884786 + 13.8270163153 + 13.8294445782 + 13.8318732674 + 13.8343023829 + 13.8367319248 + 13.8391618933 + 13.8415922883 + 13.84402311 + 13.8464543584 + 13.8488860336 + 13.8513181356 + 13.8537506646 + 13.8561836207 + 13.8586170038 + 13.8610508141 + 13.8634850517 + 13.8659197166 + 13.8683548089 + 13.8707903286 + 13.873226276 + 13.8756626509 + 13.8780994535 + 13.8805366839 + 13.8829743422 + 13.8854124284 + 13.8878509426 + 13.8902898848 + 13.8927292552 + 13.8951690539 + 13.8976092808 + 13.9000499361 + 13.9024910199 + 13.9049325322 + 13.9073744731 + 13.9098168426 + 13.912259641 + 13.9147028681 + 13.9171465242 + 13.9195906092 + 13.9220351233 + 13.9244800665 + 13.9269254389 + 13.9293712406 + 13.9318174716 + 13.9342641321 + 13.9367112221 + 13.9391587417 + 13.9416066909 + 13.9440550698 + 13.9465038786 + 13.9489531172 + 13.9514027858 + 13.9538528844 + 13.9563034132 + 13.9587543721 + 13.9612057613 + 13.9636575808 + 13.9661098307 + 13.9685625111 + 13.9710156221 + 13.9734691637 + 13.9759231361 + 13.9783775392 + 13.9808323732 + 13.9832876381 + 13.985743334 + 13.988199461 + 13.9906560192 + 13.9931130087 + 13.9955704294 + 13.9980282816 + 14.0004865652 + 14.0029452804 + 14.0054044272 + 14.0078640056 + 14.0103240159 + 14.012784458 + 14.015245332 + 14.0177066381 + 14.0201683762 + 14.0226305464 + 14.0250931489 + 14.0275561837 + 14.0300196509 + 14.0324835505 + 14.0349478827 + 14.0374126474 + 14.0398778449 + 14.0423434751 + 14.0448095381 + 14.0472760341 + 14.049742963 + 14.052210325 + 14.0546781202 + 14.0571463485 + 14.0596150102 + 14.0620841052 + 14.0645536336 + 14.0670235956 + 14.0694939912 + 14.0719648204 + 14.0744360834 + 14.0769077803 + 14.079379911 + 14.0818524757 + 14.0843254744 + 14.0867989073 + 14.0892727744 + 14.0917470757 + 14.0942218115 + 14.0966969816 + 14.0991725863 + 14.1016486255 + 14.1041250995 + 14.1066020081 + 14.1090793516 + 14.1115571299 + 14.1140353433 + 14.1165139916 + 14.1189930751 + 14.1214725938 + 14.1239525478 + 14.1264329371 + 14.1289137618 + 14.1313950221 + 14.1338767179 + 14.1363588494 + 14.1388414166 + 14.1413244196 + 14.1438078585 + 14.1462917334 + 14.1487760443 + 14.1512607913 + 14.1537459745 + 14.156231594 + 14.1587176498 + 14.161204142 + 14.1636910708 + 14.1661784361 + 14.168666238 + 14.1711544767 + 14.1736431522 + 14.1761322646 + 14.1786218139 + 14.1811118003 + 14.1836022238 + 14.1860930844 + 14.1885843824 + 14.1910761176 + 14.1935682903 + 14.1960609005 + 14.1985539483 + 14.2010474337 + 14.2035413568 + 14.2060357177 + 14.2085305165 + 14.2110257533 + 14.2135214281 + 14.216017541 + 14.2185140921 + 14.2210110814 + 14.2235085091 + 14.2260063753 + 14.2285046799 + 14.231003423 + 14.2335026049 + 14.2360022254 + 14.2385022848 + 14.241002783 + 14.2435037202 + 14.2460050964 + 14.2485069118 + 14.2510091663 + 14.2535118601 + 14.2560149932 + 14.2585185657 + 14.2610225778 + 14.2635270294 + 14.2660319207 + 14.2685372517 + 14.2710430225 + 14.2735492331 + 14.2760558838 + 14.2785629745 + 14.2810705053 + 14.2835784762 + 14.2860868875 + 14.2885957391 + 14.2911050311 + 14.2936147636 + 14.2961249367 + 14.2986355504 + 14.3011466049 + 14.3036581002 + 14.3061700364 + 14.3086824135 + 14.3111952317 + 14.313708491 + 14.3162221915 + 14.3187363333 + 14.3212509164 + 14.323765941 + 14.326281407 + 14.3287973147 + 14.331313664 + 14.333830455 + 14.3363476879 + 14.3388653626 + 14.3413834793 + 14.3439020381 + 14.346421039 + 14.3489404821 + 14.3514603675 + 14.3539806952 + 14.3565014654 + 14.3590226781 + 14.3615443334 + 14.3640664314 + 14.3665889721 + 14.3691119556 + 14.3716353821 + 14.3741592515 + 14.376683564 + 14.3792083196 + 14.3817335184 + 14.3842591605 + 14.386785246 + 14.389311775 + 14.3918387474 + 14.3943661635 + 14.3968940233 + 14.3994223268 + 14.4019510741 + 14.4044802654 + 14.4070099006 + 14.40953998 + 14.4120705034 + 14.4146014711 + 14.4171328832 + 14.4196647395 + 14.4221970404 + 14.4247297858 + 14.4272629758 + 14.4297966105 + 14.43233069 + 14.4348652143 + 14.4374001836 + 14.4399355978 + 14.4424714572 + 14.4450077617 + 14.4475445115 + 14.4500817066 + 14.452619347 + 14.455157433 + 14.4576959645 + 14.4602349416 + 14.4627743645 + 14.4653142331 + 14.4678545476 + 14.4703953081 + 14.4729365146 + 14.4754781672 + 14.4780202659 + 14.4805628109 + 14.4831058023 + 14.4856492401 + 14.4881931243 + 14.4907374552 + 14.4932822327 + 14.4958274569 + 14.4983731279 + 14.5009192459 + 14.5034658107 + 14.5060128227 + 14.5085602817 + 14.511108188 + 14.5136565415 + 14.5162053424 + 14.5187545907 + 14.5213042865 + 14.5238544299 + 14.526405021 + 14.5289560599 + 14.5315075465 + 14.5340594811 + 14.5366118637 + 14.5391646943 + 14.5417179731 + 14.5442717001 + 14.5468258754 + 14.5493804991 + 14.5519355712 + 14.5544910919 + 14.5570470612 + 14.5596034791 + 14.5621603459 + 14.5647176615 + 14.567275426 + 14.5698336396 + 14.5723923022 + 14.574951414 + 14.5775109751 + 14.5800709854 + 14.5826314452 + 14.5851923545 + 14.5877537133 + 14.5903155217 + 14.5928777799 + 14.5954404879 + 14.5980036457 + 14.6005672535 + 14.6031313114 + 14.6056958193 + 14.6082607775 + 14.6108261859 + 14.6133920447 + 14.6159583539 + 14.6185251136 + 14.6210923239 + 14.6236599849 + 14.6262280966 + 14.6287966591 + 14.6313656726 + 14.633935137 + 14.6365050525 + 14.6390754191 + 14.641646237 + 14.6442175061 + 14.6467892267 + 14.6493613986 + 14.6519340222 + 14.6545070973 + 14.6570806242 + 14.6596546028 + 14.6622290333 + 14.6648039157 + 14.6673792501 + 14.6699550366 + 14.6725312753 + 14.6751079663 + 14.6776851096 + 14.6802627053 + 14.6828407534 + 14.6854192542 + 14.6879982076 + 14.6905776137 + 14.6931574727 + 14.6957377845 + 14.6983185493 + 14.7008997671 + 14.7034814381 + 14.7060635623 + 14.7086461397 + 14.7112291705 + 14.7138126548 + 14.7163965926 + 14.718980984 + 14.7215658291 + 14.7241511279 + 14.7267368806 + 14.7293230872 + 14.7319097478 + 14.7344968625 + 14.7370844313 + 14.7396724544 + 14.7422609319 + 14.7448498637 + 14.74743925 + 14.7500290908 + 14.7526193863 + 14.7552101365 + 14.7578013416 + 14.7603930015 + 14.7629851163 + 14.7655776862 + 14.7681707112 + 14.7707641914 + 14.7733581269 + 14.7759525178 + 14.7785473641 + 14.7811426659 + 14.7837384233 + 14.7863346364 + 14.7889313052 + 14.7915284299 + 14.7941260105 + 14.7967240471 + 14.7993225398 + 14.8019214886 + 14.8045208937 + 14.8071207551 + 14.8097210729 + 14.8123218472 + 14.814923078 + 14.8175247655 + 14.8201269097 + 14.8227295107 + 14.8253325685 + 14.8279360834 + 14.8305400553 + 14.8331444843 + 14.8357493705 + 14.8383547139 + 14.8409605148 + 14.8435667731 + 14.8461734889 + 14.8487806623 + 14.8513882934 + 14.8539963822 + 14.8566049289 + 14.8592139335 + 14.8618233962 + 14.8644333169 + 14.8670436957 + 14.8696545329 + 14.8722658283 + 14.8748775822 + 14.8774897945 + 14.8801024654 + 14.882715595 + 14.8853291832 + 14.8879432303 + 14.8905577363 + 14.8931727013 + 14.8957881253 + 14.8984040084 + 14.9010203508 + 14.9036371524 + 14.9062544134 + 14.9088721339 + 14.9114903139 + 14.9141089535 + 14.9167280528 + 14.9193476119 + 14.9219676308 + 14.9245881097 + 14.9272090486 + 14.9298304476 + 14.9324523068 + 14.9350746262 + 14.937697406 + 14.9403206462 + 14.9429443469 + 14.9455685082 + 14.9481931302 + 14.9508182129 + 14.9534437564 + 14.9560697608 + 14.9586962263 + 14.9613231527 + 14.9639505404 + 14.9665783893 + 14.9692066995 + 14.971835471 + 14.9744647041 + 14.9770943987 + 14.979724555 + 14.9823551729 + 14.9849862527 + 14.9876177943 + 14.9902497979 + 14.9928822636 + 14.9955151914 + 14.9981485813 + 15.0007824336 + 15.0034167482 + 15.0060515253 + 15.0086867649 + 15.0113224671 + 15.013958632 + 15.0165952597 + 15.0192323502 + 15.0218699036 + 15.0245079201 + 15.0271463997 + 15.0297853425 + 15.0324247485 + 15.0350646178 + 15.0377049506 + 15.0403457469 + 15.0429870067 + 15.0456287303 + 15.0482709176 + 15.0509135687 + 15.0535566837 + 15.0562002627 + 15.0588443058 + 15.061488813 + 15.0641337845 + 15.0667792203 + 15.0694251205 + 15.0720714852 + 15.0747183144 + 15.0773656083 + 15.0800133669 + 15.0826615903 + 15.0853102786 + 15.0879594319 + 15.0906090502 + 15.0932591337 + 15.0959096824 + 15.0985606964 + 15.1012121757 + 15.1038641205 + 15.1065165309 + 15.1091694069 + 15.1118227486 + 15.114476556 + 15.1171308294 + 15.1197855687 + 15.122440774 + 15.1250964455 + 15.1277525831 + 15.130409187 + 15.1330662573 + 15.135723794 + 15.1383817973 + 15.1410402671 + 15.1436992037 + 15.146358607 + 15.1490184771 + 15.1516788142 + 15.1543396183 + 15.1570008895 + 15.1596626279 + 15.1623248336 + 15.1649875066 + 15.167650647 + 15.1703142549 + 15.1729783304 + 15.1756428736 + 15.1783078845 + 15.1809733633 + 15.18363931 + 15.1863057247 + 15.1889726075 + 15.1916399584 + 15.1943077776 + 15.1969760651 + 15.1996448211 + 15.2023140455 + 15.2049837385 + 15.2076539002 + 15.2103245305 + 15.2129956298 + 15.2156671979 + 15.218339235 + 15.2210117412 + 15.2236847165 + 15.2263581611 + 15.229032075 + 15.2317064583 + 15.234381311 + 15.2370566333 + 15.2397324253 + 15.242408687 + 15.2450854185 + 15.2477626199 + 15.2504402913 + 15.2531184328 + 15.2557970444 + 15.2584761262 + 15.2611556783 + 15.2638357008 + 15.2665161937 + 15.2691971573 + 15.2718785914 + 15.2745604963 + 15.277242872 + 15.2799257186 + 15.2826090361 + 15.2852928247 + 15.2879770844 + 15.2906618153 + 15.2933470176 + 15.2960326912 + 15.2987188363 + 15.3014054529 + 15.3040925411 + 15.3067801011 + 15.3094681328 + 15.3121566365 + 15.3148456121 + 15.3175350597 + 15.3202249795 + 15.3229153714 + 15.3256062357 + 15.3282975723 + 15.3309893814 + 15.3336816631 + 15.3363744173 + 15.3390676443 + 15.341761344 + 15.3444555167 + 15.3471501623 + 15.3498452809 + 15.3525408726 + 15.3552369376 + 15.3579334758 + 15.3606304874 + 15.3633279725 + 15.3660259311 + 15.3687243633 + 15.3714232692 + 15.3741226489 + 15.3768225025 + 15.37952283 + 15.3822236315 + 15.3849249072 + 15.3876266571 + 15.3903288813 + 15.3930315798 + 15.3957347528 + 15.3984384003 + 15.4011425225 + 15.4038471193 + 15.4065521909 + 15.4092577374 + 15.4119637589 + 15.4146702554 + 15.417377227 + 15.4200846738 + 15.4227925959 + 15.4255009933 + 15.4282098663 + 15.4309192147 + 15.4336290388 + 15.4363393386 + 15.4390501141 + 15.4417613655 + 15.4444730929 + 15.4471852963 + 15.4498979759 + 15.4526111316 + 15.4553247637 + 15.4580388721 + 15.4607534569 + 15.4634685183 + 15.4661840563 + 15.4689000711 + 15.4716165626 + 15.474333531 + 15.4770509763 + 15.4797688987 + 15.4824872982 + 15.4852061749 + 15.4879255289 + 15.4906453603 + 15.4933656692 + 15.4960864556 + 15.4988077196 + 15.5015294613 + 15.5042516808 + 15.5069743782 + 15.5096975536 + 15.512421207 + 15.5151453385 + 15.5178699483 + 15.5205950364 + 15.5233206028 + 15.5260466477 + 15.5287731711 + 15.5315001732 + 15.534227654 + 15.5369556137 + 15.5396840522 + 15.5424129696 + 15.5451423661 + 15.5478722418 + 15.5506025967 + 15.5533334309 + 15.5560647445 + 15.5587965375 + 15.5615288101 + 15.5642615624 + 15.5669947944 + 15.5697285062 + 15.5724626979 + 15.5751973695 + 15.5779325213 + 15.5806681532 + 15.5834042653 + 15.5861408577 + 15.5888779306 + 15.5916154839 + 15.5943535178 + 15.5970920324 + 15.5998310277 + 15.6025705038 + 15.6053104608 + 15.6080508988 + 15.6107918179 + 15.6135332182 + 15.6162750997 + 15.6190174625 + 15.6217603068 + 15.6245036325 + 15.6272474399 + 15.6299917289 + 15.6327364996 + 15.6354817522 + 15.6382274867 + 15.6409737033 + 15.6437204019 + 15.6464675827 + 15.6492152457 + 15.6519633911 + 15.6547120189 + 15.6574611293 + 15.6602107222 + 15.6629607978 + 15.6657113562 + 15.6684623975 + 15.6712139217 + 15.6739659289 + 15.6767184192 + 15.6794713927 + 15.6822248495 + 15.6849787896 + 15.6877332132 + 15.6904881204 + 15.6932435111 + 15.6959993856 + 15.6987557438 + 15.7015125859 + 15.704269912 + 15.7070277221 + 15.7097860163 + 15.7125447948 + 15.7153040575 + 15.7180638046 + 15.7208240362 + 15.7235847524 + 15.7263459531 + 15.7291076386 + 15.7318698089 + 15.7346324641 + 15.7373956043 + 15.7401592296 + 15.7429233399 + 15.7456879356 + 15.7484530165 + 15.7512185828 + 15.7539846347 + 15.7567511721 + 15.7595181951 + 15.7622857039 + 15.7650536986 + 15.7678221791 + 15.7705911457 + 15.7733605983 + 15.7761305371 + 15.7789009622 + 15.7816718736 + 15.7844432714 + 15.7872151557 + 15.7899875267 + 15.7927603843 + 15.7955337287 + 15.7983075599 + 15.8010818781 + 15.8038566833 + 15.8066319756 + 15.8094077552 + 15.812184022 + 15.8149607761 + 15.8177380177 + 15.8205157469 + 15.8232939637 + 15.8260726681 + 15.8288518604 + 15.8316315406 + 15.8344117087 + 15.8371923649 + 15.8399735092 + 15.8427551417 + 15.8455372626 + 15.8483198718 + 15.8511029695 + 15.8538865558 + 15.8566706307 + 15.8594551944 + 15.8622402469 + 15.8650257883 + 15.8678118187 + 15.8705983382 + 15.8733853469 + 15.8761728448 + 15.878960832 + 15.8817493087 + 15.8845382748 + 15.8873277306 + 15.8901176761 + 15.8929081113 + 15.8956990364 + 15.8984904514 + 15.9012823564 + 15.9040747516 + 15.9068676369 + 15.9096610125 + 15.9124548786 + 15.915249235 + 15.918044082 + 15.9208394196 + 15.923635248 + 15.9264315671 + 15.9292283772 + 15.9320256782 + 15.9348234703 + 15.9376217535 + 15.9404205279 + 15.9432197937 + 15.9460195508 + 15.9488197995 + 15.9516205397 + 15.9544217716 + 15.9572234953 + 15.9600257107 + 15.9628284181 + 15.9656316176 + 15.9684353091 + 15.9712394927 + 15.9740441687 + 15.976849337 + 15.9796549978 + 15.982461151 + 15.9852677969 + 15.9880749355 + 15.9908825669 + 15.9936906911 + 15.9964993083 + 15.9993084186 + 16.002118022 + 16.0049281186 + 16.0077387085 + 16.0105497918 + 16.0133613686 + 16.0161734389 + 16.0189860029 + 16.0217990606 + 16.0246126122 + 16.0274266577 + 16.0302411971 + 16.0330562307 + 16.0358717584 + 16.0386877804 + 16.0415042968 + 16.0443213075 + 16.0471388128 + 16.0499568127 + 16.0527753073 + 16.0555942966 + 16.0584137809 + 16.0612337601 + 16.0640542343 + 16.0668752036 + 16.0696966682 + 16.0725186281 + 16.0753410833 + 16.0781640341 + 16.0809874804 + 16.0838114223 + 16.08663586 + 16.0894607935 + 16.0922862229 + 16.0951121483 + 16.0979385698 + 16.1007654874 + 16.1035929014 + 16.1064208116 + 16.1092492183 + 16.1120781215 + 16.1149075214 + 16.1177374179 + 16.1205678112 + 16.1233987014 + 16.1262300885 + 16.1290619727 + 16.131894354 + 16.1347272325 + 16.1375606083 + 16.1403944815 + 16.1432288522 + 16.1460637205 + 16.1488990864 + 16.15173495 + 16.1545713115 + 16.1574081709 + 16.1602455283 + 16.1630833838 + 16.1659217375 + 16.1687605894 + 16.1715999397 + 16.1744397885 + 16.1772801357 + 16.1801209816 + 16.1829623262 + 16.1858041696 + 16.1886465118 + 16.191489353 + 16.1943326933 + 16.1971765327 + 16.2000208713 + 16.2028657093 + 16.2057110467 + 16.2085568835 + 16.21140322 + 16.2142500561 + 16.2170973919 + 16.2199452276 + 16.2227935632 + 16.2256423989 + 16.2284917346 + 16.2313415706 + 16.2341919068 + 16.2370427434 + 16.2398940805 + 16.2427459181 + 16.2455982563 + 16.2484510953 + 16.251304435 + 16.2541582757 + 16.2570126173 + 16.25986746 + 16.2627228039 + 16.265578649 + 16.2684349955 + 16.2712918434 + 16.2741491928 + 16.2770070438 + 16.2798653965 + 16.282724251 + 16.2855836073 + 16.2884434656 + 16.2913038259 + 16.2941646883 + 16.297026053 + 16.29988792 + 16.3027502894 + 16.3056131612 + 16.3084765356 + 16.3113404127 + 16.3142047925 + 16.3170696752 + 16.3199350608 + 16.3228009494 + 16.3256673411 + 16.328534236 + 16.3314016341 + 16.3342695357 + 16.3371379406 + 16.3400068492 + 16.3428762613 + 16.3457461772 + 16.3486165968 + 16.3514875204 + 16.354358948 + 16.3572308796 + 16.3601033154 + 16.3629762554 + 16.3658496998 + 16.3687236486 + 16.3715981019 + 16.3744730598 + 16.3773485224 + 16.3802244898 + 16.3831009621 + 16.3859779393 + 16.3888554215 + 16.3917334089 + 16.3946119015 + 16.3974908995 + 16.4003704028 + 16.4032504116 + 16.406130926 + 16.4090119461 + 16.4118934719 + 16.4147755036 + 16.4176580412 + 16.4205410848 + 16.4234246345 + 16.4263086905 + 16.4291932527 + 16.4320783213 + 16.4349638964 + 16.437849978 + 16.4407365663 + 16.4436236613 + 16.4465112631 + 16.4493993718 + 16.4522879875 + 16.4551771104 + 16.4580667404 + 16.4609568776 + 16.4638475223 + 16.4667386743 + 16.4696303339 + 16.4725225012 + 16.4754151761 + 16.4783083589 + 16.4812020495 + 16.4840962481 + 16.4869909548 + 16.4898861696 + 16.4927818927 + 16.4956781242 + 16.498574864 + 16.5014721124 + 16.5043698694 + 16.507268135 + 16.5101669095 + 16.5130661928 + 16.5159659851 + 16.5188662864 + 16.5217670969 + 16.5246684166 + 16.5275702457 + 16.5304725841 + 16.533375432 + 16.5362787896 + 16.5391826568 + 16.5420870337 + 16.5449919206 + 16.5478973173 + 16.5508032241 + 16.5537096411 + 16.5566165682 + 16.5595240057 + 16.5624319535 + 16.5653404118 + 16.5682493807 + 16.5711588603 + 16.5740688506 + 16.5769793517 + 16.5798903638 + 16.5828018869 + 16.5857139211 + 16.5886264666 + 16.5915395233 + 16.5944530914 + 16.5973671709 + 16.600281762 + 16.6031968648 + 16.6061124793 + 16.6090286056 + 16.6119452439 + 16.6148623941 + 16.6177800565 + 16.620698231 + 16.6236169179 + 16.6265361171 + 16.6294558287 + 16.6323760529 + 16.6352967897 + 16.6382180393 + 16.6411398017 + 16.644062077 + 16.6469848653 + 16.6499081667 + 16.6528319812 + 16.655756309 + 16.6586811502 + 16.6616065049 + 16.664532373 + 16.6674587548 + 16.6703856503 + 16.6733130597 + 16.6762409829 + 16.6791694201 + 16.6820983714 + 16.6850278369 + 16.6879578166 + 16.6908883107 + 16.6938193192 + 16.6967508423 + 16.6996828799 + 16.7026154323 + 16.7055484995 + 16.7084820816 + 16.7114161786 + 16.7143507908 + 16.7172859181 + 16.7202215606 + 16.7231577185 + 16.7260943919 + 16.7290315807 + 16.7319692852 + 16.7349075054 + 16.7378462414 + 16.7407854932 + 16.7437252611 + 16.746665545 + 16.7496063451 + 16.7525476614 + 16.7554894941 + 16.7584318432 + 16.7613747088 + 16.764318091 + 16.7672619899 + 16.7702064057 + 16.7731513383 + 16.7760967879 + 16.7790427545 + 16.7819892383 + 16.7849362394 + 16.7878837578 + 16.7908317936 + 16.793780347 + 16.7967294179 + 16.7996790066 + 16.8026291131 + 16.8055797374 + 16.8085308797 + 16.8114825401 + 16.8144347186 + 16.8173874154 + 16.8203406305 + 16.8232943641 + 16.8262486162 + 16.8292033869 + 16.8321586762 + 16.8351144844 + 16.8380708115 + 16.8410276575 + 16.8439850226 + 16.8469429069 + 16.8499013104 + 16.8528602333 + 16.8558196756 + 16.8587796374 + 16.8617401188 + 16.8647011199 + 16.8676626409 + 16.8706246817 + 16.8735872425 + 16.8765503233 + 16.8795139244 + 16.8824780456 + 16.8854426873 + 16.8884078493 + 16.8913735319 + 16.8943397351 + 16.897306459 + 16.9002737037 + 16.9032414693 + 16.9062097559 + 16.9091785636 + 16.9121478924 + 16.9151177425 + 16.918088114 + 16.9210590068 + 16.9240304213 + 16.9270023573 + 16.929974815 + 16.9329477946 + 16.9359212961 + 16.9388953195 + 16.9418698651 + 16.9448449328 + 16.9478205227 + 16.9507966351 + 16.9537732699 + 16.9567504272 + 16.9597281071 + 16.9627063098 + 16.9656850353 + 16.9686642837 + 16.9716440551 + 16.9746243496 + 16.9776051673 + 16.9805865082 + 16.9835683726 + 16.9865507603 + 16.9895336717 + 16.9925171066 + 16.9955010653 + 16.9984855479 + 17.0014705543 + 17.0044560848 + 17.0074421394 + 17.0104287181 + 17.0134158212 + 17.0164034486 + 17.0193916005 + 17.0223802769 + 17.025369478 + 17.0283592039 + 17.0313494546 + 17.0343402302 + 17.0373315309 + 17.0403233566 + 17.0433157076 + 17.0463085839 + 17.0493019856 + 17.0522959127 + 17.0552903654 + 17.0582853438 + 17.061280848 + 17.064276878 + 17.067273434 + 17.070270516 + 17.0732681241 + 17.0762662584 + 17.0792649191 + 17.0822641062 + 17.0852638197 + 17.0882640599 + 17.0912648267 + 17.0942661204 + 17.0972679409 + 17.1002702883 + 17.1032731628 + 17.1062765645 + 17.1092804934 + 17.1122849496 + 17.1152899333 + 17.1182954444 + 17.1213014832 + 17.1243080497 + 17.127315144 + 17.1303227661 + 17.1333309163 + 17.1363395945 + 17.1393488009 + 17.1423585356 + 17.1453687985 + 17.14837959 + 17.15139091 + 17.1544027586 + 17.1574151359 + 17.1604280421 + 17.1634414771 + 17.1664554412 + 17.1694699343 + 17.1724849567 + 17.1755005083 + 17.1785165893 + 17.1815331997 + 17.1845503397 + 17.1875680094 + 17.1905862088 + 17.193604938 + 17.1966241972 + 17.1996439864 + 17.2026643057 + 17.2056851553 + 17.2087065351 + 17.2117284453 + 17.214750886 + 17.2177738573 + 17.2207973593 + 17.223821392 + 17.2268459556 + 17.2298710502 + 17.2328966758 + 17.2359228325 + 17.2389495205 + 17.2419767398 + 17.2450044905 + 17.2480327728 + 17.2510615866 + 17.2540909322 + 17.2571208095 + 17.2601512188 + 17.26318216 + 17.2662136332 + 17.2692456387 + 17.2722781764 + 17.2753112465 + 17.278344849 + 17.2813789841 + 17.2844136518 + 17.2874488522 + 17.2904845854 + 17.2935208516 + 17.2965576507 + 17.299594983 + 17.3026328485 + 17.3056712472 + 17.3087101794 + 17.311749645 + 17.3147896442 + 17.317830177 + 17.3208712436 + 17.3239128441 + 17.3269549785 + 17.3299976469 + 17.3330408495 + 17.3360845863 + 17.3391288575 + 17.342173663 + 17.345219003 + 17.3482648777 + 17.351311287 + 17.3543582312 + 17.3574057102 + 17.3604537242 + 17.3635022733 + 17.3665513575 + 17.369600977 + 17.3726511318 + 17.3757018221 + 17.3787530479 + 17.3818048094 + 17.3848571066 + 17.3879099396 + 17.3909633086 + 17.3940172135 + 17.3970716546 + 17.4001266318 + 17.4031821454 + 17.4062381953 + 17.4092947817 + 17.4123519047 + 17.4154095644 + 17.4184677608 + 17.4215264941 + 17.4245857643 + 17.4276455716 + 17.4307059161 + 17.4337667977 + 17.4368282167 + 17.4398901731 + 17.4429526671 + 17.4460156986 + 17.4490792679 + 17.452143375 + 17.4552080199 + 17.4582732029 + 17.4613389239 + 17.4644051831 + 17.4674719806 + 17.4705393165 + 17.4736071908 + 17.4766756037 + 17.4797445552 + 17.4828140455 + 17.4858840746 + 17.4889546426 + 17.4920257497 + 17.4950973959 + 17.4981695814 + 17.5012423061 + 17.5043155703 + 17.5073893739 + 17.5104637172 + 17.5135386001 + 17.5166140229 + 17.5196899855 + 17.5227664881 + 17.5258435307 + 17.5289211136 + 17.5319992367 + 17.5350779001 + 17.538157104 + 17.5412368485 + 17.5443171336 + 17.5473979594 + 17.5504793261 + 17.5535612337 + 17.5566436823 + 17.559726672 + 17.562810203 + 17.5658942752 + 17.5689788888 + 17.572064044 + 17.5751497407 + 17.5782359791 + 17.5813227593 + 17.5844100814 + 17.5874979455 + 17.5905863516 + 17.5936752999 + 17.5967647904 + 17.5998548233 + 17.6029453986 + 17.6060365165 + 17.609128177 + 17.6122203803 + 17.6153131264 + 17.6184064154 + 17.6215002474 + 17.6245946225 + 17.6276895409 + 17.6307850025 + 17.6338810076 + 17.6369775561 + 17.6400746483 + 17.6431722841 + 17.6462704637 + 17.6493691872 + 17.6524684546 + 17.6555682662 + 17.6586686219 + 17.6617695218 + 17.6648709661 + 17.6679729549 + 17.6710754882 + 17.6741785661 + 17.6772821888 + 17.6803863563 + 17.6834910688 + 17.6865963263 + 17.6897021289 + 17.6928084767 + 17.6959153698 + 17.6990228083 + 17.7021307923 + 17.705239322 + 17.7083483973 + 17.7114580184 + 17.7145681854 + 17.7176788984 + 17.7207901575 + 17.7239019627 + 17.7270143142 + 17.7301272121 + 17.7332406564 + 17.7363546473 + 17.7394691848 + 17.7425842691 + 17.7456999002 + 17.7488160783 + 17.7519328034 + 17.7550500757 + 17.7581678952 + 17.761286262 + 17.7644051762 + 17.7675246379 + 17.7706446473 + 17.7737652044 + 17.7768863092 + 17.780007962 + 17.7831301628 + 17.7862529117 + 17.7893762087 + 17.7925000541 + 17.7956244478 + 17.79874939 + 17.8018748808 + 17.8050009202 + 17.8081275085 + 17.8112546455 + 17.8143823316 + 17.8175105667 + 17.820639351 + 17.8237686845 + 17.8268985673 + 17.8300289996 + 17.8331599815 + 17.836291513 + 17.8394235942 + 17.8425562252 + 17.8456894062 + 17.8488231372 + 17.8519574183 + 17.8550922496 + 17.8582276312 + 17.8613635633 + 17.8645000458 + 17.867637079 + 17.8707746628 + 17.8739127975 + 17.877051483 + 17.8801907195 + 17.8833305071 + 17.8864708459 + 17.889611736 + 17.8927531774 + 17.8958951703 + 17.8990377148 + 17.902180811 + 17.9053244589 + 17.9084686587 + 17.9116134104 + 17.9147587142 + 17.9179045701 + 17.9210509783 + 17.9241979388 + 17.9273454518 + 17.9304935173 + 17.9336421354 + 17.9367913063 + 17.93994103 + 17.9430913066 + 17.9462421363 + 17.949393519 + 17.952545455 + 17.9556979443 + 17.958850987 + 17.9620045833 + 17.9651587331 + 17.9683134366 + 17.971468694 + 17.9746245052 + 17.9777808704 + 17.9809377897 + 17.9840952632 + 17.987253291 + 17.9904118732 + 17.9935710099 + 17.9967307011 + 17.999890947 + 18.0030517477 + 18.0062131033 + 18.0093750138 + 18.0125374794 + 18.0157005001 + 18.0188640761 + 18.0220282075 + 18.0251928943 + 18.0283581367 + 18.0315239347 + 18.0346902885 + 18.0378571981 + 18.0410246637 + 18.0441926853 + 18.0473612631 + 18.050530397 + 18.0537000874 + 18.0568703341 + 18.0600411374 + 18.0632124973 + 18.0663844139 + 18.0695568874 + 18.0727299177 + 18.0759035051 + 18.0790776496 + 18.0822523513 + 18.0854276104 + 18.0886034268 + 18.0917798007 + 18.0949567323 + 18.0981342215 + 18.1013122686 + 18.1044908735 + 18.1076700365 + 18.1108497575 + 18.1140300367 + 18.1172108743 + 18.1203922702 + 18.1235742246 + 18.1267567375 + 18.1299398092 + 18.1331234396 + 18.136307629 + 18.1394923773 + 18.1426776846 + 18.1458635512 + 18.149049977 + 18.1522369622 + 18.1554245068 + 18.158612611 + 18.1618012749 + 18.1649904986 + 18.1681802821 + 18.1713706255 + 18.174561529 + 18.1777529927 + 18.1809450166 + 18.1841376009 + 18.1873307457 + 18.1905244509 + 18.1937187169 + 18.1969135435 + 18.200108931 + 18.2033048795 + 18.206501389 + 18.2096984596 + 18.2128960915 + 18.2160942847 + 18.2192930394 + 18.2224923555 + 18.2256922333 + 18.2288926729 + 18.2320936743 + 18.2352952376 + 18.2384973629 + 18.2417000503 + 18.2449033 + 18.248107112 + 18.2513114864 + 18.2545164234 + 18.2577219229 + 18.2609279852 + 18.2641346103 + 18.2673417983 + 18.2705495493 + 18.2737578634 + 18.2769667408 + 18.2801761814 + 18.2833861855 + 18.2865967531 + 18.2898078843 + 18.2930195791 + 18.2962318378 + 18.2994446604 + 18.302658047 + 18.3058719977 + 18.3090865126 + 18.3123015918 + 18.3155172354 + 18.3187334435 + 18.3219502162 + 18.3251675536 + 18.3283854558 + 18.3316039229 + 18.3348229549 + 18.3380425521 + 18.3412627145 + 18.3444834421 + 18.3477047352 + 18.3509265937 + 18.3541490178 + 18.3573720076 + 18.3605955632 + 18.3638196847 + 18.3670443722 + 18.3702696258 + 18.3734954455 + 18.3767218315 + 18.3799487839 + 18.3831763028 + 18.3864043883 + 18.3896330405 + 18.3928622594 + 18.3960920453 + 18.3993223981 + 18.4025533179 + 18.405784805 + 18.4090168594 + 18.4122494811 + 18.4154826703 + 18.4187164271 + 18.4219507515 + 18.4251856438 + 18.4284211039 + 18.431657132 + 18.4348937281 + 18.4381308925 + 18.4413686251 + 18.4446069261 + 18.4478457956 + 18.4510852336 + 18.4543252404 + 18.4575658159 + 18.4608069602 + 18.4640486736 + 18.467290956 + 18.4705338076 + 18.4737772285 + 18.4770212187 + 18.4802657784 + 18.4835109077 + 18.4867566067 + 18.4900028754 + 18.4932497141 + 18.4964971227 + 18.4997451013 + 18.5029936502 + 18.5062427693 + 18.5094924588 + 18.5127427187 + 18.5159935493 + 18.5192449505 + 18.5224969225 + 18.5257494654 + 18.5290025792 + 18.5322562641 + 18.5355105202 + 18.5387653476 + 18.5420207464 + 18.5452767166 + 18.5485332584 + 18.5517903719 + 18.5550480571 + 18.5583063143 + 18.5615651434 + 18.5648245446 + 18.568084518 + 18.5713450636 + 18.5746061817 + 18.5778678722 + 18.5811301353 + 18.5843929711 + 18.5876563796 + 18.5909203611 + 18.5941849155 + 18.597450043 + 18.6007157437 + 18.6039820177 + 18.6072488651 + 18.610516286 + 18.6137842804 + 18.6170528486 + 18.6203219905 + 18.6235917063 + 18.6268619961 + 18.63013286 + 18.6334042981 + 18.6366763105 + 18.6399488973 + 18.6432220585 + 18.6464957944 + 18.649770105 + 18.6530449903 + 18.6563204506 + 18.6595964858 + 18.6628730962 + 18.6661502817 + 18.6694280426 + 18.6727063789 + 18.6759852906 + 18.679264778 + 18.6825448411 + 18.68582548 + 18.6891066948 + 18.6923884856 + 18.6956708525 + 18.6989537956 + 18.702237315 + 18.7055214109 + 18.7088060832 + 18.7120913322 + 18.7153771579 + 18.7186635604 + 18.7219505399 + 18.7252380963 + 18.7285262299 + 18.7318149407 + 18.7351042288 + 18.7383940944 + 18.7416845375 + 18.7449755582 + 18.7482671566 + 18.7515593329 + 18.7548520871 + 18.7581454193 + 18.7614393297 + 18.7647338183 + 18.7680288853 + 18.7713245307 + 18.7746207546 + 18.7779175572 + 18.7812149385 + 18.7845128987 + 18.7878114378 + 18.791110556 + 18.7944102533 + 18.7977105299 + 18.8010113858 + 18.8043128212 + 18.8076148362 + 18.8109174308 + 18.8142206052 + 18.8175243594 + 18.8208286936 + 18.8241336079 + 18.8274391023 + 18.830745177 + 18.8340518321 + 18.8373590677 + 18.8406668838 + 18.8439752806 + 18.8472842582 + 18.8505938167 + 18.8539039562 + 18.8572146767 + 18.8605259785 + 18.8638378615 + 18.8671503259 + 18.8704633718 + 18.8737769994 + 18.8770912086 + 18.8804059996 + 18.8837213725 + 18.8870373274 + 18.8903538645 + 18.8936709837 + 18.8969886853 + 18.9003069692 + 18.9036258357 + 18.9069452848 + 18.9102653167 + 18.9135859313 + 18.9169071289 + 18.9202289095 + 18.9235512732 + 18.9268742202 + 18.9301977505 + 18.9335218642 + 18.9368465615 + 18.9401718424 + 18.9434977071 + 18.9468241556 + 18.9501511881 + 18.9534788046 + 18.9568070052 + 18.9601357902 + 18.9634651594 + 18.9667951132 + 18.9701256515 + 18.9734567745 + 18.9767884822 + 18.9801207749 + 18.9834536525 + 18.9867871152 + 18.990121163 + 18.9934557962 + 18.9967910147 + 19.0001268187 + 19.0034632083 + 19.0068001836 + 19.0101377447 + 19.0134758917 + 19.0168146247 + 19.0201539439 + 19.0234938492 + 19.0268343408 + 19.0301754189 + 19.0335170834 + 19.0368593346 + 19.0402021726 + 19.0435455973 + 19.046889609 + 19.0502342077 + 19.0535793935 + 19.0569251666 + 19.060271527 + 19.0636184749 + 19.0669660103 + 19.0703141334 + 19.0736628442 + 19.0770121429 + 19.0803620295 + 19.0837125042 + 19.0870635671 + 19.0904152182 + 19.0937674577 + 19.0971202857 + 19.1004737023 + 19.1038277076 + 19.1071823016 + 19.1105374845 + 19.1138932565 + 19.1172496175 + 19.1206065677 + 19.1239641073 + 19.1273222362 + 19.1306809547 + 19.1340402627 + 19.1374001605 + 19.1407606481 + 19.1441217257 + 19.1474833932 + 19.1508456509 + 19.1542084988 + 19.1575719371 + 19.1609359658 + 19.1643005851 + 19.167665795 + 19.1710315957 + 19.1743979872 + 19.1777649697 + 19.1811325432 + 19.1845007079 + 19.1878694639 + 19.1912388113 + 19.1946087501 + 19.1979792806 + 19.2013504027 + 19.2047221166 + 19.2080944224 + 19.2114673202 + 19.2148408101 + 19.2182148923 + 19.2215895667 + 19.2249648335 + 19.2283406929 + 19.2317171449 + 19.2350941896 + 19.2384718272 + 19.2418500577 + 19.2452288812 + 19.2486082979 + 19.2519883078 + 19.255368911 + 19.2587501078 + 19.2621318981 + 19.265514282 + 19.2688972597 + 19.2722808313 + 19.2756649969 + 19.2790497566 + 19.2824351104 + 19.2858210585 + 19.2892076011 + 19.2925947381 + 19.2959824697 + 19.2993707961 + 19.3027597172 + 19.3061492333 + 19.3095393444 + 19.3129300506 + 19.316321352 + 19.3197132488 + 19.323105741 + 19.3264988288 + 19.3298925122 + 19.3332867914 + 19.3366816664 + 19.3400771374 + 19.3434732044 + 19.3468698676 + 19.3502671271 + 19.353664983 + 19.3570634354 + 19.3604624843 + 19.36386213 + 19.3672623724 + 19.3706632117 + 19.3740646481 + 19.3774666816 + 19.3808693123 + 19.3842725403 + 19.3876763657 + 19.3910807887 + 19.3944858093 + 19.3978914277 + 19.4012976439 + 19.404704458 + 19.4081118702 + 19.4115198806 + 19.4149284893 + 19.4183376963 + 19.4217475018 + 19.4251579058 + 19.4285689086 + 19.4319805102 + 19.4353927106 + 19.4388055101 + 19.4422189087 + 19.4456329064 + 19.4490475035 + 19.4524627001 + 19.4558784961 + 19.4592948918 + 19.4627118872 + 19.4661294825 + 19.4695476777 + 19.472966473 + 19.4763858685 + 19.4798058642 + 19.4832264602 + 19.4866476568 + 19.4900694539 + 19.4934918518 + 19.4969148504 + 19.5003384499 + 19.5037626504 + 19.5071874521 + 19.5106128549 + 19.5140388591 + 19.5174654647 + 19.5208926718 + 19.5243204806 + 19.5277488911 + 19.5311779034 + 19.5346075178 + 19.5380377341 + 19.5414685527 + 19.5448999735 + 19.5483319967 + 19.5517646223 + 19.5551978506 + 19.5586316816 + 19.5620661153 + 19.565501152 + 19.5689367916 + 19.5723730344 + 19.5758098805 + 19.5792473298 + 19.5826853826 + 19.5861240389 + 19.5895632989 + 19.5930031626 + 19.5964436302 + 19.5998847017 + 19.6033263774 + 19.6067686572 + 19.6102115412 + 19.6136550297 + 19.6170991227 + 19.6205438203 + 19.6239891225 + 19.6274350296 + 19.6308815416 + 19.6343286587 + 19.6377763808 + 19.6412247083 + 19.644673641 + 19.6481231792 + 19.651573323 + 19.6550240724 + 19.6584754276 + 19.6619273887 + 19.6653799558 + 19.6688331289 + 19.6722869083 + 19.6757412939 + 19.679196286 + 19.6826518845 + 19.6861080897 + 19.6895649017 + 19.6930223204 + 19.6964803461 + 19.6999389789 + 19.7033982188 + 19.7068580659 + 19.7103185205 + 19.7137795825 + 19.717241252 + 19.7207035293 + 19.7241664144 + 19.7276299074 + 19.7310940083 + 19.7345587174 + 19.7380240347 + 19.7414899604 + 19.7449564944 + 19.7484236371 + 19.7518913883 + 19.7553597483 + 19.7588287172 + 19.7622982951 + 19.765768482 + 19.7692392781 + 19.7727106835 + 19.7761826983 + 19.7796553226 + 19.7831285565 + 19.7866024001 + 19.7900768536 + 19.793551917 + 19.7970275904 + 19.8005038739 + 19.8039807678 + 19.8074582719 + 19.8109363866 + 19.8144151118 + 19.8178944477 + 19.8213743944 + 19.824854952 + 19.8283361206 + 19.8318179003 + 19.8353002912 + 19.8387832934 + 19.8422669071 + 19.8457511323 + 19.8492359692 + 19.8527214178 + 19.8562074783 + 19.8596941507 + 19.8631814353 + 19.866669332 + 19.870157841 + 19.8736469624 + 19.8771366963 + 19.8806270428 + 19.8841180021 + 19.8876095741 + 19.8911017591 + 19.8945945572 + 19.8980879684 + 19.9015819929 + 19.9050766307 + 19.908571882 + 19.9120677469 + 19.9155642255 + 19.9190613179 + 19.9225590241 + 19.9260573444 + 19.9295562789 + 19.9330558275 + 19.9365559905 + 19.9400567679 + 19.9435581599 + 19.9470601665 + 19.950562788 + 19.9540660243 + 19.9575698755 + 19.9610743419 + 19.9645794235 + 19.9680851203 + 19.9715914326 + 19.9750983604 + 19.9786059039 + 19.9821140631 + 19.9856228381 + 19.9891322291 + 19.9926422362 + 19.9961528594 + 19.9996640989 + 20.0031759548 + 20.0066884272 + 20.0102015162 + 20.0137152219 + 20.0172295445 + 20.020744484 + 20.0242600405 + 20.0277762141 + 20.0312930051 + 20.0348104133 + 20.0383284391 + 20.0418470824 + 20.0453663434 + 20.0488862223 + 20.052406719 + 20.0559278337 + 20.0594495666 + 20.0629719177 + 20.0664948871 + 20.070018475 + 20.0735426814 + 20.0770675065 + 20.0805929504 + 20.0841190132 + 20.0876456949 + 20.0911729958 + 20.0947009158 + 20.0982294552 + 20.101758614 + 20.1052883924 + 20.1088187904 + 20.1123498081 + 20.1158814457 + 20.1194137033 + 20.1229465809 + 20.1264800788 + 20.1300141969 + 20.1335489354 + 20.1370842945 + 20.1406202742 + 20.1441568746 + 20.1476940958 + 20.151231938 + 20.1547704013 + 20.1583094857 + 20.1618491914 + 20.1653895185 + 20.1689304671 + 20.1724720373 + 20.1760142292 + 20.1795570429 + 20.1831004786 + 20.1866445363 + 20.1901892162 + 20.1937345183 + 20.1972804428 + 20.2008269897 + 20.2043741593 + 20.2079219515 + 20.2114703666 + 20.2150194045 + 20.2185690655 + 20.2221193497 + 20.225670257 + 20.2292217878 + 20.2327739419 + 20.2363267197 + 20.2398801211 + 20.2434341464 + 20.2469887955 + 20.2505440686 + 20.2540999659 + 20.2576564874 + 20.2612136332 + 20.2647714035 + 20.2683297983 + 20.2718888178 + 20.2754484621 + 20.2790087313 + 20.2825696254 + 20.2861311447 + 20.2896932892 + 20.293256059 + 20.2968194542 + 20.300383475 + 20.3039481215 + 20.3075133937 + 20.3110792917 + 20.3146458158 + 20.318212966 + 20.3217807423 + 20.325349145 + 20.3289181741 + 20.3324878298 + 20.3360581121 + 20.3396290211 + 20.343200557 + 20.3467727199 + 20.3503455098 + 20.353918927 + 20.3574929714 + 20.3610676433 + 20.3646429427 + 20.3682188698 + 20.3717954245 + 20.3753726072 + 20.3789504178 + 20.3825288564 + 20.3861079233 + 20.3896876185 + 20.393267942 + 20.3968488941 + 20.4004304748 + 20.4040126843 + 20.4075955226 + 20.4111789898 + 20.4147630861 + 20.4183478116 + 20.4219331664 + 20.4255191506 + 20.4291057643 + 20.4326930076 + 20.4362808807 + 20.4398693836 + 20.4434585164 + 20.4470482793 + 20.4506386724 + 20.4542296958 + 20.4578213496 + 20.4614136338 + 20.4650065487 + 20.4686000943 + 20.4721942708 + 20.4757890782 + 20.4793845167 + 20.4829805863 + 20.4865772872 + 20.4901746195 + 20.4937725833 + 20.4973711787 + 20.5009704059 + 20.5045702649 + 20.5081707558 + 20.5117718788 + 20.5153736339 + 20.5189760214 + 20.5225790412 + 20.5261826935 + 20.5297869785 + 20.5333918961 + 20.5369974466 + 20.5406036301 + 20.5442104466 + 20.5478178962 + 20.5514259792 + 20.5550346955 + 20.5586440453 + 20.5622540288 + 20.5658646459 + 20.5694758969 + 20.5730877819 + 20.5767003009 + 20.5803134541 + 20.5839272415 + 20.5875416634 + 20.5911567197 + 20.5947724107 + 20.5983887364 + 20.6020056969 + 20.6056232924 + 20.6092415229 + 20.6128603886 + 20.6164798896 + 20.620100026 + 20.6237207979 + 20.6273422054 + 20.6309642487 + 20.6345869277 + 20.6382102428 + 20.6418341939 + 20.6454587811 + 20.6490840047 + 20.6527098646 + 20.6563363611 + 20.6599634942 + 20.663591264 + 20.6672196707 + 20.6708487143 + 20.674478395 + 20.6781087129 + 20.6817396681 + 20.6853712607 + 20.6890034908 + 20.6926363585 + 20.6962698639 + 20.6999040073 + 20.7035387885 + 20.7071742079 + 20.7108102654 + 20.7144469613 + 20.7180842956 + 20.7217222683 + 20.7253608798 + 20.7290001299 + 20.732640019 + 20.736280547 + 20.7399217141 + 20.7435635204 + 20.747205966 + 20.750849051 + 20.7544927756 + 20.7581371398 + 20.7617821437 + 20.7654277876 + 20.7690740714 + 20.7727209953 + 20.7763685594 + 20.7800167639 + 20.7836656087 + 20.7873150942 + 20.7909652202 + 20.7946159871 + 20.7982673948 + 20.8019194436 + 20.8055721334 + 20.8092254645 + 20.8128794369 + 20.8165340507 + 20.8201893061 + 20.8238452032 + 20.827501742 + 20.8311589228 + 20.8348167455 + 20.8384752104 + 20.8421343175 + 20.845794067 + 20.8494544589 + 20.8531154934 + 20.8567771706 + 20.8604394905 + 20.8641024534 + 20.8677660593 + 20.8714303084 + 20.8750952007 + 20.8787607364 + 20.8824269155 + 20.8860937382 + 20.8897612046 + 20.8934293149 + 20.8970980691 + 20.9007674673 + 20.9044375096 + 20.9081081963 + 20.9117795273 + 20.9154515028 + 20.9191241229 + 20.9227973877 + 20.9264712974 + 20.930145852 + 20.9338210517 + 20.9374968965 + 20.9411733866 + 20.9448505221 + 20.9485283032 + 20.9522067298 + 20.9558858022 + 20.9595655205 + 20.9632458847 + 20.966926895 + 20.9706085515 + 20.9742908543 + 20.9779738035 + 20.9816573992 + 20.9853416416 + 20.9890265308 + 20.9927120668 + 20.9963982498 + 21.0000850799 + 21.0037725573 + 21.0074606819 + 21.011149454 + 21.0148388737 + 21.018528941 + 21.0222196561 + 21.0259110191 + 21.0296030301 + 21.0332956892 + 21.0369889966 + 21.0406829523 + 21.0443775565 + 21.0480728092 + 21.0517687107 + 21.0554652609 + 21.0591624601 + 21.0628603083 + 21.0665588057 + 21.0702579523 + 21.0739577483 + 21.0776581938 + 21.0813592889 + 21.0850610337 + 21.0887634283 + 21.0924664729 + 21.0961701676 + 21.0998745124 + 21.1035795075 + 21.107285153 + 21.1109914491 + 21.1146983957 + 21.1184059931 + 21.1221142414 + 21.1258231406 + 21.129532691 + 21.1332428925 + 21.1369537454 + 21.1406652496 + 21.1443774055 + 21.1480902129 + 21.1518036722 + 21.1555177834 + 21.1592325465 + 21.1629479618 + 21.1666640293 + 21.1703807491 + 21.1740981214 + 21.1778161463 + 21.1815348239 + 21.1852541543 + 21.1889741376 + 21.1926947739 + 21.1964160634 + 21.2001380061 + 21.2038606022 + 21.2075838518 + 21.2113077551 + 21.215032312 + 21.2187575228 + 21.2224833875 + 21.2262099063 + 21.2299370793 + 21.2336649066 + 21.2373933882 + 21.2411225245 + 21.2448523153 + 21.2485827609 + 21.2523138614 + 21.2560456168 + 21.2597780274 + 21.2635110932 + 21.2672448143 + 21.2709791909 + 21.274714223 + 21.2784499108 + 21.2821862543 + 21.2859232538 + 21.2896609093 + 21.293399221 + 21.2971381889 + 21.3008778131 + 21.3046180939 + 21.3083590312 + 21.3121006253 + 21.3158428761 + 21.319585784 + 21.3233293489 + 21.3270735709 + 21.3308184503 + 21.334563987 + 21.3383101813 + 21.3420570332 + 21.3458045428 + 21.3495527103 + 21.3533015358 + 21.3570510194 + 21.3608011613 + 21.3645519614 + 21.36830342 + 21.3720555371 + 21.3758083129 + 21.3795617475 + 21.3833158411 + 21.3870705936 + 21.3908260053 + 21.3945820762 + 21.3983388065 + 21.4020961963 + 21.4058542456 + 21.4096129547 + 21.4133723237 + 21.4171323525 + 21.4208930415 + 21.4246543906 + 21.4284164 + 21.4321790698 + 21.4359424002 + 21.4397063912 + 21.4434710429 + 21.4472363556 + 21.4510023292 + 21.4547689639 + 21.4585362599 + 21.4623042172 + 21.4660728359 + 21.4698421162 + 21.4736120582 + 21.4773826621 + 21.4811539278 + 21.4849258556 + 21.4886984455 + 21.4924716977 + 21.4962456122 + 21.5000201893 + 21.503795429 + 21.5075713314 + 21.5113478967 + 21.515125125 + 21.5189030163 + 21.5226815708 + 21.5264607887 + 21.5302406699 + 21.5340212148 + 21.5378024233 + 21.5415842955 + 21.5453668317 + 21.5491500319 + 21.5529338962 + 21.5567184248 + 21.5605036177 + 21.5642894751 + 21.5680759971 + 21.5718631838 + 21.5756510354 + 21.5794395519 + 21.5832287334 + 21.5870185802 + 21.5908090922 + 21.5946002697 + 21.5983921127 + 21.6021846213 + 21.6059777957 + 21.609771636 + 21.6135661423 + 21.6173613147 + 21.6211571534 + 21.6249536583 + 21.6287508298 + 21.6325486678 + 21.6363471726 + 21.6401463441 + 21.6439461826 + 21.6477466882 + 21.6515478609 + 21.6553497009 + 21.6591522083 + 21.6629553832 + 21.6667592258 + 21.6705637361 + 21.6743689143 + 21.6781747605 + 21.6819812748 + 21.6857884573 + 21.6895963081 + 21.6934048274 + 21.6972140153 + 21.7010238719 + 21.7048343973 + 21.7086455916 + 21.712457455 + 21.7162699875 + 21.7200831893 + 21.7238970605 + 21.7277116012 + 21.7315268116 + 21.7353426917 + 21.7391592417 + 21.7429764616 + 21.7467943517 + 21.750612912 + 21.7544321426 + 21.7582520437 + 21.7620726154 + 21.7658938577 + 21.7697157709 + 21.7735383549 + 21.7773616101 + 21.7811855364 + 21.7850101339 + 21.7888354029 + 21.7926613434 + 21.7964879555 + 21.8003152394 + 21.8041431951 + 21.8079718229 + 21.8118011227 + 21.8156310948 + 21.8194617392 + 21.823293056 + 21.8271250455 + 21.8309577076 + 21.8347910426 + 21.8386250505 + 21.8424597314 + 21.8462950855 + 21.8501311129 + 21.8539678137 + 21.857805188 + 21.861643236 + 21.8654819577 + 21.8693213533 + 21.8731614229 + 21.8770021666 + 21.8808435846 + 21.8846856769 + 21.8885284436 + 21.892371885 + 21.896216001 + 21.9000607919 + 21.9039062578 + 21.9077523987 + 21.9115992147 + 21.9154467061 + 21.9192948729 + 21.9231437152 + 21.9269932332 + 21.9308434269 + 21.9346942966 + 21.9385458422 + 21.942398064 + 21.9462509621 + 21.9501045365 + 21.9539587873 + 21.9578137148 + 21.961669319 + 21.9655256001 + 21.9693825581 + 21.9732401932 + 21.9770985055 + 21.9809574951 + 21.9848171621 + 21.9886775067 + 21.992538529 + 21.9964002291 + 22.0002626071 + 22.0041256631 + 22.0079893972 + 22.0118538097 + 22.0157189005 + 22.0195846698 + 22.0234511178 + 22.0273182445 + 22.03118605 + 22.0350545346 + 22.0389236982 + 22.0427935411 + 22.0466640633 + 22.0505352649 + 22.0544071462 + 22.0582797071 + 22.0621529479 + 22.0660268686 + 22.0699014694 + 22.0737767503 + 22.0776527116 + 22.0815293532 + 22.0854066754 + 22.0892846782 + 22.0931633618 + 22.0970427264 + 22.1009227719 + 22.1048034985 + 22.1086849064 + 22.1125669957 + 22.1164497665 + 22.1203332188 + 22.124217353 + 22.1281021689 + 22.1319876668 + 22.1358738469 + 22.1397607091 + 22.1436482536 + 22.1475364806 + 22.1514253902 + 22.1553149825 + 22.1592052575 + 22.1630962155 + 22.1669878566 + 22.1708801808 + 22.1747731883 + 22.1786668792 + 22.1825612536 + 22.1864563117 + 22.1903520536 + 22.1942484793 + 22.1981455891 + 22.202043383 + 22.2059418611 + 22.2098410236 + 22.2137408705 + 22.2176414021 + 22.2215426185 + 22.2254445196 + 22.2293471058 + 22.233250377 + 22.2371543334 + 22.2410589752 + 22.2449643024 + 22.2488703152 + 22.2527770137 + 22.2566843979 + 22.2605924682 + 22.2645012244 + 22.2684106669 + 22.2723207956 + 22.2762316108 + 22.2801431125 + 22.2840553008 + 22.2879681759 + 22.2918817379 + 22.2957959869 + 22.2997109231 + 22.3036265465 + 22.3075428573 + 22.3114598556 + 22.3153775415 + 22.3192959152 + 22.3232149767 + 22.3271347262 + 22.3310551638 + 22.3349762896 + 22.3388981038 + 22.3428206064 + 22.3467437976 + 22.3506676775 + 22.3545922463 + 22.358517504 + 22.3624434508 + 22.3663700867 + 22.370297412 + 22.3742254267 + 22.378154131 + 22.3820835249 + 22.3860136086 + 22.3899443822 + 22.3938758459 + 22.3978079998 + 22.4017408439 + 22.4056743784 + 22.4096086034 + 22.4135435191 + 22.4174791256 + 22.4214154229 + 22.4253524112 + 22.4292900907 + 22.4332284614 + 22.4371675235 + 22.4411072771 + 22.4450477223 + 22.4489888592 + 22.452930688 + 22.4568732088 + 22.4608164217 + 22.4647603268 + 22.4687049242 + 22.4726502141 + 22.4765961966 + 22.4805428718 + 22.4844902398 + 22.4884383008 + 22.4923870548 + 22.496336502 + 22.5002866426 + 22.5042374766 + 22.5081890041 + 22.5121412253 + 22.5160941404 + 22.5200477493 + 22.5240020523 + 22.5279570495 + 22.531912741 + 22.5358691268 + 22.5398262072 + 22.5437839823 + 22.5477424521 + 22.5517016169 + 22.5556614766 + 22.5596220315 + 22.5635832817 + 22.5675452273 + 22.5715078683 + 22.575471205 + 22.5794352375 + 22.5833999658 + 22.5873653901 + 22.5913315106 + 22.5952983273 + 22.5992658403 + 22.6032340499 + 22.607202956 + 22.6111725589 + 22.6151428586 + 22.6191138554 + 22.6230855492 + 22.6270579402 + 22.6310310286 + 22.6350048144 + 22.6389792979 + 22.642954479 + 22.646930358 + 22.6509069349 + 22.6548842099 + 22.6588621831 + 22.6628408546 + 22.6668202246 + 22.6708002932 + 22.6747810604 + 22.6787625265 + 22.6827446914 + 22.6867275555 + 22.6907111187 + 22.6946953813 + 22.6986803432 + 22.7026660047 + 22.7066523659 + 22.7106394269 + 22.7146271878 + 22.7186156487 + 22.7226048098 + 22.7265946712 + 22.730585233 + 22.7345764954 + 22.7385684584 + 22.7425611221 + 22.7465544868 + 22.7505485525 + 22.7545433193 + 22.7585387875 + 22.762534957 + 22.766531828 + 22.7705294007 + 22.7745276751 + 22.7785266514 + 22.7825263298 + 22.7865267102 + 22.790527793 + 22.7945295781 + 22.7985320657 + 22.8025352559 + 22.8065391489 + 22.8105437447 + 22.8145490436 + 22.8185550456 + 22.8225617508 + 22.8265691594 + 22.8305772714 + 22.8345860871 + 22.8385956066 + 22.8426058298 + 22.8466167571 + 22.8506283885 + 22.8546407241 + 22.8586537641 + 22.8626675085 + 22.8666819576 + 22.8706971114 + 22.87471297 + 22.8787295336 + 22.8827468023 + 22.8867647762 + 22.8907834555 + 22.8948028402 + 22.8988229305 + 22.9028437266 + 22.9068652285 + 22.9108874363 + 22.9149103503 + 22.9189339704 + 22.9229582969 + 22.9269833299 + 22.9310090694 + 22.9350355156 + 22.9390626687 + 22.9430905287 + 22.9471190959 + 22.9511483702 + 22.9551783518 + 22.9592090409 + 22.9632404376 + 22.967272542 + 22.9713053542 + 22.9753388743 + 22.9793731026 + 22.983408039 + 22.9874436837 + 22.9914800369 + 22.9955170987 + 22.9995548692 + 23.0035933485 + 23.0076325367 + 23.011672434 + 23.0157130405 + 23.0197543563 + 23.0237963816 + 23.0278391164 + 23.0318825609 + 23.0359267153 + 23.0399715795 + 23.0440171539 + 23.0480634384 + 23.0521104332 + 23.0561581385 + 23.0602065544 + 23.0642556809 + 23.0683055183 + 23.0723560666 + 23.0764073259 + 23.0804592965 + 23.0845119783 + 23.0885653716 + 23.0926194765 + 23.096674293 + 23.1007298214 + 23.1047860617 + 23.1088430141 + 23.1129006786 + 23.1169590555 + 23.1210181448 + 23.1250779467 + 23.1291384612 + 23.1331996886 + 23.1372616289 + 23.1413242822 + 23.1453876488 + 23.1494517287 + 23.153516522 + 23.1575820289 + 23.1616482494 + 23.1657151838 + 23.1697828321 + 23.1738511945 + 23.1779202711 + 23.181990062 + 23.1860605673 + 23.1901317872 + 23.1942037218 + 23.1982763712 + 23.2023497356 + 23.206423815 + 23.2104986096 + 23.2145741195 + 23.2186503449 + 23.2227272859 + 23.2268049425 + 23.230883315 + 23.2349624034 + 23.2390422079 + 23.2431227286 + 23.2472039656 + 23.2512859191 + 23.2553685892 + 23.2594519759 + 23.2635360795 + 23.2676209 + 23.2717064376 + 23.2757926925 + 23.2798796646 + 23.2839673542 + 23.2880557614 + 23.2921448863 + 23.2962347291 + 23.3003252898 + 23.3044165686 + 23.3085085656 + 23.3126012809 + 23.3166947147 + 23.3207888671 + 23.3248837382 + 23.3289793282 + 23.3330756371 + 23.3371726652 + 23.3412704124 + 23.345368879 + 23.3494680651 + 23.3535679708 + 23.3576685962 + 23.3617699415 + 23.3658720067 + 23.3699747921 + 23.3740782976 + 23.3781825236 + 23.38228747 + 23.3863931371 + 23.3904995249 + 23.3946066335 + 23.3987144632 + 23.4028230139 + 23.4069322859 + 23.4110422793 + 23.4151529942 + 23.4192644307 + 23.423376589 + 23.4274894691 + 23.4316030713 + 23.4357173955 + 23.4398324421 + 23.443948211 + 23.4480647024 + 23.4521819165 + 23.4562998533 + 23.4604185131 + 23.4645378958 + 23.4686580017 + 23.4727788309 + 23.4769003835 + 23.4810226596 + 23.4851456594 + 23.4892693829 + 23.4933938304 + 23.4975190019 + 23.5016448975 + 23.5057715175 + 23.5098988618 + 23.5140269308 + 23.5181557243 + 23.5222852427 + 23.526415486 + 23.5305464544 + 23.5346781479 + 23.5388105668 + 23.5429437111 + 23.5470775809 + 23.5512121765 + 23.5553474978 + 23.5594835451 + 23.5636203185 + 23.5677578181 + 23.571896044 + 23.5760349964 + 23.5801746753 + 23.584315081 + 23.5884562134 + 23.5925980729 + 23.5967406595 + 23.6008839732 + 23.6050280144 + 23.6091727829 + 23.6133182791 + 23.6174645031 + 23.6216114549 + 23.6257591347 + 23.6299075425 + 23.6340566787 + 23.6382065432 + 23.6423571362 + 23.6465084578 + 23.6506605082 + 23.6548132875 + 23.6589667958 + 23.6631210332 + 23.6672759999 + 23.6714316959 + 23.6755881215 + 23.6797452768 + 23.6839031618 + 23.6880617767 + 23.6922211217 + 23.6963811968 + 23.7005420023 + 23.7047035381 + 23.7088658045 + 23.7130288016 + 23.7171925294 + 23.7213569882 + 23.7255221781 + 23.7296880991 + 23.7338547515 + 23.7380221353 + 23.7421902507 + 23.7463590978 + 23.7505286767 + 23.7546989876 + 23.7588700305 + 23.7630418057 + 23.7672143132 + 23.7713875532 + 23.7755615258 + 23.7797362312 + 23.7839116694 + 23.7880878405 + 23.7922647448 + 23.7964423824 + 23.8006207533 + 23.8047998577 + 23.8089796958 + 23.8131602676 + 23.8173415733 + 23.821523613 + 23.8257063868 + 23.829889895 + 23.8340741375 + 23.8382591146 + 23.8424448263 + 23.8466312729 + 23.8508184543 + 23.8550063708 + 23.8591950225 + 23.8633844095 + 23.8675745319 + 23.8717653899 + 23.8759569836 + 23.8801493131 + 23.8843423785 + 23.8885361801 + 23.8927307178 + 23.8969259919 + 23.9011220025 + 23.9053187496 + 23.9095162335 + 23.9137144543 + 23.917913412 + 23.9221131069 + 23.926313539 + 23.9305147084 + 23.9347166154 + 23.93891926 + 23.9431226424 + 23.9473267627 + 23.951531621 + 23.9557372174 + 23.9599435522 + 23.9641506253 + 23.968358437 + 23.9725669873 + 23.9767762765 + 23.9809863046 + 23.9851970717 + 23.989408578 + 23.9936208237 + 23.9978338088 + 24.0020475335 + 24.0062619979 + 24.0104772021 + 24.0146931463 + 24.0189098306 + 24.0231272551 + 24.02734542 + 24.0315643253 + 24.0357839713 + 24.0400043581 + 24.0442254857 + 24.0484473543 + 24.0526699641 + 24.0568933151 + 24.0611174075 + 24.0653422415 + 24.0695678171 + 24.0737941345 + 24.0780211938 + 24.0822489952 + 24.0864775388 + 24.0907068246 + 24.094936853 + 24.0991676238 + 24.1033991374 + 24.1076313938 + 24.1118643932 + 24.1160981357 + 24.1203326214 + 24.1245678504 + 24.1288038229 + 24.1330405391 + 24.1372779989 + 24.1415162027 + 24.1457551505 + 24.1499948424 + 24.1542352786 + 24.1584764591 + 24.1627183842 + 24.166961054 + 24.1712044685 + 24.175448628 + 24.1796935325 + 24.1839391822 + 24.1881855772 + 24.1924327177 + 24.1966806037 + 24.2009292355 + 24.2051786131 + 24.2094287366 + 24.2136796062 + 24.2179312221 + 24.2221835844 + 24.2264366931 + 24.2306905484 + 24.2349451505 + 24.2392004995 + 24.2434565955 + 24.2477134387 + 24.2519710291 + 24.2562293669 + 24.2604884523 + 24.2647482854 + 24.2690088662 + 24.273270195 + 24.2775322719 + 24.2817950969 + 24.2860586703 + 24.2903229921 + 24.2945880626 + 24.2988538817 + 24.3031204497 + 24.3073877667 + 24.3116558328 + 24.3159246482 + 24.3201942129 + 24.3244645272 + 24.3287355911 + 24.3330074047 + 24.3372799683 + 24.3415532819 + 24.3458273457 + 24.3501021598 + 24.3543777243 + 24.3586540394 + 24.3629311052 + 24.3672089218 + 24.3714874893 + 24.375766808 + 24.3800468779 + 24.3843276991 + 24.3886092718 + 24.3928915962 + 24.3971746723 + 24.4014585002 + 24.4057430802 + 24.4100284124 + 24.4143144968 + 24.4186013336 + 24.422888923 + 24.4271772651 + 24.4314663599 + 24.4357562077 + 24.4400468086 + 24.4443381627 + 24.4486302701 + 24.452923131 + 24.4572167454 + 24.4615111137 + 24.4658062357 + 24.4701021118 + 24.474398742 + 24.4786961265 + 24.4829942654 + 24.4872931588 + 24.4915928068 + 24.4958932097 + 24.5001943674 + 24.5044962803 + 24.5087989483 + 24.5131023716 + 24.5174065504 + 24.5217114848 + 24.5260171749 + 24.5303236209 + 24.5346308228 + 24.5389387809 + 24.5432474952 + 24.5475569659 + 24.5518671931 + 24.556178177 + 24.5604899176 + 24.5648024152 + 24.5691156698 + 24.5734296816 + 24.5777444507 + 24.5820599773 + 24.5863762614 + 24.5906933032 + 24.5950111029 + 24.5993296606 + 24.6036489764 + 24.6079690504 + 24.6122898828 + 24.6166114738 + 24.6209338233 + 24.6252569317 + 24.6295807989 + 24.6339054252 + 24.6382308107 + 24.6425569555 + 24.6468838597 + 24.6512115235 + 24.655539947 + 24.6598691304 + 24.6641990737 + 24.6685297772 + 24.6728612409 + 24.6771934649 + 24.6815264495 + 24.6858601948 + 24.6901947008 + 24.6945299677 + 24.6988659956 + 24.7032027848 + 24.7075403352 + 24.7118786471 + 24.7162177206 + 24.7205575558 + 24.7248981529 + 24.7292395119 + 24.733581633 + 24.7379245164 + 24.7422681622 + 24.7466125704 + 24.7509577414 + 24.7553036751 + 24.7596503717 + 24.7639978314 + 24.7683460543 + 24.7726950405 + 24.7770447901 + 24.7813953034 + 24.7857465803 + 24.7900986211 + 24.7944514259 + 24.7988049949 + 24.8031593281 + 24.8075144256 + 24.8118702877 + 24.8162269145 + 24.8205843061 + 24.8249424626 + 24.8293013841 + 24.8336610709 + 24.8380215229 + 24.8423827405 + 24.8467447236 + 24.8511074725 + 24.8554709873 + 24.859835268 + 24.8642003149 + 24.8685661281 + 24.8729327077 + 24.8773000538 + 24.8816681666 + 24.8860370462 + 24.8904066928 + 24.8947771064 + 24.8991482873 + 24.9035202355 + 24.9078929512 + 24.9122664345 + 24.9166406855 + 24.9210157045 + 24.9253914914 + 24.9297680466 + 24.93414537 + 24.9385234618 + 24.9429023223 + 24.9472819514 + 24.9516623493 + 24.9560435162 + 24.9604254523 + 24.9648081575 + 24.9691916321 + 24.9735758763 + 24.9779608901 + 24.9823466736 + 24.9867332271 + 24.9911205506 + 24.9955086443 + 24.9998975083 + 25.0042871428 + 25.0086775479 + 25.0130687237 + 25.0174606703 + 25.021853388 + 25.0262468767 + 25.0306411368 + 25.0350361682 + 25.0394319712 + 25.0438285459 + 25.0482258923 + 25.0526240107 + 25.0570229012 + 25.0614225639 + 25.065822999 + 25.0702242065 + 25.0746261867 + 25.0790289396 + 25.0834324654 + 25.0878367642 + 25.0922418362 + 25.0966476815 + 25.1010543002 + 25.1054616925 + 25.1098698585 + 25.1142787984 + 25.1186885122 + 25.1230990001 + 25.1275102623 + 25.1319222989 + 25.13633511 + 25.1407486958 + 25.1451630563 + 25.1495781918 + 25.1539941024 + 25.1584107881 + 25.1628282492 + 25.1672464858 + 25.171665498 + 25.1760852859 + 25.1805058497 + 25.1849271895 + 25.1893493055 + 25.1937721978 + 25.1981958665 + 25.2026203117 + 25.2070455337 + 25.2114715325 + 25.2158983082 + 25.2203258611 + 25.2247541913 + 25.2291832988 + 25.2336131838 + 25.2380438465 + 25.242475287 + 25.2469075054 + 25.2513405018 + 25.2557742765 + 25.2602088295 + 25.264644161 + 25.2690802711 + 25.2735171599 + 25.2779548277 + 25.2823932744 + 25.2868325003 + 25.2912725055 + 25.2957132902 + 25.3001548544 + 25.3045971983 + 25.309040322 + 25.3134842258 + 25.3179289096 + 25.3223743737 + 25.3268206182 + 25.3312676432 + 25.3357154489 + 25.3401640354 + 25.3446134028 + 25.3490635513 + 25.353514481 + 25.3579661921 + 25.3624186846 + 25.3668719588 + 25.3713260147 + 25.3757808526 + 25.3802364724 + 25.3846928745 + 25.3891500588 + 25.3936080256 + 25.398066775 + 25.4025263071 + 25.4069866221 + 25.41144772 + 25.4159096011 + 25.4203722655 + 25.4248357133 + 25.4292999446 + 25.4337649596 + 25.4382307584 + 25.4426973412 + 25.4471647081 + 25.4516328592 + 25.4561017947 + 25.4605715147 + 25.4650420194 + 25.4695133088 + 25.4739853832 + 25.4784582426 + 25.4829318873 + 25.4874063172 + 25.4918815327 + 25.4963575337 + 25.5008343205 + 25.5053118932 + 25.5097902519 + 25.5142693968 + 25.518749328 + 25.5232300456 + 25.5277115498 + 25.5321938408 + 25.5366769185 + 25.5411607833 + 25.5456454352 + 25.5501308744 + 25.554617101 + 25.5591041151 + 25.5635919169 + 25.5680805065 + 25.5725698841 + 25.5770600498 + 25.5815510037 + 25.5860427461 + 25.5905352769 + 25.5950285963 + 25.5995227046 + 25.6040176018 + 25.6085132881 + 25.6130097635 + 25.6175070283 + 25.6220050826 + 25.6265039266 + 25.6310035602 + 25.6355039838 + 25.6400051974 + 25.6445072012 + 25.6490099953 + 25.6535135799 + 25.6580179551 + 25.662523121 + 25.6670290777 + 25.6715358255 + 25.6760433644 + 25.6805516946 + 25.6850608162 + 25.6895707294 + 25.6940814343 + 25.6985929311 + 25.7031052198 + 25.7076183006 + 25.7121321738 + 25.7166468393 + 25.7211622973 + 25.725678548 + 25.7301955916 + 25.7347134281 + 25.7392320577 + 25.7437514805 + 25.7482716967 + 25.7527927064 + 25.7573145097 + 25.7618371069 + 25.766360498 + 25.7708846831 + 25.7754096625 + 25.7799354362 + 25.7844620044 + 25.7889893672 + 25.7935175248 + 25.7980464773 + 25.8025762249 + 25.8071067676 + 25.8116381057 + 25.8161702392 + 25.8207031683 + 25.8252368932 + 25.829771414 + 25.8343067308 + 25.8388428437 + 25.843379753 + 25.8479174587 + 25.8524559609 + 25.8569952599 + 25.8615353558 + 25.8660762487 + 25.8706179387 + 25.8751604259 + 25.8797037107 + 25.8842477929 + 25.8887926729 + 25.8933383507 + 25.8978848265 + 25.9024321005 + 25.9069801726 + 25.9115290432 + 25.9160787124 + 25.9206291802 + 25.9251804468 + 25.9297325124 + 25.9342853771 + 25.9388390411 + 25.9433935044 + 25.9479487673 + 25.9525048298 + 25.9570616921 + 25.9616193544 + 25.9661778168 + 25.9707370794 + 25.9752971423 + 25.9798580058 + 25.9844196699 + 25.9889821348 + 25.9935454006 + 25.9981094675 + 26.0026743356 + 26.0072400051 + 26.011806476 + 26.0163737486 + 26.020941823 + 26.0255106993 + 26.0300803776 + 26.0346508581 + 26.039222141 + 26.0437942263 + 26.0483671143 + 26.052940805 + 26.0575152986 + 26.0620905953 + 26.0666666951 + 26.0712435983 + 26.0758213049 + 26.0803998151 + 26.0849791291 + 26.089559247 + 26.0941401689 + 26.0987218949 + 26.1033044253 + 26.1078877601 + 26.1124718995 + 26.1170568437 + 26.1216425927 + 26.1262291468 + 26.130816506 + 26.1354046705 + 26.1399936404 + 26.1445834159 + 26.1491739972 + 26.1537653843 + 26.1583575774 + 26.1629505767 + 26.1675443823 + 26.1721389942 + 26.1767344128 + 26.1813306381 + 26.1859276702 + 26.1905255093 + 26.1951241556 + 26.1997236092 + 26.2043238701 + 26.2089249387 + 26.2135268149 + 26.218129499 + 26.2227329911 + 26.2273372913 + 26.2319423998 + 26.2365483167 + 26.2411550422 + 26.2457625763 + 26.2503709193 + 26.2549800713 + 26.2595900324 + 26.2642008028 + 26.2688123826 + 26.2734247719 + 26.2780379709 + 26.2826519798 + 26.2872667986 + 26.2918824276 + 26.2964988668 + 26.3011161165 + 26.3057341766 + 26.3103530475 + 26.3149727292 + 26.3195932219 + 26.3242145257 + 26.3288366407 + 26.3334595672 + 26.3380833051 + 26.3427078548 + 26.3473332163 + 26.3519593898 + 26.3565863754 + 26.3612141732 + 26.3658427835 + 26.3704722062 + 26.3751024417 + 26.37973349 + 26.3843653513 + 26.3889980256 + 26.3936315133 + 26.3982658143 + 26.4029009289 + 26.4075368571 + 26.4121735992 + 26.4168111552 + 26.4214495254 + 26.4260887098 + 26.4307287086 + 26.4353695219 + 26.44001115 + 26.4446535928 + 26.4492968506 + 26.4539409236 + 26.4585858118 + 26.4632315154 + 26.4678780345 + 26.4725253693 + 26.47717352 + 26.4818224866 + 26.4864722693 + 26.4911228683 + 26.4957742837 + 26.5004265156 + 26.5050795643 + 26.5097334297 + 26.5143881121 + 26.5190436117 + 26.5236999285 + 26.5283570627 + 26.5330150145 + 26.5376737839 + 26.5423333712 + 26.5469937765 + 26.5516549999 + 26.5563170415 + 26.5609799016 + 26.5656435802 + 26.5703080775 + 26.5749733937 + 26.5796395288 + 26.5843064831 + 26.5889742566 + 26.5936428496 + 26.5983122621 + 26.6029824943 + 26.6076535464 + 26.6123254185 + 26.6169981107 + 26.6216716231 + 26.626345956 + 26.6310211095 + 26.6356970837 + 26.6403738787 + 26.6450514948 + 26.6497299319 + 26.6544091904 + 26.6590892703 + 26.6637701718 + 26.668451895 + 26.67313444 + 26.6778178071 + 26.6825019963 + 26.6871870079 + 26.6918728418 + 26.6965594984 + 26.7012469777 + 26.7059352798 + 26.710624405 + 26.7153143533 + 26.720005125 + 26.7246967201 + 26.7293891388 + 26.7340823812 + 26.7387764476 + 26.7434713379 + 26.7481670525 + 26.7528635913 + 26.7575609547 + 26.7622591426 + 26.7669581553 + 26.7716579929 + 26.7763586555 + 26.7810601433 + 26.7857624565 + 26.7904655951 + 26.7951695594 + 26.7998743494 + 26.8045799654 + 26.8092864074 + 26.8139936756 + 26.8187017702 + 26.8234106912 + 26.8281204389 + 26.8328310134 + 26.8375424148 + 26.8422546433 + 26.846967699 + 26.851681582 + 26.8563962926 + 26.8611118309 + 26.8658281969 + 26.8705453909 + 26.875263413 + 26.8799822633 + 26.884701942 + 26.8894224492 + 26.8941437851 + 26.8988659498 + 26.9035889435 + 26.9083127663 + 26.9130374183 + 26.9177628997 + 26.9224892107 + 26.9272163514 + 26.9319443219 + 26.9366731224 + 26.9414027531 + 26.946133214 + 26.9508645053 + 26.9555966272 + 26.9603295798 + 26.9650633633 + 26.9697979777 + 26.9745334234 + 26.9792697003 + 26.9840068086 + 26.9887447486 + 26.9934835203 + 26.9982231238 + 27.0029635594 + 27.0077048271 + 27.0124469272 + 27.0171898598 + 27.0219336249 + 27.0266782228 + 27.0314236536 + 27.0361699175 + 27.0409170145 + 27.0456649449 + 27.0504137088 + 27.0551633063 + 27.0599137376 + 27.0646650028 + 27.0694171021 + 27.0741700356 + 27.0789238035 + 27.0836784059 + 27.0884338429 + 27.0931901148 + 27.0979472216 + 27.1027051635 + 27.1074639406 + 27.1122235531 + 27.1169840012 + 27.121745285 + 27.1265074046 + 27.1312703601 + 27.1360341518 + 27.1407987798 + 27.1455642442 + 27.1503305451 + 27.1550976828 + 27.1598656573 + 27.1646344689 + 27.1694041175 + 27.1741746035 + 27.178945927 + 27.183718088 + 27.1884910867 + 27.1932649234 + 27.1980395981 + 27.2028151109 + 27.2075914621 + 27.2123686518 + 27.2171466801 + 27.2219255472 + 27.2267052532 + 27.2314857982 + 27.2362671825 + 27.2410494061 + 27.2458324693 + 27.2506163721 + 27.2554011146 + 27.2601866972 + 27.2649731198 + 27.2697603827 + 27.274548486 + 27.2793374298 + 27.2841272143 + 27.2889178396 + 27.293709306 + 27.2985016134 + 27.3032947621 + 27.3080887523 + 27.312883584 + 27.3176792575 + 27.3224757728 + 27.3272731301 + 27.3320713296 + 27.3368703714 + 27.3416702557 + 27.3464709825 + 27.3512725522 + 27.3560749647 + 27.3608782203 + 27.3656823191 + 27.3704872612 + 27.3752930468 + 27.3800996761 + 27.3849071492 + 27.3897154662 + 27.3945246273 + 27.3993346326 + 27.4041454823 + 27.4089571766 + 27.4137697155 + 27.4185830993 + 27.423397328 + 27.4282124019 + 27.433028321 + 27.4378450855 + 27.4426626957 + 27.4474811515 + 27.4523004532 + 27.457120601 + 27.4619415949 + 27.4667634351 + 27.4715861217 + 27.476409655 + 27.4812340351 + 27.486059262 + 27.490885336 + 27.4957122572 + 27.5005400258 + 27.5053686419 + 27.5101981056 + 27.5150284171 + 27.5198595766 + 27.5246915842 + 27.52952444 + 27.5343581442 + 27.5391926969 + 27.5440280984 + 27.5488643487 + 27.553701448 + 27.5585393964 + 27.5633781941 + 27.5682178413 + 27.573058338 + 27.5778996845 + 27.5827418809 + 27.5875849273 + 27.5924288238 + 27.5972735708 + 27.6021191682 + 27.6069656162 + 27.611812915 + 27.6166610648 + 27.6215100656 + 27.6263599177 + 27.6312106211 + 27.6360621761 + 27.6409145827 + 27.6457678412 + 27.6506219516 + 27.6554769142 + 27.6603327291 + 27.6651893964 + 27.6700469162 + 27.6749052888 + 27.6797645143 + 27.6846245927 + 27.6894855244 + 27.6943473094 + 27.6992099478 + 27.7040734399 + 27.7089377858 + 27.7138029856 + 27.7186690394 + 27.7235359475 + 27.7284037099 + 27.7332723269 + 27.7381417986 + 27.743012125 + 27.7478833065 + 27.752755343 + 27.7576282349 + 27.7625019821 + 27.767376585 + 27.7722520436 + 27.777128358 + 27.7820055285 + 27.7868835551 + 27.7917624381 + 27.7966421775 + 27.8015227736 + 27.8064042264 + 27.8112865362 + 27.816169703 + 27.8210537271 + 27.8259386086 + 27.8308243476 + 27.8357109442 + 27.8405983987 + 27.8454867112 + 27.8503758818 + 27.8552659107 + 27.860156798 + 27.8650485439 + 27.8699411485 + 27.8748346121 + 27.8797289346 + 27.8846241164 + 27.8895201574 + 27.894417058 + 27.8993148182 + 27.9042134382 + 27.9091129181 + 27.9140132582 + 27.9189144584 + 27.9238165191 + 27.9287194403 + 27.9336232222 + 27.938527865 + 27.9434333687 + 27.9483397336 + 27.9532469598 + 27.9581550474 + 27.9630639967 + 27.9679738077 + 27.9728844806 + 27.9777960156 + 27.9827084128 + 27.9876216723 + 27.9925357943 + 27.997450779 + 28.0023666266 + 28.007283337 + 28.0122009106 + 28.0171193475 + 28.0220386478 + 28.0269588117 + 28.0318798392 + 28.0368017307 + 28.0417244862 + 28.0466481058 + 28.0515725898 + 28.0564979383 + 28.0614241514 + 28.0663512293 + 28.0712791721 + 28.07620798 + 28.0811376532 + 28.0860681917 + 28.0909995958 + 28.0959318656 + 28.1008650012 + 28.1057990028 + 28.1107338706 + 28.1156696047 + 28.1206062053 + 28.1255436724 + 28.1304820063 + 28.1354212071 + 28.140361275 + 28.1453022101 + 28.1502440126 + 28.1551866826 + 28.1601302203 + 28.1650746257 + 28.1700198992 + 28.1749660408 + 28.1799130507 + 28.184860929 + 28.1898096759 + 28.1947592916 + 28.1997097761 + 28.2046611297 + 28.2096133525 + 28.2145664446 + 28.2195204063 + 28.2244752375 + 28.2294309386 + 28.2343875097 + 28.2393449509 + 28.2443032623 + 28.2492624442 + 28.2542224966 + 28.2591834198 + 28.2641452138 + 28.2691078789 + 28.2740714151 + 28.2790358227 + 28.2840011018 + 28.2889672525 + 28.293934275 + 28.2989021695 + 28.303870936 + 28.3088405749 + 28.3138110861 + 28.3187824699 + 28.3237547264 + 28.3287278557 + 28.3337018581 + 28.3386767337 + 28.3436524826 + 28.348629105 + 28.353606601 + 28.3585849708 + 28.3635642145 + 28.3685443323 + 28.3735253244 + 28.3785071909 + 28.3834899319 + 28.3884735476 + 28.3934580382 + 28.3984434038 + 28.4034296446 + 28.4084167607 + 28.4134047523 + 28.4183936195 + 28.4233833625 + 28.4283739814 + 28.4333654764 + 28.4383578477 + 28.4433510954 + 28.4483452196 + 28.4533402205 + 28.4583360983 + 28.4633328531 + 28.468330485 + 28.4733289943 + 28.4783283811 + 28.4833286455 + 28.4883297876 + 28.4933318078 + 28.498334706 + 28.5033384824 + 28.5083431373 + 28.5133486707 + 28.5183550828 + 28.5233623738 + 28.5283705438 + 28.5333795929 + 28.5383895214 + 28.5434003294 + 28.548412017 + 28.5534245844 + 28.5584380317 + 28.5634523592 + 28.5684675669 + 28.573483655 + 28.5785006236 + 28.583518473 + 28.5885372033 + 28.5935568146 + 28.598577307 + 28.6035986808 + 28.6086209361 + 28.613644073 + 28.6186680917 + 28.6236929924 + 28.6287187752 + 28.6337454402 + 28.6387729877 + 28.6438014178 + 28.6488307305 + 28.6538609262 + 28.6588920049 + 28.6639239668 + 28.668956812 + 28.6739905407 + 28.6790251531 + 28.6840606493 + 28.6890970295 + 28.6941342938 + 28.6991724424 + 28.7042114754 + 28.709251393 + 28.7142921954 + 28.7193338826 + 28.7243764549 + 28.7294199125 + 28.7344642554 + 28.7395094838 + 28.7445555978 + 28.7496025978 + 28.7546504837 + 28.7596992557 + 28.7647489141 + 28.7697994589 + 28.7748508903 + 28.7799032085 + 28.7849564136 + 28.7900105058 + 28.7950654852 + 28.800121352 + 28.8051781063 + 28.8102357484 + 28.8152942783 + 28.8203536962 + 28.8254140023 + 28.8304751967 + 28.8355372796 + 28.8406002511 + 28.8456641114 + 28.8507288607 + 28.8557944991 + 28.8608610267 + 28.8659284437 + 28.8709967504 + 28.8760659467 + 28.8811360329 + 28.8862070092 + 28.8912788757 + 28.8963516325 + 28.9014252798 + 28.9064998178 + 28.9115752467 + 28.9166515665 + 28.9217287774 + 28.9268068796 + 28.9318858733 + 28.9369657586 + 28.9420465356 + 28.9471282046 + 28.9522107656 + 28.9572942189 + 28.9623785646 + 28.9674638028 + 28.9725499337 + 28.9776369574 + 28.9827248742 + 28.9878136841 + 28.9929033874 + 28.9979939842 + 29.0030854746 + 29.0081778588 + 29.0132711369 + 29.0183653092 + 29.0234603757 + 29.0285563367 + 29.0336531922 + 29.0387509425 + 29.0438495877 + 29.0489491279 + 29.0540495634 + 29.0591508942 + 29.0642531205 + 29.0693562426 + 29.0744602604 + 29.0795651743 + 29.0846709843 + 29.0897776906 + 29.0948852934 + 29.0999937929 + 29.1051031891 + 29.1102134822 + 29.1153246725 + 29.12043676 + 29.1255497449 + 29.1306636274 + 29.1357784076 + 29.1408940857 + 29.1460106619 + 29.1511281363 + 29.156246509 + 29.1613657802 + 29.1664859501 + 29.1716070189 + 29.1767289866 + 29.1818518535 + 29.1869756197 + 29.1921002853 + 29.1972258506 + 29.2023523157 + 29.2074796807 + 29.2126079458 + 29.2177371111 + 29.2228671769 + 29.2279981432 + 29.2331300102 + 29.2382627782 + 29.2433964472 + 29.2485310174 + 29.2536664889 + 29.258802862 + 29.2639401367 + 29.2690783133 + 29.2742173919 + 29.2793573726 + 29.2844982557 + 29.2896400412 + 29.2947827293 + 29.2999263203 + 29.3050708141 + 29.3102162111 + 29.3153625113 + 29.320509715 + 29.3256578222 + 29.3308068332 + 29.3359567481 + 29.341107567 + 29.3462592901 + 29.3514119176 + 29.3565654497 + 29.3617198864 + 29.366875228 + 29.3720314746 + 29.3771886263 + 29.3823466834 + 29.387505646 + 29.3926655142 + 29.3978262882 + 29.4029879681 + 29.4081505542 + 29.4133140466 + 29.4184784454 + 29.4236437508 + 29.428809963 + 29.433977082 + 29.4391451082 + 29.4443140416 + 29.4494838824 + 29.4546546307 + 29.4598262867 + 29.4649988506 + 29.4701723226 + 29.4753467027 + 29.4805219912 + 29.4856981882 + 29.4908752939 + 29.4960533083 + 29.5012322318 + 29.5064120644 + 29.5115928064 + 29.5167744578 + 29.5219570188 + 29.5271404896 + 29.5323248704 + 29.5375101612 + 29.5426963623 + 29.5478834739 + 29.553071496 + 29.5582604289 + 29.5634502727 + 29.5686410275 + 29.5738326936 + 29.5790252711 + 29.5842187601 + 29.5894131608 + 29.5946084733 + 29.5998046979 + 29.6050018347 + 29.6101998838 + 29.6153988454 + 29.6205987197 + 29.6257995069 + 29.631001207 + 29.6362038202 + 29.6414073468 + 29.6466117868 + 29.6518171404 + 29.6570234078 + 29.6622305892 + 29.6674386847 + 29.6726476945 + 29.6778576187 + 29.6830684574 + 29.6882802109 + 29.6934928794 + 29.6987064629 + 29.7039209616 + 29.7091363757 + 29.7143527054 + 29.7195699508 + 29.7247881121 + 29.7300071894 + 29.7352271829 + 29.7404480928 + 29.7456699191 + 29.7508926622 + 29.7561163221 + 29.761340899 + 29.766566393 + 29.7717928044 + 29.7770201333 + 29.7822483798 + 29.7874775441 + 29.7927076264 + 29.7979386268 + 29.8031705455 + 29.8084033826 + 29.8136371384 + 29.8188718129 + 29.8241074064 + 29.8293439189 + 29.8345813507 + 29.839819702 + 29.8450589728 + 29.8502991634 + 29.8555402738 + 29.8607823043 + 29.8660252551 + 29.8712691262 + 29.8765139179 + 29.8817596303 + 29.8870062636 + 29.8922538179 + 29.8975022934 + 29.9027516902 + 29.9080020086 + 29.9132532486 + 29.9185054105 + 29.9237584944 + 29.9290125005 + 29.9342674289 + 29.9395232797 + 29.9447800533 + 29.9500377496 + 29.9552963689 + 29.9605559114 + 29.9658163772 + 29.9710777664 + 29.9763400792 + 29.9816033158 + 29.9868674764 + 29.9921325611 + 29.9973985701 + 30.0026655035 + 30.0079333615 + 30.0132021442 + 30.0184718519 + 30.0237424846 + 30.0290140426 + 30.034286526 + 30.039559935 + 30.0448342698 + 30.0501095304 + 30.055385717 + 30.0606628299 + 30.0659408692 + 30.071219835 + 30.0764997276 + 30.081780547 + 30.0870622934 + 30.0923449671 + 30.0976285681 + 30.1029130966 + 30.1081985528 + 30.1134849368 + 30.1187722489 + 30.1240604892 + 30.1293496577 + 30.1346397548 + 30.1399307806 + 30.1452227351 + 30.1505156187 + 30.1558094314 + 30.1611041734 + 30.1663998449 + 30.1716964461 + 30.176993977 + 30.182292438 + 30.187591829 + 30.1928921504 + 30.1981934022 + 30.2034955846 + 30.2087986978 + 30.214102742 + 30.2194077173 + 30.2247136238 + 30.2300204618 + 30.2353282314 + 30.2406369327 + 30.245946566 + 30.2512571314 + 30.256568629 + 30.2618810591 + 30.2671944217 + 30.2725087171 + 30.2778239454 + 30.2831401068 + 30.2884572014 + 30.2937752294 + 30.299094191 + 30.3044140863 + 30.3097349155 + 30.3150566788 + 30.3203793763 + 30.3257030082 + 30.3310275746 + 30.3363530757 + 30.3416795117 + 30.3470068828 + 30.3523351891 + 30.3576644307 + 30.3629946079 + 30.3683257207 + 30.3736577695 + 30.3789907542 + 30.3843246752 + 30.3896595325 + 30.3949953263 + 30.4003320569 + 30.4056697242 + 30.4110083286 + 30.4163478702 + 30.4216883491 + 30.4270297655 + 30.4323721196 + 30.4377154115 + 30.4430596414 + 30.4484048095 + 30.4537509159 + 30.4590979609 + 30.4644459444 + 30.4697948668 + 30.4751447282 + 30.4804955288 + 30.4858472686 + 30.491199948 + 30.496553567 + 30.5019081258 + 30.5072636246 + 30.5126200635 + 30.5179774428 + 30.5233357625 + 30.5286950229 + 30.5340552241 + 30.5394163662 + 30.5447784495 + 30.550141474 + 30.5555054401 + 30.5608703478 + 30.5662361972 + 30.5716029887 + 30.5769707222 + 30.5823393981 + 30.5877090164 + 30.5930795773 + 30.598451081 + 30.6038235277 + 30.6091969175 + 30.6145712506 + 30.6199465271 + 30.6253227472 + 30.6306999111 + 30.636078019 + 30.641457071 + 30.6468370673 + 30.652218008 + 30.6575998933 + 30.6629827234 + 30.6683664985 + 30.6737512186 + 30.679136884 + 30.6845234949 + 30.6899110514 + 30.6952995536 + 30.7006890018 + 30.7060793961 + 30.7114707366 + 30.7168630236 + 30.7222562572 + 30.7276504376 + 30.7330455649 + 30.7384416393 + 30.7438386609 + 30.74923663 + 30.7546355468 + 30.7600354112 + 30.7654362236 + 30.7708379841 + 30.7762406929 + 30.7816443501 + 30.7870489559 + 30.7924545104 + 30.7978610139 + 30.8032684665 + 30.8086768684 + 30.8140862197 + 30.8194965206 + 30.8249077712 + 30.8303199718 + 30.8357331225 + 30.8411472234 + 30.8465622748 + 30.8519782768 + 30.8573952295 + 30.8628131332 + 30.868231988 + 30.873651794 + 30.8790725515 + 30.8844942606 + 30.8899169214 + 30.8953405342 + 30.9007650991 + 30.9061906162 + 30.9116170858 + 30.917044508 + 30.9224728829 + 30.9279022108 + 30.9333324918 + 30.9387637261 + 30.9441959138 + 30.9496290551 + 30.9550631502 + 30.9604981993 + 30.9659342024 + 30.9713711598 + 30.9768090717 + 30.9822479382 + 30.9876877594 + 30.9931285356 + 30.998570267 + 31.0040129536 + 31.0094565956 + 31.0149011933 + 31.0203467467 + 31.0257932562 + 31.0312407217 + 31.0366891435 + 31.0421385218 + 31.0475888567 + 31.0530401484 + 31.058492397 + 31.0639456028 + 31.0693997659 + 31.0748548864 + 31.0803109646 + 31.0857680006 + 31.0912259946 + 31.0966849466 + 31.102144857 + 31.1076057259 + 31.1130675534 + 31.1185303397 + 31.123994085 + 31.1294587895 + 31.1349244532 + 31.1403910765 + 31.1458586594 + 31.1513272021 + 31.1567967048 + 31.1622671676 + 31.1677385908 + 31.1732109745 + 31.1786843189 + 31.184158624 + 31.1896338902 + 31.1951101176 + 31.2005873062 + 31.2060654564 + 31.2115445683 + 31.217024642 + 31.2225056777 + 31.2279876757 + 31.2334706359 + 31.2389545587 + 31.2444394442 + 31.2499252925 + 31.2554121038 + 31.2608998784 + 31.2663886163 + 31.2718783178 + 31.2773689829 + 31.2828606119 + 31.288353205 + 31.2938467623 + 31.299341284 + 31.3048367702 + 31.3103332211 + 31.3158306369 + 31.3213290178 + 31.3268283639 + 31.3323286754 + 31.3378299524 + 31.3433321952 + 31.3488354039 + 31.3543395787 + 31.3598447197 + 31.3653508272 + 31.3708579012 + 31.376365942 + 31.3818749497 + 31.3873849245 + 31.3928958665 + 31.398407776 + 31.4039206531 + 31.4094344979 + 31.4149493107 + 31.4204650917 + 31.4259818408 + 31.4314995585 + 31.4370182448 + 31.4425378998 + 31.4480585238 + 31.453580117 + 31.4591026794 + 31.4646262114 + 31.4701507129 + 31.4756761843 + 31.4812026257 + 31.4867300372 + 31.492258419 + 31.4977877714 + 31.5033180944 + 31.5088493882 + 31.514381653 + 31.519914889 + 31.5254490964 + 31.5309842753 + 31.5365204258 + 31.5420575483 + 31.5475956427 + 31.5531347094 + 31.5586747484 + 31.5642157599 + 31.5697577442 + 31.5753007013 + 31.5808446315 + 31.586389535 + 31.5919354118 + 31.5974822622 + 31.6030300863 + 31.6085788843 + 31.6141286564 + 31.6196794028 + 31.6252311235 + 31.6307838189 + 31.636337489 + 31.6418921341 + 31.6474477542 + 31.6530043497 + 31.6585619206 + 31.6641204671 + 31.6696799893 + 31.6752404876 + 31.680801962 + 31.6863644127 + 31.6919278398 + 31.6974922436 + 31.7030576243 + 31.7086239819 + 31.7141913166 + 31.7197596287 + 31.7253289183 + 31.7308991856 + 31.7364704308 + 31.7420426539 + 31.7476158552 + 31.7531900349 + 31.7587651932 + 31.7643413301 + 31.7699184459 + 31.7754965408 + 31.7810756149 + 31.7866556683 + 31.7922367014 + 31.7978187142 + 31.8034017068 + 31.8089856796 + 31.8145706326 + 31.8201565661 + 31.8257434801 + 31.8313313749 + 31.8369202507 + 31.8425101075 + 31.8481009457 + 31.8536927653 + 31.8592855665 + 31.8648793496 + 31.8704741146 + 31.8760698617 + 31.8816665912 + 31.8872643032 + 31.8928629978 + 31.8984626753 + 31.9040633358 + 31.9096649795 + 31.9152676065 + 31.920871217 + 31.9264758113 + 31.9320813894 + 31.9376879516 + 31.9432954979 + 31.9489040287 + 31.9545135441 + 31.9601240441 + 31.9657355291 + 31.9713479992 + 31.9769614545 + 31.9825758952 + 31.9881913216 + 31.9938077337 + 31.9994251318 + 32.005043516 + 32.0106628865 + 32.0162832434 + 32.021904587 + 32.0275269174 + 32.0331502348 + 32.0387745394 + 32.0443998312 + 32.0500261106 + 32.0556533777 + 32.0612816326 + 32.0669108756 + 32.0725411067 + 32.0781723262 + 32.0838045343 + 32.0894377311 + 32.0950719168 + 32.1007070915 + 32.1063432555 + 32.1119804089 + 32.1176185519 + 32.1232576847 + 32.1288978074 + 32.1345389202 + 32.1401810232 + 32.1458241168 + 32.1514682009 + 32.1571132759 + 32.1627593419 + 32.168406399 + 32.1740544474 + 32.1797034874 + 32.185353519 + 32.1910045424 + 32.1966565579 + 32.2023095656 + 32.2079635656 + 32.2136185582 + 32.2192745436 + 32.2249315218 + 32.230589493 + 32.2362484576 + 32.2419084155 + 32.247569367 + 32.2532313123 + 32.2588942516 + 32.2645581849 + 32.2702231126 + 32.2758890347 + 32.2815559514 + 32.287223863 + 32.2928927695 + 32.2985626712 + 32.3042335683 + 32.3099054608 + 32.3155783491 + 32.3212522332 + 32.3269271133 + 32.3326029897 + 32.3382798624 + 32.3439577317 + 32.3496365977 + 32.3553164607 + 32.3609973207 + 32.366679178 + 32.3723620328 + 32.3780458851 + 32.3837307352 + 32.3894165833 + 32.3951034295 + 32.4007912741 + 32.4064801171 + 32.4121699588 + 32.4178607993 + 32.4235526388 + 32.4292454776 + 32.4349393156 + 32.4406341533 + 32.4463299906 + 32.4520268278 + 32.4577246651 + 32.4634235027 + 32.4691233406 + 32.4748241792 + 32.4805260185 + 32.4862288588 + 32.4919327001 + 32.4976375428 + 32.503343387 + 32.5090502328 + 32.5147580804 + 32.52046693 + 32.5261767818 + 32.5318876359 + 32.5375994926 + 32.5433123519 + 32.5490262142 + 32.5547410795 + 32.560456948 + 32.5661738199 + 32.5718916955 + 32.5776105747 + 32.583330458 + 32.5890513453 + 32.5947732369 + 32.600496133 + 32.6062200337 + 32.6119449392 + 32.6176708497 + 32.6233977654 + 32.6291256865 + 32.634854613 + 32.6405845453 + 32.6463154834 + 32.6520474276 + 32.657780378 + 32.6635143349 + 32.6692492983 + 32.6749852684 + 32.6807222455 + 32.6864602297 + 32.6921992212 + 32.6979392202 + 32.7036802268 + 32.7094222412 + 32.7151652637 + 32.7209092943 + 32.7266543332 + 32.7324003807 + 32.7381474369 + 32.7438955019 + 32.7496445761 + 32.7553946594 + 32.7611457522 + 32.7668978545 + 32.7726509667 + 32.7784050887 + 32.7841602209 + 32.7899163634 + 32.7956735164 + 32.80143168 + 32.8071908545 + 32.8129510399 + 32.8187122366 + 32.8244744446 + 32.8302376641 + 32.8360018954 + 32.8417671386 + 32.8475333938 + 32.8533006613 + 32.8590689412 + 32.8648382338 + 32.8706085391 + 32.8763798574 + 32.8821521888 + 32.8879255335 + 32.8936998917 + 32.8994752637 + 32.9052516494 + 32.9110290492 + 32.9168074632 + 32.9225868916 + 32.9283673345 + 32.9341487922 + 32.9399312648 + 32.9457147526 + 32.9514992555 + 32.957284774 + 32.9630713081 + 32.968858858 + 32.9746474238 + 32.9804370059 + 32.9862276043 + 32.9920192192 + 32.9978118508 + 33.0036054993 + 33.0094001649 + 33.0151958477 + 33.0209925479 + 33.0267902657 + 33.0325890013 + 33.0383887549 + 33.0441895265 + 33.0499913165 + 33.055794125 + 33.0615979522 + 33.0674027982 + 33.0732086632 + 33.0790155474 + 33.084823451 + 33.0906323742 + 33.0964423171 + 33.10225328 + 33.1080652629 + 33.1138782661 + 33.1196922898 + 33.1255073341 + 33.1313233992 + 33.1371404854 + 33.1429585927 + 33.1487777213 + 33.1545978715 + 33.1604190434 + 33.1662412372 + 33.1720644531 + 33.1778886912 + 33.1837139517 + 33.1895402349 + 33.1953675408 + 33.2011958698 + 33.2070252218 + 33.2128555972 + 33.2186869961 + 33.2245194187 + 33.2303528652 + 33.2361873357 + 33.2420228304 + 33.2478593495 + 33.2536968933 + 33.2595354617 + 33.2653750552 + 33.2712156737 + 33.2770573176 + 33.282899987 + 33.288743682 + 33.2945884028 + 33.3004341497 + 33.3062809228 + 33.3121287223 + 33.3179775484 + 33.3238274012 + 33.3296782809 + 33.3355301877 + 33.3413831219 + 33.3472370834 + 33.3530920727 + 33.3589480897 + 33.3648051348 + 33.3706632081 + 33.3765223097 + 33.3823824399 + 33.3882435988 + 33.3941057867 + 33.3999690036 + 33.4058332498 + 33.4116985254 + 33.4175648307 + 33.4234321658 + 33.4293005309 + 33.4351699262 + 33.4410403518 + 33.446911808 + 33.4527842949 + 33.4586578127 + 33.4645323615 + 33.4704079417 + 33.4762845532 + 33.4821621964 + 33.4880408714 + 33.4939205784 + 33.4998013176 + 33.5056830891 + 33.5115658931 + 33.5174497299 + 33.5233345995 + 33.5292205023 + 33.5351074382 + 33.5409954077 + 33.5468844107 + 33.5527744475 + 33.5586655183 + 33.5645576233 + 33.5704507626 + 33.5763449365 + 33.582240145 + 33.5881363885 + 33.594033667 + 33.5999319807 + 33.6058313299 + 33.6117317148 + 33.6176331354 + 33.623535592 + 33.6294390847 + 33.6353436138 + 33.6412491794 + 33.6471557818 + 33.653063421 + 33.6589720973 + 33.6648818108 + 33.6707925618 + 33.6767043504 + 33.6826171768 + 33.6885310412 + 33.6944459437 + 33.7003618846 + 33.7062788641 + 33.7121968822 + 33.7181159392 + 33.7240360353 + 33.7299571707 + 33.7358793455 + 33.7418025599 + 33.7477268141 + 33.7536521083 + 33.7595784427 + 33.7655058175 + 33.7714342327 + 33.7773636887 + 33.7832941856 + 33.7892257236 + 33.7951583029 + 33.8010919236 + 33.8070265859 + 33.81296229 + 33.8188990362 + 33.8248368245 + 33.8307756552 + 33.8367155284 + 33.8426564444 + 33.8485984033 + 33.8545414052 + 33.8604854505 + 33.8664305392 + 33.8723766716 + 33.8783238478 + 33.884272068 + 33.8902213324 + 33.8961716411 + 33.9021229945 + 33.9080753926 + 33.9140288356 + 33.9199833237 + 33.9259388571 + 33.931895436 + 33.9378530606 + 33.943811731 + 33.9497714474 + 33.9557322101 + 33.9616940191 + 33.9676568748 + 33.9736207771 + 33.9795857265 + 33.985551723 + 33.9915187668 + 33.997486858 + 34.003455997 + 34.0094261839 + 34.0153974187 + 34.0213697019 + 34.0273430334 + 34.0333174136 + 34.0392928425 + 34.0452693204 + 34.0512468475 + 34.0572254239 + 34.0632050498 + 34.0691857255 + 34.075167451 + 34.0811502266 + 34.0871340525 + 34.0931189288 + 34.0991048557 + 34.1050918335 + 34.1110798622 + 34.1170689422 + 34.1230590735 + 34.1290502564 + 34.135042491 + 34.1410357775 + 34.1470301161 + 34.153025507 + 34.1590219504 + 34.1650194465 + 34.1710179954 + 34.1770175973 + 34.1830182525 + 34.189019961 + 34.1950227232 + 34.2010265391 + 34.2070314089 + 34.2130373329 + 34.2190443113 + 34.2250523441 + 34.2310614316 + 34.237071574 + 34.2430827715 + 34.2490950242 + 34.2551083324 + 34.2611226962 + 34.2671381158 + 34.2731545914 + 34.2791721231 + 34.2851907112 + 34.2912103559 + 34.2972310573 + 34.3032528156 + 34.3092756311 + 34.3152995038 + 34.321324434 + 34.3273504218 + 34.3333774675 + 34.3394055713 + 34.3454347332 + 34.3514649536 + 34.3574962325 + 34.3635285703 + 34.3695619669 + 34.3755964228 + 34.381631938 + 34.3876685126 + 34.393706147 + 34.3997448413 + 34.4057845957 + 34.4118254103 + 34.4178672854 + 34.4239102211 + 34.4299542176 + 34.4359992752 + 34.4420453939 + 34.4480925741 + 34.4541408157 + 34.4601901192 + 34.4662404846 + 34.4722919121 + 34.4783444019 + 34.4843979542 + 34.4904525692 + 34.4965082471 + 34.5025649881 + 34.5086227922 + 34.5146816599 + 34.5207415911 + 34.5268025861 + 34.5328646452 + 34.5389277684 + 34.544991956 + 34.5510572081 + 34.557123525 + 34.5631909068 + 34.5692593537 + 34.5753288659 + 34.5813994436 + 34.587471087 + 34.5935437962 + 34.5996175715 + 34.6056924131 + 34.611768321 + 34.6178452956 + 34.6239233369 + 34.6300024453 + 34.6360826208 + 34.6421638637 + 34.6482461741 + 34.6543295522 + 34.6604139983 + 34.6664995125 + 34.672586095 + 34.678673746 + 34.6847624656 + 34.6908522541 + 34.6969431117 + 34.7030350384 + 34.7091280346 + 34.7152221005 + 34.7213172361 + 34.7274134417 + 34.7335107175 + 34.7396090636 + 34.7457084803 + 34.7518089677 + 34.757910526 + 34.7640131555 + 34.7701168563 + 34.7762216285 + 34.7823274725 + 34.7884343882 + 34.7945423761 + 34.8006514362 + 34.8067615687 + 34.8128727739 + 34.8189850518 + 34.8250984027 + 34.8312128269 + 34.8373283244 + 34.8434448954 + 34.8495625402 + 34.855681259 + 34.8618010519 + 34.867921919 + 34.8740438607 + 34.8801668771 + 34.8862909684 + 34.8924161347 + 34.8985423763 + 34.9046696933 + 34.910798086 + 34.9169275545 + 34.923058099 + 34.9291897197 + 34.9353224168 + 34.9414561905 + 34.9475910409 + 34.9537269683 + 34.9598639729 + 34.9660020548 + 34.9721412142 + 34.9782814513 + 34.9844227664 + 34.9905651595 + 34.9967086309 + 35.0028531808 + 35.0089988093 + 35.0151455167 + 35.0212933031 + 35.0274421688 + 35.0335921138 + 35.0397431385 + 35.045895243 + 35.0520484275 + 35.0582026921 + 35.0643580371 + 35.0705144627 + 35.076671969 + 35.0828305562 + 35.0889902246 + 35.0951509743 + 35.1013128055 + 35.1074757183 + 35.1136397131 + 35.1198047899 + 35.1259709491 + 35.1321381906 + 35.1383065148 + 35.1444759218 + 35.1506464119 + 35.1568179852 + 35.1629906419 + 35.1691643821 + 35.1753392062 + 35.1815151142 + 35.1876921064 + 35.193870183 + 35.2000493441 + 35.2062295899 + 35.2124109207 + 35.2185933365 + 35.2247768377 + 35.2309614244 + 35.2371470968 + 35.243333855 + 35.2495216994 + 35.2557106299 + 35.261900647 + 35.2680917507 + 35.2742839412 + 35.2804772187 + 35.2866715835 + 35.2928670356 + 35.2990635754 + 35.3052612029 + 35.3114599184 + 35.3176597221 + 35.3238606141 + 35.3300625947 + 35.3362656641 + 35.3424698223 + 35.3486750697 + 35.3548814065 + 35.3610888327 + 35.3672973486 + 35.3735069544 + 35.3797176503 + 35.3859294364 + 35.3921423131 + 35.3983562804 + 35.4045713385 + 35.4107874876 + 35.417004728 + 35.4232230599 + 35.4294424833 + 35.4356629985 + 35.4418846057 + 35.4481073052 + 35.4543310969 + 35.4605559813 + 35.4667819584 + 35.4730090285 + 35.4792371918 + 35.4854664483 + 35.4916967984 + 35.4979282422 + 35.50416078 + 35.5103944118 + 35.516629138 + 35.5228649586 + 35.5291018739 + 35.5353398841 + 35.5415789894 + 35.5478191899 + 35.5540604859 + 35.5603028775 + 35.5665463649 + 35.5727909484 + 35.5790366281 + 35.5852834042 + 35.5915312769 + 35.5977802464 + 35.6040303129 + 35.6102814766 + 35.6165337377 + 35.6227870963 + 35.6290415527 + 35.6352971071 + 35.6415537596 + 35.6478115104 + 35.6540703598 + 35.6603303079 + 35.6665913549 + 35.6728535011 + 35.6791167465 + 35.6853810914 + 35.691646536 + 35.6979130805 + 35.7041807251 + 35.71044947 + 35.7167193153 + 35.7229902612 + 35.7292623081 + 35.7355354559 + 35.741809705 + 35.7480850555 + 35.7543615077 + 35.7606390616 + 35.7669177176 + 35.7731974758 + 35.7794783364 + 35.7857602995 + 35.7920433655 + 35.7983275344 + 35.8046128065 + 35.8108991819 + 35.8171866609 + 35.8234752437 + 35.8297649304 + 35.8360557212 + 35.8423476164 + 35.8486406161 + 35.8549347205 + 35.8612299299 + 35.8675262443 + 35.8738236641 + 35.8801221893 + 35.8864218202 + 35.8927225571 + 35.8990244 + 35.9053273491 + 35.9116314048 + 35.9179365671 + 35.9242428362 + 35.9305502124 + 35.9368586959 + 35.9431682868 + 35.9494789853 + 35.9557907917 + 35.962103706 + 35.9684177286 + 35.9747328596 + 35.9810490992 + 35.9873664476 + 35.993684905 + 36.0000044716 + 36.0063251476 + 36.0126469331 + 36.0189698285 + 36.0252938338 + 36.0316189492 + 36.037945175 + 36.0442725114 + 36.0506009585 + 36.0569305166 + 36.0632611858 + 36.0695929663 + 36.0759258584 + 36.0822598622 + 36.0885949779 + 36.0949312057 + 36.1012685458 + 36.1076069984 + 36.1139465638 + 36.120287242 + 36.1266290333 + 36.1329719379 + 36.139315956 + 36.1456610878 + 36.1520073334 + 36.1583546931 + 36.1647031671 + 36.1710527555 + 36.1774034586 + 36.1837552765 + 36.1901082094 + 36.1964622577 + 36.2028174213 + 36.2091737006 + 36.2155310957 + 36.2218896068 + 36.2282492342 + 36.234609978 + 36.2409718384 + 36.2473348156 + 36.2536989098 + 36.2600641212 + 36.26643045 + 36.2727978964 + 36.2791664606 + 36.2855361427 + 36.2919069431 + 36.2982788618 + 36.3046518991 + 36.3110260552 + 36.3174013302 + 36.3237777244 + 36.330155238 + 36.3365338711 + 36.342913624 + 36.3492944968 + 36.3556764898 + 36.3620596031 + 36.3684438369 + 36.3748291915 + 36.3812156671 + 36.3876032637 + 36.3939919817 + 36.4003818212 + 36.4067727824 + 36.4131648656 + 36.4195580708 + 36.4259523984 + 36.4323478485 + 36.4387444212 + 36.4451421169 + 36.4515409357 + 36.4579408778 + 36.4643419434 + 36.4707441326 + 36.4771474458 + 36.483551883 + 36.4899574446 + 36.4963641306 + 36.5027719412 + 36.5091808768 + 36.5155909374 + 36.5220021233 + 36.5284144347 + 36.5348278717 + 36.5412424346 + 36.5476581236 + 36.5540749388 + 36.5604928805 + 36.5669119488 + 36.573332144 + 36.5797534662 + 36.5861759156 + 36.5925994926 + 36.5990241971 + 36.6054500295 + 36.61187699 + 36.6183050786 + 36.6247342958 + 36.6311646415 + 36.6375961161 + 36.6440287197 + 36.6504624525 + 36.6568973148 + 36.6633333067 + 36.6697704284 + 36.6762086801 + 36.682648062 + 36.6890885744 + 36.6955302174 + 36.7019729912 + 36.708416896 + 36.714861932 + 36.7213080994 + 36.7277553985 + 36.7342038293 + 36.7406533922 + 36.7471040872 + 36.7535559147 + 36.7600088747 + 36.7664629676 + 36.7729181934 + 36.7793745525 + 36.785832045 + 36.792290671 + 36.7987504309 + 36.8052113247 + 36.8116733528 + 36.8181365152 + 36.8246008122 + 36.831066244 + 36.8375328108 + 36.8440005128 + 36.8504693502 + 36.8569393232 + 36.863410432 + 36.8698826767 + 36.8763560576 + 36.882830575 + 36.8893062289 + 36.8957830196 + 36.9022609472 + 36.9087400121 + 36.9152202143 + 36.9217015542 + 36.9281840318 + 36.9346676474 + 36.9411524012 + 36.9476382933 + 36.9541253241 + 36.9606134936 + 36.9671028021 + 36.9735932498 + 36.9800848368 + 36.9865775635 + 36.9930714299 + 36.9995664363 + 37.0060625829 + 37.0125598699 + 37.0190582975 + 37.0255578658 + 37.0320585751 + 37.0385604257 + 37.0450634176 + 37.051567551 + 37.0580728263 + 37.0645792436 + 37.071086803 + 37.0775955048 + 37.0841053492 + 37.0906163364 + 37.0971284666 + 37.10364174 + 37.1101561567 + 37.1166717171 + 37.1231884212 + 37.1297062693 + 37.1362252617 + 37.1427453984 + 37.1492666797 + 37.1557891058 + 37.1623126769 + 37.1688373932 + 37.1753632549 + 37.1818902622 + 37.1884184153 + 37.1949477144 + 37.2014781597 + 37.2080097514 + 37.2145424897 + 37.2210763748 + 37.2276114069 + 37.2341475862 + 37.240684913 + 37.2472233873 + 37.2537630095 + 37.2603037796 + 37.266845698 + 37.2733887648 + 37.2799329803 + 37.2864783445 + 37.2930248578 + 37.2995725203 + 37.3061213322 + 37.3126712938 + 37.3192224051 + 37.3257746665 + 37.3323280782 + 37.3388826403 + 37.345438353 + 37.3519952165 + 37.3585532311 + 37.365112397 + 37.3716727143 + 37.3782341832 + 37.384796804 + 37.3913605768 + 37.3979255019 + 37.4044915794 + 37.4110588096 + 37.4176271927 + 37.4241967288 + 37.4307674182 + 37.4373392611 + 37.4439122576 + 37.450486408 + 37.4570617125 + 37.4636381713 + 37.4702157845 + 37.4767945524 + 37.4833744752 + 37.4899555531 + 37.4965377863 + 37.503121175 + 37.5097057194 + 37.5162914197 + 37.5228782761 + 37.5294662887 + 37.5360554579 + 37.5426457839 + 37.5492372667 + 37.5558299066 + 37.5624237039 + 37.5690186587 + 37.5756147712 + 37.5822120417 + 37.5888104703 + 37.5954100572 + 37.6020108027 + 37.6086127069 + 37.61521577 + 37.6218199924 + 37.628425374 + 37.6350319152 + 37.6416396162 + 37.6482484772 + 37.6548584983 + 37.6614696798 + 37.6680820219 + 37.6746955247 + 37.6813101886 + 37.6879260136 + 37.694543 + 37.701161148 + 37.7077804578 + 37.7144009296 + 37.7210225636 + 37.7276453601 + 37.7342693191 + 37.740894441 + 37.7475207259 + 37.754148174 + 37.7607767855 + 37.7674065607 + 37.7740374998 + 37.7806696028 + 37.7873028702 + 37.7939373019 + 37.8005728984 + 37.8072096597 + 37.813847586 + 37.8204866777 + 37.8271269348 + 37.8337683576 + 37.8404109462 + 37.847054701 + 37.8536996221 + 37.8603457096 + 37.8669929639 + 37.8736413851 + 37.8802909733 + 37.8869417289 + 37.8935936521 + 37.9002467429 + 37.9069010017 + 37.9135564287 + 37.9202130239 + 37.9268707878 + 37.9335297203 + 37.9401898219 + 37.9468510926 + 37.9535135326 + 37.9601771423 + 37.9668419217 + 37.9735078711 + 37.9801749907 + 37.9868432807 + 37.9935127413 + 38.0001833727 + 38.0068551751 + 38.0135281488 + 38.0202022938 + 38.0268776105 + 38.0335540991 + 38.0402317596 + 38.0469105924 + 38.0535905977 + 38.0602717756 + 38.0669541264 + 38.0736376503 + 38.0803223474 + 38.087008218 + 38.0936952623 + 38.1003834805 + 38.1070728728 + 38.1137634394 + 38.1204551806 + 38.1271480964 + 38.1338421872 + 38.140537453 + 38.1472338943 + 38.1539315111 + 38.1606303036 + 38.1673302721 + 38.1740314167 + 38.1807337377 + 38.1874372353 + 38.1941419097 + 38.200847761 + 38.2075547896 + 38.2142629955 + 38.2209723791 + 38.2276829405 + 38.2343946799 + 38.2411075975 + 38.2478216936 + 38.2545369683 + 38.2612534219 + 38.2679710545 + 38.2746898664 + 38.2814098577 + 38.2881310288 + 38.2948533797 + 38.3015769107 + 38.308301622 + 38.3150275138 + 38.3217545863 + 38.3284828398 + 38.3352122744 + 38.3419428903 + 38.3486746877 + 38.3554076669 + 38.3621418281 + 38.3688771714 + 38.3756136971 + 38.3823514054 + 38.3890902965 + 38.3958303705 + 38.4025716278 + 38.4093140685 + 38.4160576928 + 38.4228025009 + 38.4295484931 + 38.4362956695 + 38.4430440303 + 38.4497935758 + 38.4565443062 + 38.4632962216 + 38.4700493224 + 38.4768036086 + 38.4835590805 + 38.4903157383 + 38.4970735823 + 38.5038326126 + 38.5105928293 + 38.5173542329 + 38.5241168234 + 38.530880601 + 38.537645566 + 38.5444117186 + 38.5511790589 + 38.5579475873 + 38.5647173038 + 38.5714882088 + 38.5782603023 + 38.5850335847 + 38.5918080561 + 38.5985837168 + 38.6053605669 + 38.6121386067 + 38.6189178363 + 38.6256982561 + 38.6324798661 + 38.6392626666 + 38.6460466578 + 38.6528318399 + 38.6596182131 + 38.6664057777 + 38.6731945338 + 38.6799844817 + 38.6867756215 + 38.6935679535 + 38.7003614778 + 38.7071561948 + 38.7139521045 + 38.7207492073 + 38.7275475032 + 38.7343469926 + 38.7411476757 + 38.7479495525 + 38.7547526234 + 38.7615568886 + 38.7683623483 + 38.7751690026 + 38.7819768518 + 38.7887858962 + 38.7955961358 + 38.8024075709 + 38.8092202018 + 38.8160340287 + 38.8228490516 + 38.829665271 + 38.8364826869 + 38.8433012996 + 38.8501211093 + 38.8569421161 + 38.8637643204 + 38.8705877223 + 38.8774123221 + 38.8842381199 + 38.8910651159 + 38.8978933104 + 38.9047227036 + 38.9115532956 + 38.9183850868 + 38.9252180772 + 38.9320522672 + 38.9388876569 + 38.9457242465 + 38.9525620363 + 38.9594010264 + 38.9662412171 + 38.9730826086 + 38.9799252011 + 38.9867689948 + 38.9936139898 + 39.0004601865 + 39.0073075851 + 39.0141561856 + 39.0210059885 + 39.0278569938 + 39.0347092017 + 39.0415626126 + 39.0484172266 + 39.0552730438 + 39.0621300646 + 39.0689882892 + 39.0758477176 + 39.0827083503 + 39.0895701873 + 39.0964332288 + 39.1032974752 + 39.1101629266 + 39.1170295831 + 39.1238974451 + 39.1307665128 + 39.1376367863 + 39.1445082658 + 39.1513809516 + 39.1582548439 + 39.1651299429 + 39.1720062488 + 39.1788837618 + 39.1857624822 + 39.1926424101 + 39.1995235457 + 39.2064058893 + 39.2132894411 + 39.2201742013 + 39.2270601701 + 39.2339473477 + 39.2408357343 + 39.2477253302 + 39.2546161355 + 39.2615081505 + 39.2684013753 + 39.2752958103 + 39.2821914555 + 39.2890883113 + 39.2959863778 + 39.3028856552 + 39.3097861438 + 39.3166878437 + 39.3235907552 + 39.3304948785 + 39.3374002138 + 39.3443067613 + 39.3512145213 + 39.3581234939 + 39.3650336793 + 39.3719450778 + 39.3788576896 + 39.3857715149 + 39.3926865539 + 39.3996028068 + 39.4065202738 + 39.4134389552 + 39.4203588511 + 39.4272799618 + 39.4342022875 + 39.4411258284 + 39.4480505847 + 39.4549765566 + 39.4619037443 + 39.4688321481 + 39.4757617682 + 39.4826926047 + 39.489624658 + 39.4965579281 + 39.5034924154 + 39.51042812 + 39.5173650421 + 39.524303182 + 39.5312425399 + 39.538183116 + 39.5451249104 + 39.5520679235 + 39.5590121554 + 39.5659576063 + 39.5729042765 + 39.5798521662 + 39.5868012756 + 39.5937516048 + 39.6007031542 + 39.6076559239 + 39.6146099141 + 39.6215651251 + 39.6285215571 + 39.6354792102 + 39.6424380848 + 39.649398181 + 39.6563594989 + 39.663322039 + 39.6702858013 + 39.677250786 + 39.6842169935 + 39.6911844238 + 39.6981530773 + 39.7051229541 + 39.7120940544 + 39.7190663785 + 39.7260399266 + 39.7330146988 + 39.7399906955 + 39.7469679168 + 39.7539463629 + 39.760926034 + 39.7679069305 + 39.7748890524 + 39.7818724 + 39.7888569735 + 39.7958427731 + 39.8028297991 + 39.8098180516 + 39.8168075309 + 39.8237982372 + 39.8307901707 + 39.8377833316 + 39.8447777201 + 39.8517733365 + 39.8587701809 + 39.8657682537 + 39.8727675549 + 39.8797680848 + 39.8867698437 + 39.8937728317 + 39.900777049 + 39.9077824959 + 39.9147891727 + 39.9217970794 + 39.9288062163 + 39.9358165837 + 39.9428281817 + 39.9498410106 + 39.9568550706 + 39.9638703619 + 39.9708868847 + 39.9779046392 + 39.9849236257 + 39.9919438443 + 39.9989652954 + 40.005987979 + 40.0130118954 + 40.0200370449 + 40.0270634276 + 40.0340910438 + 40.0411198937 + 40.0481499775 + 40.0551812953 + 40.0622138475 + 40.0692476343 + 40.0762826558 + 40.0833189123 + 40.090356404 + 40.0973951311 + 40.1044350939 + 40.1114762925 + 40.1185187271 + 40.1255623981 + 40.1326073055 + 40.1396534496 + 40.1467008307 + 40.153749449 + 40.1607993046 + 40.1678503977 + 40.1749027287 + 40.1819562977 + 40.189011105 + 40.1960671507 + 40.2031244351 + 40.2101829583 + 40.2172427207 + 40.2243037224 + 40.2313659636 + 40.2384294446 + 40.2454941656 + 40.2525601267 + 40.2596273283 + 40.2666957705 + 40.2737654535 + 40.2808363777 + 40.2879085431 + 40.29498195 + 40.3020565986 + 40.3091324891 + 40.3162096218 + 40.3232879969 + 40.3303676146 + 40.3374484751 + 40.3445305786 + 40.3516139254 + 40.3586985156 + 40.3657843495 + 40.3728714273 + 40.3799597492 + 40.3870493155 + 40.3941401263 + 40.4012321819 + 40.4083254825 + 40.4154200282 + 40.4225158195 + 40.4296128563 + 40.4367111391 + 40.4438106679 + 40.450911443 + 40.4580134647 + 40.4651167331 + 40.4722212484 + 40.479327011 + 40.4864340209 + 40.4935422785 + 40.5006517839 + 40.5077625373 + 40.514874539 + 40.5219877893 + 40.5291022882 + 40.536218036 + 40.5433350331 + 40.5504532795 + 40.5575727754 + 40.5646935212 + 40.571815517 + 40.5789387631 + 40.5860632596 + 40.5931890068 + 40.600316005 + 40.6074442542 + 40.6145737548 + 40.621704507 + 40.6288365109 + 40.6359697669 + 40.6431042751 + 40.6502400357 + 40.657377049 + 40.6645153152 + 40.6716548345 + 40.6787956071 + 40.6859376332 + 40.6930809132 + 40.7002254471 + 40.7073712352 + 40.7145182777 + 40.7216665749 + 40.7288161269 + 40.7359669341 + 40.7431189965 + 40.7502723145 + 40.7574268882 + 40.7645827179 + 40.7717398037 + 40.778898146 + 40.7860577449 + 40.7932186007 + 40.8003807135 + 40.8075440836 + 40.8147087112 + 40.8218745966 + 40.8290417399 + 40.8362101414 + 40.8433798013 + 40.8505507198 + 40.8577228971 + 40.8648963335 + 40.8720710292 + 40.8792469844 + 40.8864241993 + 40.8936026741 + 40.9007824091 + 40.9079634045 + 40.9151456605 + 40.9223291773 + 40.9295139552 + 40.9366999943 + 40.9438872949 + 40.9510758573 + 40.9582656816 + 40.965456768 + 40.9726491168 + 40.9798427282 + 40.9870376024 + 40.9942337397 + 41.0014311403 + 41.0086298043 + 41.015829732 + 41.0230309237 + 41.0302333795 + 41.0374370997 + 41.0446420844 + 41.051848334 + 41.0590558487 + 41.0662646286 + 41.0734746739 + 41.080685985 + 41.087898562 + 41.0951124052 + 41.1023275147 + 41.1095438909 + 41.1167615338 + 41.1239804438 + 41.131200621 + 41.1384220658 + 41.1456447782 + 41.1528687586 + 41.1600940071 + 41.167320524 + 41.1745483095 + 41.1817773638 + 41.1890076872 + 41.1962392798 + 41.2034721419 + 41.2107062737 + 41.2179416755 + 41.2251783474 + 41.2324162897 + 41.2396555025 + 41.2468959863 + 41.254137741 + 41.2613807671 + 41.2686250646 + 41.2758706339 + 41.283117475 + 41.2903655884 + 41.2976149742 + 41.3048656325 + 41.3121175637 + 41.319370768 + 41.3266252455 + 41.3338809965 + 41.3411380213 + 41.34839632 + 41.3556558929 + 41.3629167402 + 41.3701788621 + 41.3774422589 + 41.3847069308 + 41.3919728779 + 41.3992401005 + 41.4065085989 + 41.4137783733 + 41.4210494239 + 41.4283217508 + 41.4355953544 + 41.4428702349 + 41.4501463925 + 41.4574238273 + 41.4647025398 + 41.4719825299 + 41.4792637981 + 41.4865463444 + 41.4938301692 + 41.5011152727 + 41.508401655 + 41.5156893164 + 41.5229782572 + 41.5302684775 + 41.5375599776 + 41.5448527578 + 41.5521468181 + 41.5594421589 + 41.5667387804 + 41.5740366827 + 41.5813358662 + 41.5886363311 + 41.5959380775 + 41.6032411058 + 41.610545416 + 41.6178510086 + 41.6251578836 + 41.6324660413 + 41.6397754819 + 41.6470862057 + 41.6543982129 + 41.6617115036 + 41.6690260782 + 41.6763419369 + 41.6836590798 + 41.6909775073 + 41.6982972194 + 41.7056182166 + 41.7129404989 + 41.7202640666 + 41.72758892 + 41.7349150592 + 41.7422424845 + 41.7495711961 + 41.7569011943 + 41.7642324792 + 41.7715650511 + 41.7788989102 + 41.7862340568 + 41.793570491 + 41.8009082131 + 41.8082472234 + 41.8155875219 + 41.8229291091 + 41.830271985 + 41.83761615 + 41.8449616043 + 41.852308348 + 41.8596563814 + 41.8670057047 + 41.8743563182 + 41.8817082221 + 41.8890614165 + 41.8964159018 + 41.9037716782 + 41.9111287459 + 41.9184871051 + 41.925846756 + 41.9332076989 + 41.940569934 + 41.9479334615 + 41.9552982816 + 41.9626643947 + 41.9700318008 + 41.9774005003 + 41.9847704933 + 41.9921417801 + 41.9995143609 + 42.006888236 + 42.0142634055 + 42.0216398697 + 42.0290176288 + 42.0363966831 + 42.0437770328 + 42.051158678 + 42.0585416191 + 42.0659258563 + 42.0733113897 + 42.0806982196 + 42.0880863463 + 42.09547577 + 42.1028664908 + 42.1102585091 + 42.117651825 + 42.1250464388 + 42.1324423507 + 42.1398395609 + 42.1472380697 + 42.1546378773 + 42.1620389839 + 42.1694413898 + 42.1768450951 + 42.1842501001 + 42.1916564051 + 42.1990640102 + 42.2064729157 + 42.2138831218 + 42.2212946288 + 42.2287074368 + 42.2361215461 + 42.243536957 + 42.2509536696 + 42.2583716842 + 42.265791001 + 42.2732116203 + 42.2806335422 + 42.288056767 + 42.295481295 + 42.3029071263 + 42.3103342612 + 42.3177626999 + 42.3251924427 + 42.3326234897 + 42.3400558413 + 42.3474894975 + 42.3549244588 + 42.3623607252 + 42.369798297 + 42.3772371745 + 42.3846773579 + 42.3921188473 + 42.3995616431 + 42.4070057455 + 42.4144511546 + 42.4218978708 + 42.4293458943 + 42.4367952252 + 42.4442458638 + 42.4516978104 + 42.4591510651 + 42.4666056282 + 42.4740615 + 42.4815186806 + 42.4889771704 + 42.4964369694 + 42.503898078 + 42.5113604964 + 42.5188242247 + 42.5262892633 + 42.5337556124 + 42.5412232722 + 42.5486922429 + 42.5561625248 + 42.563634118 + 42.5711070229 + 42.5785812397 + 42.5860567685 + 42.5935336096 + 42.6010117633 + 42.6084912297 + 42.6159720091 + 42.6234541018 + 42.6309375079 + 42.6384222277 + 42.6459082615 + 42.6533956094 + 42.6608842717 + 42.6683742486 + 42.6758655403 + 42.6833581472 + 42.6908520693 + 42.698347307 + 42.7058438604 + 42.7133417299 + 42.7208409155 + 42.7283414177 + 42.7358432365 + 42.7433463723 + 42.7508508252 + 42.7583565955 + 42.7658636834 + 42.7733720892 + 42.7808818131 + 42.7883928553 + 42.795905216 + 42.8034188955 + 42.810933894 + 42.8184502117 + 42.8259678489 + 42.8334868058 + 42.8410070827 + 42.8485286797 + 42.8560515971 + 42.8635758352 + 42.8711013941 + 42.8786282741 + 42.8861564754 + 42.8936859983 + 42.9012168429 + 42.9087490096 + 42.9162824986 + 42.92381731 + 42.9313534441 + 42.9388909012 + 42.9464296815 + 42.9539697852 + 42.9615112126 + 42.9690539638 + 42.9765980391 + 42.9841434388 + 42.991690163 + 42.9992382121 + 43.0067875862 + 43.0143382855 + 43.0218903104 + 43.029443661 + 43.0369983376 + 43.0445543404 + 43.0521116697 + 43.0596703256 + 43.0672303084 + 43.0747916183 + 43.0823542556 + 43.0899182205 + 43.0974835133 + 43.1050501341 + 43.1126180832 + 43.1201873609 + 43.1277579673 + 43.1353299027 + 43.1429031674 + 43.1504777615 + 43.1580536853 + 43.1656309391 + 43.173209523 + 43.1807894373 + 43.1883706823 + 43.1959532581 + 43.2035371651 + 43.2111224034 + 43.2187089732 + 43.2262968748 + 43.2338861085 + 43.2414766745 + 43.2490685729 + 43.2566618041 + 43.2642563683 + 43.2718522657 + 43.2794494965 + 43.287048061 + 43.2946479594 + 43.302249192 + 43.3098517589 + 43.3174556604 + 43.3250608968 + 43.3326674683 + 43.340275375 + 43.3478846174 + 43.3554951955 + 43.3631071096 + 43.37072036 + 43.3783349469 + 43.3859508704 + 43.393568131 + 43.4011867287 + 43.4088066639 + 43.4164279367 + 43.4240505474 + 43.4316744963 + 43.4392997835 + 43.4469264093 + 43.454554374 + 43.4621836777 + 43.4698143207 + 43.4774463033 + 43.4850796256 + 43.492714288 + 43.5003502906 + 43.5079876337 + 43.5156263175 + 43.5232663422 + 43.5309077081 + 43.5385504155 + 43.5461944645 + 43.5538398554 + 43.5614865885 + 43.5691346639 + 43.5767840819 + 43.5844348427 + 43.5920869466 + 43.5997403939 + 43.6073951846 + 43.6150513192 + 43.6227087977 + 43.6303676206 + 43.6380277879 + 43.6456892999 + 43.6533521569 + 43.661016359 + 43.6686819067 + 43.6763487999 + 43.6840170391 + 43.6916866244 + 43.6993575561 + 43.7070298345 + 43.7147034596 + 43.7223784319 + 43.7300547514 + 43.7377324186 + 43.7454114335 + 43.7530917964 + 43.7607735077 + 43.7684565674 + 43.7761409759 + 43.7838267333 + 43.79151384 + 43.7992022961 + 43.8068921019 + 43.8145832577 + 43.8222757636 + 43.8299696199 + 43.8376648268 + 43.8453613846 + 43.8530592935 + 43.8607585538 + 43.8684591657 + 43.8761611293 + 43.8838644451 + 43.8915691131 + 43.8992751337 + 43.906982507 + 43.9146912334 + 43.922401313 + 43.9301127461 + 43.9378255329 + 43.9455396737 + 43.9532551687 + 43.9609720181 + 43.9686902221 + 43.9764097811 + 43.9841306953 + 43.9918529648 + 43.99957659 + 44.007301571 + 44.0150279081 + 44.0227556016 + 44.0304846516 + 44.0382150585 + 44.0459468224 + 44.0536799436 + 44.0614144223 + 44.0691502588 + 44.0768874533 + 44.0846260061 + 44.0923659173 + 44.1001071872 + 44.1078498162 + 44.1155938043 + 44.1233391518 + 44.1310858591 + 44.1388339262 + 44.1465833535 + 44.1543341412 + 44.1620862895 + 44.1698397987 + 44.177594669 + 44.1853509007 + 44.1931084939 + 44.200867449 + 44.2086277661 + 44.2163894455 + 44.2241524875 + 44.2319168923 + 44.2396826601 + 44.2474497911 + 44.2552182857 + 44.2629881439 + 44.2707593662 + 44.2785319527 + 44.2863059036 + 44.2940812193 + 44.3018578998 + 44.3096359456 + 44.3174153568 + 44.3251961336 + 44.3329782763 + 44.3407617852 + 44.3485466604 + 44.3563329023 + 44.364120511 + 44.3719094868 + 44.3796998299 + 44.3874915406 + 44.3952846191 + 44.4030790657 + 44.4108748806 + 44.418672064 + 44.4264706162 + 44.4342705374 + 44.4420718279 + 44.4498744878 + 44.4576785175 + 44.4654839172 + 44.4732906871 + 44.4810988275 + 44.4889083385 + 44.4967192205 + 44.5045314737 + 44.5123450983 + 44.5201600946 + 44.5279764627 + 44.535794203 + 44.5436133157 + 44.551433801 + 44.5592556592 + 44.5670788905 + 44.5749034952 + 44.5827294734 + 44.5905568254 + 44.5983855516 + 44.606215652 + 44.614047127 + 44.6218799768 + 44.6297142017 + 44.6375498018 + 44.6453867774 + 44.6532251288 + 44.6610648562 + 44.6689059599 + 44.67674844 + 44.6845922968 + 44.6924375307 + 44.7002841417 + 44.7081321302 + 44.7159814964 + 44.7238322405 + 44.7316843628 + 44.7395378635 + 44.7473927429 + 44.7552490012 + 44.7631066387 + 44.7709656555 + 44.7788260519 + 44.7866878283 + 44.7945509847 + 44.8024155215 + 44.8102814389 + 44.8181487372 + 44.8260174165 + 44.8338874772 + 44.8417589194 + 44.8496317434 + 44.8575059495 + 44.8653815379 + 44.8732585088 + 44.8811368625 + 44.8890165993 + 44.8968977193 + 44.9047802228 + 44.9126641101 + 44.9205493814 + 44.9284360369 + 44.9363240769 + 44.9442135016 + 44.9521043113 + 44.9599965062 + 44.9678900865 + 44.9757850526 + 44.9836814046 + 44.9915791427 + 44.9994782673 + 45.0073787786 + 45.0152806768 + 45.0231839622 + 45.0310886349 + 45.0389946953 + 45.0469021436 + 45.05481098 + 45.0627212048 + 45.0706328183 + 45.0785458205 + 45.0864602119 + 45.0943759927 + 45.102293163 + 45.1102117232 + 45.1181316735 + 45.1260530141 + 45.1339757452 + 45.1418998672 + 45.1498253802 + 45.1577522846 + 45.1656805805 + 45.1736102681 + 45.1815413479 + 45.1894738199 + 45.1974076844 + 45.2053429417 + 45.213279592 + 45.2212176356 + 45.2291570727 + 45.2370979035 + 45.2450401283 + 45.2529837474 + 45.2609287609 + 45.2688751692 + 45.2768229724 + 45.2847721708 + 45.2927227648 + 45.3006747544 + 45.30862814 + 45.3165829217 + 45.3245390999 + 45.3324966749 + 45.3404556467 + 45.3484160157 + 45.3563777821 + 45.3643409462 + 45.3723055083 + 45.3802714684 + 45.388238827 + 45.3962075842 + 45.4041777404 + 45.4121492956 + 45.4201222503 + 45.4280966046 + 45.4360723587 + 45.444049513 + 45.4520280677 + 45.460008023 + 45.4679893791 + 45.4759721363 + 45.4839562949 + 45.4919418551 + 45.4999288172 + 45.5079171813 + 45.5159069478 + 45.5238981168 + 45.5318906887 + 45.5398846637 + 45.547880042 + 45.5558768238 + 45.5638750095 + 45.5718745992 + 45.5798755932 + 45.5878779918 + 45.5958817952 + 45.6038870037 + 45.6118936174 + 45.6199016367 + 45.6279110617 + 45.6359218928 + 45.6439341302 + 45.6519477741 + 45.6599628248 + 45.6679792825 + 45.6759971475 + 45.68401642 + 45.6920371002 + 45.7000591885 + 45.708082685 + 45.71610759 + 45.7241339038 + 45.7321616266 + 45.7401907586 + 45.7482213001 + 45.7562532514 + 45.7642866127 + 45.7723213841 + 45.7803575661 + 45.7883951588 + 45.7964341625 + 45.8044745774 + 45.8125164038 + 45.8205596419 + 45.828604292 + 45.8366503543 + 45.844697829 + 45.8527467165 + 45.860797017 + 45.8688487306 + 45.8769018577 + 45.8849563985 + 45.8930123533 + 45.9010697223 + 45.9091285057 + 45.9171887038 + 45.9252503169 + 45.9333133452 + 45.9413777889 + 45.9494436483 + 45.9575109236 + 45.9655796152 + 45.9736497231 + 45.9817212478 + 45.9897941894 + 45.9978685482 + 46.0059443244 + 46.0140215183 + 46.0221001301 + 46.0301801601 + 46.0382616086 + 46.0463444757 + 46.0544287617 + 46.062514467 + 46.0706015916 + 46.0786901359 + 46.0867801002 + 46.0948714846 + 46.1029642894 + 46.111058515 + 46.1191541614 + 46.127251229 + 46.135349718 + 46.1434496287 + 46.1515509613 + 46.1596537161 + 46.1677578933 + 46.1758634932 + 46.183970516 + 46.1920789619 + 46.2001888313 + 46.2083001243 + 46.2164128413 + 46.2245269824 + 46.232642548 + 46.2407595382 + 46.2488779533 + 46.2569977936 + 46.2651190593 + 46.2732417507 + 46.281365868 + 46.2894914115 + 46.2976183814 + 46.3057467779 + 46.3138766014 + 46.322007852 + 46.3301405301 + 46.3382746358 + 46.3464101695 + 46.3545471313 + 46.3626855216 + 46.3708253405 + 46.3789665884 + 46.3871092654 + 46.3952533719 + 46.403398908 + 46.4115458741 + 46.4196942703 + 46.427844097 + 46.4359953544 + 46.4441480427 + 46.4523021621 + 46.460457713 + 46.4686146956 + 46.4767731102 + 46.4849329569 + 46.4930942361 + 46.5012569479 + 46.5094210927 + 46.5175866707 + 46.5257536822 + 46.5339221273 + 46.5420920064 + 46.5502633197 + 46.5584360675 + 46.5666102499 + 46.5747858673 + 46.5829629199 + 46.591141408 + 46.5993213318 + 46.6075026916 + 46.6156854876 + 46.62386972 + 46.6320553892 + 46.6402424953 + 46.6484310387 + 46.6566210195 + 46.6648124381 + 46.6730052947 + 46.6811995895 + 46.6893953228 + 46.6975924948 + 46.7057911058 + 46.7139911561 + 46.7221926458 + 46.7303955754 + 46.7385999449 + 46.7468057547 + 46.7550130049 + 46.763221696 + 46.7714318281 + 46.7796434014 + 46.7878564162 + 46.7960708729 + 46.8042867715 + 46.8125041125 + 46.8207228959 + 46.8289431222 + 46.8371647915 + 46.8453879041 + 46.8536124602 + 46.8618384602 + 46.8700659042 + 46.8782947925 + 46.8865251253 + 46.894756903 + 46.9029901257 + 46.9112247938 + 46.9194609074 + 46.9276984669 + 46.9359374725 + 46.9441779243 + 46.9524198228 + 46.9606631682 + 46.9689079606 + 46.9771542004 + 46.9854018877 + 46.993651023 + 47.0019016063 + 47.0101536381 + 47.0184071184 + 47.0266620477 + 47.034918426 + 47.0431762538 + 47.0514355312 + 47.0596962585 + 47.0679584359 + 47.0762220637 + 47.0844871422 + 47.0927536717 + 47.1010216522 + 47.1092910843 + 47.1175619679 + 47.1258343036 + 47.1341080914 + 47.1423833316 + 47.1506600246 + 47.1589381705 + 47.1672177696 + 47.1754988222 + 47.1837813284 + 47.1920652887 + 47.2003507032 + 47.2086375722 + 47.2169258959 + 47.2252156746 + 47.2335069086 + 47.241799598 + 47.2500937433 + 47.2583893445 + 47.266686402 + 47.2749849161 + 47.2832848869 + 47.2915863148 + 47.2998891999 + 47.3081935426 + 47.3164993432 + 47.3248066017 + 47.3331153186 + 47.3414254941 + 47.3497371284 + 47.3580502218 + 47.3663647746 + 47.3746807869 + 47.3829982591 + 47.3913171914 + 47.3996375841 + 47.4079594374 + 47.4162827515 + 47.4246075268 + 47.4329337635 + 47.4412614619 + 47.4495906222 + 47.4579212446 + 47.4662533294 + 47.474586877 + 47.4829218874 + 47.4912583611 + 47.4995962982 + 47.507935699 + 47.5162765637 + 47.5246188927 + 47.5329626862 + 47.5413079443 + 47.5496546675 + 47.5580028559 + 47.5663525099 + 47.5747036296 + 47.5830562153 + 47.5914102672 + 47.5997657858 + 47.6081227711 + 47.6164812234 + 47.6248411431 + 47.6332025303 + 47.6415653853 + 47.6499297084 + 47.6582954999 + 47.66666276 + 47.6750314889 + 47.6834016869 + 47.6917733542 + 47.7001464913 + 47.7085210981 + 47.7168971752 + 47.7252747226 + 47.7336537407 + 47.7420342297 + 47.7504161899 + 47.7587996215 + 47.7671845248 + 47.7755709 + 47.7839587475 + 47.7923480674 + 47.80073886 + 47.8091311257 + 47.8175248645 + 47.8259200769 + 47.834316763 + 47.8427149232 + 47.8511145576 + 47.8595156666 + 47.8679182503 + 47.8763223091 + 47.8847278432 + 47.8931348529 + 47.9015433385 + 47.9099533001 + 47.918364738 + 47.9267776526 + 47.935192044 + 47.9436079125 + 47.9520252585 + 47.9604440821 + 47.9688643836 + 47.9772861632 + 47.9857094213 + 47.994134158 + 48.0025603737 + 48.0109880686 + 48.019417243 + 48.027847897 + 48.0362800311 + 48.0447136454 + 48.0531487402 + 48.0615853158 + 48.0700233723 + 48.0784629102 + 48.0869039296 + 48.0953464308 + 48.103790414 + 48.1122358796 + 48.1206828278 + 48.1291312588 + 48.1375811729 + 48.1460325703 + 48.1544854514 + 48.1629398164 + 48.1713956655 + 48.179852999 + 48.1883118172 + 48.1967721203 + 48.2052339086 + 48.2136971823 + 48.2221619417 + 48.2306281871 + 48.2390959188 + 48.2475651369 + 48.2560358418 + 48.2645080337 + 48.2729817128 + 48.2814568795 + 48.289933534 + 48.2984116765 + 48.3068913074 + 48.3153724268 + 48.3238550351 + 48.3323391325 + 48.3408247192 + 48.3493117956 + 48.3578003618 + 48.3662904182 + 48.374781965 + 48.3832750025 + 48.3917695309 + 48.4002655505 + 48.4087630616 + 48.4172620643 + 48.4257625591 + 48.4342645461 + 48.4427680256 + 48.4512729978 + 48.4597794631 + 48.4682874217 + 48.4767968738 + 48.4853078197 + 48.4938202597 + 48.5023341941 + 48.510849623 + 48.5193665469 + 48.5278849658 + 48.5364048801 + 48.5449262901 + 48.553449196 + 48.561973598 + 48.5704994965 + 48.5790268917 + 48.5875557839 + 48.5960861733 + 48.6046180602 + 48.6131514448 + 48.6216863274 + 48.6302227084 + 48.6387605878 + 48.6472999661 + 48.6558408434 + 48.6643832201 + 48.6729270963 + 48.6814724724 + 48.6900193487 + 48.6985677253 + 48.7071176025 + 48.7156689807 + 48.7242218601 + 48.7327762408 + 48.7413321233 + 48.7498895078 + 48.7584483944 + 48.7670087836 + 48.7755706755 + 48.7841340704 + 48.7926989687 + 48.8012653704 + 48.809833276 + 48.8184026857 + 48.8269735997 + 48.8355460182 + 48.8441199417 + 48.8526953703 + 48.8612723043 + 48.8698507439 + 48.8784306895 + 48.8870121413 + 48.8955950995 + 48.9041795644 + 48.9127655363 + 48.9213530154 + 48.9299420021 + 48.9385324966 + 48.947124499 + 48.9557180098 + 48.9643130292 + 48.9729095574 + 48.9815075946 + 48.9901071413 + 48.9987081976 + 49.0073107638 + 49.0159148401 + 49.0245204269 + 49.0331275243 + 49.0417361327 + 49.0503462523 + 49.0589578834 + 49.0675710263 + 49.0761856812 + 49.0848018483 + 49.093419528 + 49.1020387205 + 49.1106594261 + 49.1192816451 + 49.1279053776 + 49.136530624 + 49.1451573846 + 49.1537856596 + 49.1624154492 + 49.1710467538 + 49.1796795736 + 49.1883139088 + 49.1969497598 + 49.2055871268 + 49.21422601 + 49.2228664098 + 49.2315083264 + 49.2401517601 + 49.2487967111 + 49.2574431797 + 49.2660911661 + 49.2747406707 + 49.2833916937 + 49.2920442354 + 49.300698296 + 49.3093538758 + 49.318010975 + 49.326669594 + 49.335329733 + 49.3439913922 + 49.352654572 + 49.3613192726 + 49.3699854942 + 49.3786532372 + 49.3873225018 + 49.3959932883 + 49.4046655969 + 49.4133394278 + 49.4220147815 + 49.4306916581 + 49.4393700579 + 49.4480499812 + 49.4567314282 + 49.4654143992 + 49.4740988945 + 49.4827849143 + 49.491472459 + 49.5001615287 + 49.5088521238 + 49.5175442444 + 49.526237891 + 49.5349330637 + 49.5436297628 + 49.5523279886 + 49.5610277414 + 49.5697290213 + 49.5784318288 + 49.587136164 + 49.5958420273 + 49.6045494188 + 49.6132583389 + 49.6219687878 + 49.6306807659 + 49.6393942733 + 49.6481093103 + 49.6568258772 + 49.6655439743 + 49.6742636019 + 49.6829847601 + 49.6917074493 + 49.7004316698 + 49.7091574218 + 49.7178847056 + 49.7266135214 + 49.7353438696 + 49.7440757503 + 49.7528091639 + 49.7615441106 + 49.7702805908 + 49.7790186046 + 49.7877581523 + 49.7964992342 + 49.8052418506 + 49.8139860018 + 49.822731688 + 49.8314789094 + 49.8402276664 + 49.8489779593 + 49.8577297882 + 49.8664831535 + 49.8752380554 + 49.8839944942 + 49.8927524702 + 49.9015119836 + 49.9102730348 + 49.9190356239 + 49.9277997513 + 49.9365654172 + 49.9453326218 + 49.9541013656 + 49.9628716487 + 49.9716434713 + 49.9804168339 + 49.9891917366 + 49.9979681797 + 50.0067461635 + 50.0155256882 + 50.0243067542 + 50.0330893616 + 50.0418735109 + 50.0506592021 + 50.0594464357 + 50.0682352118 + 50.0770255308 + 50.0858173929 + 50.0946107984 + 50.1034057476 + 50.1122022407 + 50.121000278 + 50.1297998597 + 50.1386009862 + 50.1474036578 + 50.1562078746 + 50.165013637 + 50.1738209452 + 50.1826297995 + 50.1914402001 + 50.2002521475 + 50.2090656417 + 50.2178806831 + 50.226697272 + 50.2355154086 + 50.2443350932 + 50.2531563261 + 50.2619791075 + 50.2708034378 + 50.2796293171 + 50.2884567458 + 50.2972857242 + 50.3061162524 + 50.3149483308 + 50.3237819597 + 50.3326171393 + 50.3414538699 + 50.3502921517 + 50.3591319851 + 50.3679733703 + 50.3768163076 + 50.3856607972 + 50.3945068395 + 50.4033544346 + 50.412203583 + 50.4210542848 + 50.4299065403 + 50.4387603498 + 50.4476157135 + 50.4564726318 + 50.4653311049 + 50.4741911331 + 50.4830527167 + 50.4919158558 + 50.5007805509 + 50.5096468022 + 50.5185146099 + 50.5273839743 + 50.5362548957 + 50.5451273744 + 50.5540014106 + 50.5628770046 + 50.5717541568 + 50.5806328673 + 50.5895131364 + 50.5983949644 + 50.6072783517 + 50.6161632983 + 50.6250498047 + 50.6339378711 + 50.6428274978 + 50.6517186851 + 50.6606114331 + 50.6695057423 + 50.6784016129 + 50.687299045 + 50.6961980392 + 50.7050985955 + 50.7140007142 + 50.7229043958 + 50.7318096403 + 50.7407164481 + 50.7496248195 + 50.7585347548 + 50.7674462541 + 50.7763593179 + 50.7852739463 + 50.7941901397 + 50.8031078983 + 50.8120272223 + 50.8209481122 + 50.829870568 + 50.8387945902 + 50.847720179 + 50.8566473346 + 50.8655760574 + 50.8745063476 + 50.8834382055 + 50.8923716314 + 50.9013066255 + 50.9102431881 + 50.9191813195 + 50.9281210199 + 50.9370622898 + 50.9460051292 + 50.9549495385 + 50.963895518 + 50.9728430679 + 50.9817921886 + 50.9907428802 + 50.9996951432 + 51.0086489776 + 51.0176043839 + 51.0265613623 + 51.0355199131 + 51.0444800365 + 51.0534417329 + 51.0624050024 + 51.0713698454 + 51.0803362622 + 51.089304253 + 51.0982738182 + 51.1072449579 + 51.1162176725 + 51.1251919622 + 51.1341678273 + 51.1431452681 + 51.1521242849 + 51.1611048779 + 51.1700870475 + 51.1790707938 + 51.1880561173 + 51.197043018 + 51.2060314964 + 51.2150215527 + 51.2240131872 + 51.2330064002 + 51.2420011919 + 51.2509975625 + 51.2599955125 + 51.2689950421 + 51.2779961515 + 51.286998841 + 51.2960031109 + 51.3050089615 + 51.3140163931 + 51.3230254059 + 51.3320360002 + 51.3410481763 + 51.3500619344 + 51.3590772749 + 51.368094198 + 51.377112704 + 51.3861327932 + 51.3951544659 + 51.4041777222 + 51.4132025626 + 51.4222289873 + 51.4312569965 + 51.4402865906 + 51.4493177698 + 51.4583505344 + 51.4673848847 + 51.476420821 + 51.4854583434 + 51.4944974524 + 51.5035381482 + 51.5125804311 + 51.5216243013 + 51.5306697591 + 51.5397168049 + 51.5487654388 + 51.5578156612 + 51.5668674724 + 51.5759208725 + 51.584975862 + 51.594032441 + 51.60309061 + 51.612150369 + 51.6212117185 + 51.6302746586 + 51.6393391898 + 51.6484053122 + 51.6574730261 + 51.6665423319 + 51.6756132297 + 51.6846857199 + 51.6937598028 + 51.7028354786 + 51.7119127476 + 51.7209916101 + 51.7300720664 + 51.7391541167 + 51.7482377614 + 51.7573230006 + 51.7664098348 + 51.7754982641 + 51.7845882889 + 51.7936799094 + 51.802773126 + 51.8118679388 + 51.8209643482 + 51.8300623544 + 51.8391619578 + 51.8482631586 + 51.8573659571 + 51.8664703535 + 51.8755763482 + 51.8846839415 + 51.8937931335 + 51.9029039247 + 51.9120163152 + 51.9211303054 + 51.9302458955 + 51.9393630859 + 51.9484818767 + 51.9576022684 + 51.966724261 + 51.9758478551 + 51.9849730507 + 51.9940998483 + 52.0032282481 + 52.0123582503 + 52.0214898552 + 52.0306230632 + 52.0397578746 + 52.0488942895 + 52.0580323082 + 52.0671719312 + 52.0763131585 + 52.0854559906 + 52.0946004277 + 52.1037464701 + 52.1128941181 + 52.1220433718 + 52.1311942318 + 52.1403466981 + 52.1495007711 + 52.1586564511 + 52.1678137384 + 52.1769726332 + 52.1861331358 + 52.1952952465 + 52.2044589656 + 52.2136242934 + 52.2227912301 + 52.231959776 + 52.2411299315 + 52.2503016968 + 52.2594750721 + 52.2686500579 + 52.2778266542 + 52.2870048615 + 52.29618468 + 52.30536611 + 52.3145491518 + 52.3237338056 + 52.3329200718 + 52.3421079506 + 52.3512974423 + 52.3604885472 + 52.3696812656 + 52.3788755977 + 52.3880715439 + 52.3972691044 + 52.4064682795 + 52.4156690695 + 52.4248714747 + 52.4340754953 + 52.4432811317 + 52.4524883841 + 52.4616972528 + 52.4709077382 + 52.4801198403 + 52.4893335597 + 52.4985488965 + 52.507765851 + 52.5169844236 + 52.5262046144 + 52.5354264238 + 52.5446498521 + 52.5538748996 + 52.5631015664 + 52.572329853 + 52.5815597596 + 52.5907912865 + 52.600024434 + 52.6092592023 + 52.6184955917 + 52.6277336026 + 52.6369732352 + 52.6462144898 + 52.6554573666 + 52.664701866 + 52.6739479883 + 52.6831957337 + 52.6924451025 + 52.7016960951 + 52.7109487116 + 52.7202029524 + 52.7294588177 + 52.7387163079 + 52.7479754232 + 52.757236164 + 52.7664985304 + 52.7757625228 + 52.7850281415 + 52.7942953868 + 52.8035642589 + 52.8128347581 + 52.8221068847 + 52.8313806391 + 52.8406560214 + 52.849933032 + 52.8592116711 + 52.8684919391 + 52.8777738362 + 52.8870573627 + 52.896342519 + 52.9056293052 + 52.9149177217 + 52.9242077687 + 52.9334994466 + 52.9427927556 + 52.9520876961 + 52.9613842682 + 52.9706824723 + 52.9799823088 + 52.9892837777 + 52.9985868795 + 53.0078916145 + 53.0171979829 + 53.026505985 + 53.0358156211 + 53.0451268914 + 53.0544397964 + 53.0637543362 + 53.0730705111 + 53.0823883215 + 53.0917077676 + 53.1010288497 + 53.1103515681 + 53.119675923 + 53.1290019149 + 53.1383295439 + 53.1476588103 + 53.1569897145 + 53.1663222567 + 53.1756564372 + 53.1849922562 + 53.1943297142 + 53.2036688113 + 53.2130095479 + 53.2223519242 + 53.2316959406 + 53.2410415973 + 53.2503888945 + 53.2597378327 + 53.2690884121 + 53.2784406329 + 53.2877944955 + 53.2971500001 + 53.3065071471 + 53.3158659367 + 53.3252263692 + 53.3345884449 + 53.3439521641 + 53.3533175271 + 53.3626845341 + 53.3720531855 + 53.3814234816 + 53.3907954226 + 53.4001690088 + 53.4095442405 + 53.418921118 + 53.4282996416 + 53.4376798115 + 53.4470616282 + 53.4564450917 + 53.4658302026 + 53.4752169609 + 53.4846053671 + 53.4939954214 + 53.5033871241 + 53.5127804755 + 53.5221754759 + 53.5315721255 + 53.5409704247 + 53.5503703738 + 53.5597719729 + 53.5691752226 + 53.5785801229 + 53.5879866742 + 53.5973948768 + 53.6068047311 + 53.6162162372 + 53.6256293954 + 53.6350442061 + 53.6444606696 + 53.6538787861 + 53.6632985559 + 53.6727199794 + 53.6821430567 + 53.6915677883 + 53.7009941743 + 53.7104222151 + 53.719851911 + 53.7292832622 + 53.7387162691 + 53.748150932 + 53.757587251 + 53.7670252266 + 53.776464859 + 53.7859061486 + 53.7953490955 + 53.8047937 + 53.8142399626 + 53.8236878834 + 53.8331374628 + 53.8425887011 + 53.8520415985 + 53.8614961553 + 53.8709523718 + 53.8804102484 + 53.8898697852 + 53.8993309827 + 53.9087938411 + 53.9182583606 + 53.9277245416 + 53.9371923844 + 53.9466618892 + 53.9561330564 + 53.9656058862 + 53.9750803789 + 53.9845565349 + 53.9940343544 + 54.0035138377 + 54.0129949851 + 54.0224777969 + 54.0319622733 + 54.0414484148 + 54.0509362215 + 54.0604256938 + 54.0699168319 + 54.0794096362 + 54.0889041069 + 54.0984002443 + 54.1078980488 + 54.1173975206 + 54.12689866 + 54.1364014672 + 54.1459059427 + 54.1554120867 + 54.1649198995 + 54.1744293813 + 54.1839405325 + 54.1934533533 + 54.2029678441 + 54.2124840052 + 54.2220018368 + 54.2315213392 + 54.2410425127 + 54.2505653577 + 54.2600898744 + 54.2696160631 + 54.279143924 + 54.2886734576 + 54.2982046641 + 54.3077375437 + 54.3172720968 + 54.3268083237 + 54.3363462246 + 54.3458857999 + 54.3554270499 + 54.3649699747 + 54.3745145749 + 54.3840608505 + 54.393608802 + 54.4031584296 + 54.4127097336 + 54.4222627143 + 54.431817372 + 54.4413737071 + 54.4509317197 + 54.4604914102 + 54.4700527788 + 54.479615826 + 54.4891805519 + 54.4987469569 + 54.5083150412 + 54.5178848052 + 54.5274562491 + 54.5370293733 + 54.5466041781 + 54.5561806636 + 54.5657588303 + 54.5753386784 + 54.5849202082 + 54.5945034201 + 54.6040883142 + 54.613674891 + 54.6232631506 + 54.6328530935 + 54.6424447198 + 54.6520380299 + 54.6616330241 + 54.6712297027 + 54.680828066 + 54.6904281142 + 54.7000298477 + 54.7096332668 + 54.7192383717 + 54.7288451627 + 54.7384536402 + 54.7480638045 + 54.7576756558 + 54.7672891944 + 54.7769044207 + 54.7865213349 + 54.7961399373 + 54.8057602282 + 54.815382208 + 54.8250058768 + 54.8346312351 + 54.8442582831 + 54.8538870211 + 54.8635174494 + 54.8731495683 + 54.8827833781 + 54.8924188791 + 54.9020560715 + 54.9116949558 + 54.9213355321 + 54.9309778008 + 54.9406217622 + 54.9502674166 + 54.9599147642 + 54.9695638054 + 54.9792145405 + 54.9888669697 + 54.9985210934 + 55.0081769119 + 55.0178344254 + 55.0274936342 + 55.0371545388 + 55.0468171392 + 55.0564814359 + 55.0661474292 + 55.0758151192 + 55.0854845065 + 55.0951555911 + 55.1048283735 + 55.1145028539 + 55.1241790327 + 55.1338569101 + 55.1435364864 + 55.153217762 + 55.162900737 + 55.1725854119 + 55.1822717869 + 55.1919598623 + 55.2016496385 + 55.2113411156 + 55.2210342941 + 55.2307291742 + 55.2404257562 + 55.2501240404 + 55.2598240272 + 55.2695257167 + 55.2792291093 + 55.2889342054 + 55.2986410051 + 55.3083495089 + 55.3180597169 + 55.3277716296 + 55.3374852472 + 55.3472005699 + 55.3569175982 + 55.3666363323 + 55.3763567724 + 55.386078919 + 55.3958027723 + 55.4055283325 + 55.4152556001 + 55.4249845752 + 55.4347152583 + 55.4444476495 + 55.4541817493 + 55.4639175578 + 55.4736550755 + 55.4833943025 + 55.4931352393 + 55.502877886 + 55.512622243 + 55.5223683107 + 55.5321160892 + 55.5418655789 + 55.5516167802 + 55.5613696932 + 55.5711243183 + 55.5808806558 + 55.5906387061 + 55.6003984693 + 55.6101599458 + 55.6199231359 + 55.62968804 + 55.6394546582 + 55.649222991 + 55.6589930385 + 55.6687648012 + 55.6785382793 + 55.688313473 + 55.6980903828 + 55.7078690089 + 55.7176493516 + 55.7274314113 + 55.7372151881 + 55.7470006825 + 55.7567878947 + 55.766576825 + 55.7763674737 + 55.7861598412 + 55.7959539276 + 55.8057497334 + 55.8155472589 + 55.8253465042 + 55.8351474698 + 55.844950156 + 55.8547545629 + 55.8645606911 + 55.8743685406 + 55.8841781119 + 55.8939894053 + 55.9038024209 + 55.9136171593 + 55.9234336206 + 55.9332518051 + 55.9430717132 + 55.9528933452 + 55.9627167013 + 55.9725417819 + 55.9823685873 + 55.9921971177 + 56.0020273735 + 56.011859355 + 56.0216930625 + 56.0315284963 + 56.0413656566 + 56.0512045438 + 56.0610451582 + 56.0708875001 + 56.0807315699 + 56.0905773677 + 56.1004248939 + 56.1102741488 + 56.1201251328 + 56.129977846 + 56.1398322889 + 56.1496884617 + 56.1595463647 + 56.1694059983 + 56.1792673627 + 56.1891304582 + 56.1989952852 + 56.2088618439 + 56.2187301346 + 56.2286001578 + 56.2384719135 + 56.2483454023 + 56.2582206243 + 56.2680975799 + 56.2779762693 + 56.287856693 + 56.2977388511 + 56.307622744 + 56.317508372 + 56.3273957354 + 56.3372848345 + 56.3471756696 + 56.357068241 + 56.366962549 + 56.376858594 + 56.3867563761 + 56.3966558959 + 56.4065571534 + 56.4164601491 + 56.4263648832 + 56.4362713561 + 56.4461795681 + 56.4560895194 + 56.4660012103 + 56.4759146413 + 56.4858298125 + 56.4957467243 + 56.505665377 + 56.5155857709 + 56.5255079063 + 56.5354317835 + 56.5453574028 + 56.5552847645 + 56.565213869 + 56.5751447164 + 56.5850773073 + 56.5950116417 + 56.6049477201 + 56.6148855428 + 56.62482511 + 56.6347664221 + 56.6447094793 + 56.6546542821 + 56.6646008306 + 56.6745491252 + 56.6844991662 + 56.694450954 + 56.7044044887 + 56.7143597707 + 56.7243168004 + 56.734275578 + 56.7442361039 + 56.7541983782 + 56.7641624015 + 56.7741281739 + 56.7840956958 + 56.7940649674 + 56.8040359891 + 56.8140087612 + 56.823983284 + 56.8339595579 + 56.843937583 + 56.8539173597 + 56.8638988884 + 56.8738821693 + 56.8838672027 + 56.893853989 + 56.9038425284 + 56.9138328213 + 56.923824868 + 56.9338186688 + 56.9438142239 + 56.9538115337 + 56.9638105986 + 56.9738114187 + 56.9838139945 + 56.9938183262 + 57.0038244141 + 57.0138322586 + 57.0238418599 + 57.0338532184 + 57.0438663343 + 57.0538812081 + 57.0638978399 + 57.0739162301 + 57.083936379 + 57.093958287 + 57.1039819542 + 57.1140073811 + 57.1240345679 + 57.134063515 + 57.1440942226 + 57.1541266911 + 57.1641609208 + 57.1741969119 + 57.1842346649 + 57.1942741799 + 57.2043154574 + 57.2143584975 + 57.2244033008 + 57.2344498673 + 57.2444981975 + 57.2545482917 + 57.2646001501 + 57.2746537731 + 57.284709161 + 57.2947663141 + 57.3048252327 + 57.3148859171 + 57.3249483677 + 57.3350125846 + 57.3450785684 + 57.3551463192 + 57.3652158373 + 57.3752871232 + 57.385360177 + 57.3954349991 + 57.4055115899 + 57.4155899495 + 57.4256700784 + 57.4357519769 + 57.4458356452 + 57.4559210836 + 57.4660082925 + 57.4760972722 + 57.486188023 + 57.4962805453 + 57.5063748392 + 57.5164709051 + 57.5265687434 + 57.5366683544 + 57.5467697383 + 57.5568728955 + 57.5669778262 + 57.5770845309 + 57.5871930097 + 57.5973032631 + 57.6074152913 + 57.6175290947 + 57.6276446735 + 57.6377620281 + 57.6478811587 + 57.6580020658 + 57.6681247495 + 57.6782492103 + 57.6883754483 + 57.698503464 + 57.7086332577 + 57.7187648296 + 57.7288981801 + 57.7390333095 + 57.7491702181 + 57.7593089061 + 57.769449374 + 57.7795916221 + 57.7897356506 + 57.7998814598 + 57.8100290501 + 57.8201784218 + 57.8303295752 + 57.8404825106 + 57.8506372283 + 57.8607937287 + 57.870952012 + 57.8811120786 + 57.8912739287 + 57.9014375628 + 57.911602981 + 57.9217701838 + 57.9319391713 + 57.9421099441 + 57.9522825022 + 57.9624568462 + 57.9726329762 + 57.9828108926 + 57.9929905957 + 58.0031720859 + 58.0133553633 + 58.0235404285 + 58.0337272816 + 58.0439159229 + 58.0541063529 + 58.0642985718 + 58.0744925798 + 58.0846883775 + 58.0948859649 + 58.1050853425 + 58.1152865106 + 58.1254894695 + 58.1356942195 + 58.1459007609 + 58.1561090941 + 58.1663192193 + 58.1765311368 + 58.1867448471 + 58.1969603503 + 58.2071776468 + 58.217396737 + 58.227617621 + 58.2378402994 + 58.2480647723 + 58.2582910401 + 58.268519103 + 58.2787489615 + 58.2889806158 + 58.2992140663 + 58.3094493132 + 58.3196863569 + 58.3299251977 + 58.3401658359 + 58.3504082718 + 58.3606525057 + 58.370898538 + 58.3811463689 + 58.3913959988 + 58.4016474281 + 58.4119006569 + 58.4221556857 + 58.4324125147 + 58.4426711442 + 58.4529315747 + 58.4631938063 + 58.4734578395 + 58.4837236745 + 58.4939913116 + 58.5042607512 + 58.5145319935 + 58.524805039 + 58.5350798878 + 58.5453565404 + 58.555634997 + 58.565915258 + 58.5761973236 + 58.5864811943 + 58.5967668702 + 58.6070543518 + 58.6173436393 + 58.6276347331 + 58.6379276334 + 58.6482223406 + 58.6585188551 + 58.6688171771 + 58.6791173069 + 58.6894192449 + 58.6997229914 + 58.7100285466 + 58.720335911 + 58.7306450848 + 58.7409560684 + 58.751268862 + 58.761583466 + 58.7718998807 + 58.7822181065 + 58.7925381435 + 58.8028599923 + 58.813183653 + 58.823509126 + 58.8338364116 + 58.8441655101 + 58.8544964219 + 58.8648291473 + 58.8751636865 + 58.88550004 + 58.8958382079 + 58.9061781907 + 58.9165199887 + 58.9268636021 + 58.9372090314 + 58.9475562767 + 58.9579053385 + 58.968256217 + 58.9786089126 + 58.9889634256 + 58.9993197563 + 59.0096779051 + 59.0200378721 + 59.0303996579 + 59.0407632626 + 59.0511286867 + 59.0614959303 + 59.0718649939 + 59.0822358778 + 59.0926085822 + 59.1029831076 + 59.1133594542 + 59.1237376223 + 59.1341176123 + 59.1444994244 + 59.1548830591 + 59.1652685166 + 59.1756557972 + 59.1860449013 + 59.1964358292 + 59.2068285811 + 59.2172231575 + 59.2276195587 + 59.2380177849 + 59.2484178364 + 59.2588197137 + 59.269223417 + 59.2796289467 + 59.290036303 + 59.3004454863 + 59.3108564969 + 59.3212693351 + 59.3316840013 + 59.3421004958 + 59.3525188188 + 59.3629389708 + 59.3733609519 + 59.3837847627 + 59.3942104033 + 59.4046378741 + 59.4150671754 + 59.4254983076 + 59.4359312709 + 59.4463660657 + 59.4568026923 + 59.467241151 + 59.4776814422 + 59.4881235661 + 59.4985675232 + 59.5090133136 + 59.5194609378 + 59.529910396 + 59.5403616886 + 59.5508148159 + 59.5612697782 + 59.5717265759 + 59.5821852092 + 59.5926456785 + 59.6031079842 + 59.6135721264 + 59.6240381056 + 59.6345059221 + 59.6449755762 + 59.6554470682 + 59.6659203985 + 59.6763955673 + 59.686872575 + 59.6973514219 + 59.7078321084 + 59.7183146347 + 59.7287990012 + 59.7392852082 + 59.7497732561 + 59.760263145 + 59.7707548755 + 59.7812484478 + 59.7917438621 + 59.8022411189 + 59.8127402185 + 59.8232411612 + 59.8337439473 + 59.8442485771 + 59.854755051 + 59.8652633693 + 59.8757735323 + 59.8862855403 + 59.8967993937 + 59.9073150927 + 59.9178326378 + 59.9283520292 + 59.9388732672 + 59.9493963523 + 59.9599212846 + 59.9704480645 + 59.9809766924 + 59.9915071686 + 60.0020394934 + 60.0125736671 + 60.02310969 + 60.0336475625 + 60.0441872849 + 60.0547288576 + 60.0652722808 + 60.0758175548 + 60.0863646801 + 60.0969136568 + 60.1074644855 + 60.1180171662 + 60.1285716995 + 60.1391280856 + 60.1496863249 + 60.1602464176 + 60.1708083642 + 60.1813721648 + 60.1919378199 + 60.2025053298 + 60.2130746948 + 60.2236459152 + 60.2342189913 + 60.2447939235 + 60.2553707122 + 60.2659493575 + 60.27652986 + 60.2871122198 + 60.2976964373 + 60.3082825128 + 60.3188704467 + 60.3294602393 + 60.3400518909 + 60.3506454018 + 60.3612407724 + 60.371838003 + 60.3824370939 + 60.3930380455 + 60.403640858 + 60.4142455318 + 60.4248520672 + 60.4354604646 + 60.4460707243 + 60.4566828466 + 60.4672968318 + 60.4779126803 + 60.4885303923 + 60.4991499683 + 60.5097714085 + 60.5203947133 + 60.5310198829 + 60.5416469178 + 60.5522758183 + 60.5629065846 + 60.5735392171 + 60.5841737162 + 60.5948100821 + 60.6054483152 + 60.6160884158 + 60.6267303842 + 60.6373742209 + 60.648019926 + 60.6586675 + 60.6693169431 + 60.6799682557 + 60.6906214381 + 60.7012764906 + 60.7119334137 + 60.7225922075 + 60.7332528724 + 60.7439154088 + 60.754579817 + 60.7652460972 + 60.77591425 + 60.7865842755 + 60.797256174 + 60.8079299461 + 60.8186055918 + 60.8292831117 + 60.8399625059 + 60.8506437749 + 60.861326919 + 60.8720119385 + 60.8826988337 + 60.8933876049 + 60.9040782526 + 60.9147707769 + 60.9254651784 + 60.9361614571 + 60.9468596136 + 60.9575596481 + 60.968261561 + 60.9789653526 + 60.9896710232 + 61.0003785732 + 61.0110880028 + 61.0217993125 + 61.0325125025 + 61.0432275732 + 61.0539445249 + 61.0646633579 + 61.0753840725 + 61.0861066692 + 61.0968311482 + 61.1075575099 + 61.1182857545 + 61.1290158825 + 61.1397478941 + 61.1504817897 + 61.1612175696 + 61.1719552341 + 61.1826947836 + 61.1934362184 + 61.2041795388 + 61.2149247452 + 61.2256718379 + 61.2364208172 + 61.2471716835 + 61.2579244371 + 61.2686790783 + 61.2794356074 + 61.2901940248 + 61.3009543308 + 61.3117165258 + 61.3224806101 + 61.3332465839 + 61.3440144477 + 61.3547842018 + 61.3655558465 + 61.3763293821 + 61.3871048089 + 61.3978821274 + 61.4086613378 + 61.4194424405 + 61.4302254358 + 61.441010324 + 61.4517971054 + 61.4625857805 + 61.4733763494 + 61.4841688127 + 61.4949631705 + 61.5057594232 + 61.5165575712 + 61.5273576148 + 61.5381595543 + 61.5489633901 + 61.5597691225 + 61.5705767517 + 61.5813862782 + 61.5921977023 + 61.6030110244 + 61.6138262447 + 61.6246433635 + 61.6354623813 + 61.6462832983 + 61.6571061149 + 61.6679308315 + 61.6787574483 + 61.6895859656 + 61.7004163839 + 61.7112487035 + 61.7220829246 + 61.7329190477 + 61.743757073 + 61.7545970009 + 61.7654388317 + 61.7762825658 + 61.7871282034 + 61.797975745 + 61.8088251909 + 61.8196765413 + 61.8305297967 + 61.8413849573 + 61.8522420236 + 61.8631009957 + 61.8739618741 + 61.8848246592 + 61.8956893511 + 61.9065559504 + 61.9174244572 + 61.928294872 + 61.939167195 + 61.9500414267 + 61.9609175673 + 61.9717956172 + 61.9826755767 + 61.9935574461 + 62.0044412258 + 62.0153269162 + 62.0262145175 + 62.0371040301 + 62.0479954543 + 62.0588887905 + 62.069784039 + 62.0806812001 + 62.0915802742 + 62.1024812616 + 62.1133841627 + 62.1242889777 + 62.135195707 + 62.146104351 + 62.15701491 + 62.1679273842 + 62.1788417742 + 62.1897580801 + 62.2006763024 + 62.2115964413 + 62.2225184973 + 62.2334424705 + 62.2443683615 + 62.2552961705 + 62.2662258978 + 62.2771575438 + 62.2880911088 + 62.2990265932 + 62.3099639973 + 62.3209033214 + 62.3318445659 + 62.3427877311 + 62.3537328173 + 62.3646798249 + 62.3756287543 + 62.3865796057 + 62.3975323795 + 62.408487076 + 62.4194436956 + 62.4304022386 + 62.4413627054 + 62.4523250962 + 62.4632894115 + 62.4742556515 + 62.4852238166 + 62.4961939071 + 62.5071659235 + 62.5181398659 + 62.5291157348 + 62.5400935304 + 62.5510732532 + 62.5620549035 + 62.5730384815 + 62.5840239877 + 62.5950114224 + 62.6060007859 + 62.6169920785 + 62.6279853006 + 62.6389804526 + 62.6499775348 + 62.6609765474 + 62.6719774909 + 62.6829803656 + 62.6939851718 + 62.7049919099 + 62.7160005802 + 62.727011183 + 62.7380237187 + 62.7490381877 + 62.7600545902 + 62.7710729266 + 62.7820931972 + 62.7931154025 + 62.8041395426 + 62.815165618 + 62.826193629 + 62.837223576 + 62.8482554592 + 62.8592892791 + 62.8703250359 + 62.88136273 + 62.8924023617 + 62.9034439315 + 62.9144874395 + 62.9255328862 + 62.9365802719 + 62.947629597 + 62.9586808617 + 62.9697340665 + 62.9807892116 + 62.9918462974 + 63.0029053243 + 63.0139662925 + 63.0250292025 + 63.0360940545 + 63.047160849 + 63.0582295862 + 63.0693002665 + 63.0803728902 + 63.0914474577 + 63.1025239693 + 63.1136024253 + 63.1246828262 + 63.1357651722 + 63.1468494636 + 63.1579357009 + 63.1690238844 + 63.1801140143 + 63.1912060911 + 63.2023001151 + 63.2133960866 + 63.224494006 + 63.2355938736 + 63.2466956897 + 63.2577994548 + 63.2689051691 + 63.2800128329 + 63.2911224467 + 63.3022340108 + 63.3133475254 + 63.324462991 + 63.3355804079 + 63.3466997765 + 63.357821097 + 63.3689443698 + 63.3800695953 + 63.3911967738 + 63.4023259056 + 63.4134569912 + 63.4245900308 + 63.4357250247 + 63.4468619734 + 63.4580008771 + 63.4691417363 + 63.4802845512 + 63.4914293222 + 63.5025760496 + 63.5137247338 + 63.5248753751 + 63.5360279739 + 63.5471825305 + 63.5583390453 + 63.5694975186 + 63.5806579507 + 63.591820342 + 63.6029846928 + 63.6141510035 + 63.6253192744 + 63.6364895059 + 63.6476616982 + 63.6588358519 + 63.6700119671 + 63.6811900443 + 63.6923700837 + 63.7035520858 + 63.7147360508 + 63.7259219792 + 63.7371098712 + 63.7482997273 + 63.7594915477 + 63.7706853327 + 63.7818810829 + 63.7930787984 + 63.8042784796 + 63.8154801269 + 63.8266837407 + 63.8378893212 + 63.8490968688 + 63.8603063839 + 63.8715178668 + 63.8827313178 + 63.8939467373 + 63.9051641257 + 63.9163834832 + 63.9276048103 + 63.9388281073 + 63.9500533744 + 63.9612806122 + 63.9725098208 + 63.9837410007 + 63.9949741523 + 64.0062092757 + 64.0174463715 + 64.0286854399 + 64.0399264813 + 64.0511694961 + 64.0624144845 + 64.0736614469 + 64.0849103838 + 64.0961612953 + 64.1074141819 + 64.118669044 + 64.1299258818 + 64.1411846957 + 64.1524454861 + 64.1637082532 + 64.1749729976 + 64.1862397194 + 64.1975084191 + 64.2087790969 + 64.2200517533 + 64.2313263886 + 64.2426030031 + 64.2538815972 + 64.2651621713 + 64.2764447256 + 64.2877292605 + 64.2990157764 + 64.3103042736 + 64.3215947525 + 64.3328872134 + 64.3441816567 + 64.3554780827 + 64.3667764917 + 64.3780768842 + 64.3893792604 + 64.4006836207 + 64.4119899655 + 64.423298295 + 64.4346086097 + 64.44592091 + 64.457235196 + 64.4685514683 + 64.4798697271 + 64.4911899727 + 64.5025122057 + 64.5138364262 + 64.5251626347 + 64.5364908314 + 64.5478210168 + 64.5591531911 + 64.5704873549 + 64.5818235082 + 64.5931616517 + 64.6045017855 + 64.61584391 + 64.6271880256 + 64.6385341327 + 64.6498822315 + 64.6612323225 + 64.6725844059 + 64.6839384822 + 64.6952945516 + 64.7066526146 + 64.7180126715 + 64.7293747226 + 64.7407387682 + 64.7521048088 + 64.7634728447 + 64.7748428762 + 64.7862149037 + 64.7975889275 + 64.808964948 + 64.8203429656 + 64.8317229805 + 64.8431049932 + 64.8544890039 + 64.8658750131 + 64.877263021 + 64.8886530281 + 64.9000450347 + 64.9114390411 + 64.9228350477 + 64.9342330549 + 64.9456330629 + 64.9570350722 + 64.9684390831 + 64.9798450959 + 64.991253111 + 65.0026631288 + 65.0140751496 + 65.0254891737 + 65.0369052015 + 65.0483232334 + 65.0597432697 + 65.0711653108 + 65.0825893569 + 65.0940154085 + 65.105443466 + 65.1168735296 + 65.1283055997 + 65.1397396767 + 65.1511757609 + 65.1626138527 + 65.1740539525 + 65.1854960605 + 65.1969401771 + 65.2083863027 + 65.2198344377 + 65.2312845824 + 65.2427367371 + 65.2541909022 + 65.265647078 + 65.277105265 + 65.2885654634 + 65.3000276736 + 65.311491896 + 65.3229581309 + 65.3344263786 + 65.3458966396 + 65.3573689142 + 65.3688432027 + 65.3803195055 + 65.3917978229 + 65.4032781553 + 65.414760503 + 65.4262448665 + 65.437731246 + 65.4492196419 + 65.4607100545 + 65.4722024843 + 65.4836969315 + 65.4951933966 + 65.5066918798 + 65.5181923816 + 65.5296949023 + 65.5411994422 + 65.5527060016 + 65.5642145811 + 65.5757251808 + 65.5872378012 + 65.5987524426 + 65.6102691054 + 65.6217877899 + 65.6333084965 + 65.6448312255 + 65.6563559772 + 65.6678827522 + 65.6794115506 + 65.6909423729 + 65.7024752194 + 65.7140100904 + 65.7255469864 + 65.7370859076 + 65.7486268545 + 65.7601698274 + 65.7717148266 + 65.7832618524 + 65.7948109054 + 65.8063619857 + 65.8179150938 + 65.8294702301 + 65.8410273948 + 65.8525865883 + 65.8641478111 + 65.8757110633 + 65.8872763455 + 65.8988436579 + 65.910413001 + 65.921984375 + 65.9335577803 + 65.9451332173 + 65.9567106864 + 65.9682901879 + 65.9798717221 + 65.9914552894 + 66.0030408902 + 66.0146285248 + 66.0262181936 + 66.0378098969 + 66.0494036351 + 66.0609994086 + 66.0725972177 + 66.0841970627 + 66.0957989441 + 66.1074028621 + 66.1190088172 + 66.1306168097 + 66.14222684 + 66.1538389083 + 66.1654530151 + 66.1770691608 + 66.1886873456 + 66.20030757 + 66.2119298343 + 66.2235541389 + 66.235180484 + 66.2468088702 + 66.2584392976 + 66.2700717668 + 66.281706278 + 66.2933428316 + 66.304981428 + 66.3166220675 + 66.3282647505 + 66.3399094774 + 66.3515562485 + 66.3632050641 + 66.3748559246 + 66.3865088304 + 66.3981637819 + 66.4098207793 + 66.4214798231 + 66.4331409137 + 66.4448040513 + 66.4564692363 + 66.4681364691 + 66.4798057501 + 66.4914770796 + 66.503150458 + 66.5148258856 + 66.5265033628 + 66.5381828899 + 66.5498644674 + 66.5615480955 + 66.5732337747 + 66.5849215052 + 66.5966112875 + 66.6083031219 + 66.6199970088 + 66.6316929486 + 66.6433909415 + 66.6550909879 + 66.6667930883 + 66.678497243 + 66.6902034523 + 66.7019117166 + 66.7136220362 + 66.7253344116 + 66.737048843 + 66.7487653309 + 66.7604838756 + 66.7722044774 + 66.7839271368 + 66.7956518541 + 66.8073786296 + 66.8191074637 + 66.8308383567 + 66.8425713091 + 66.8543063212 + 66.8660433934 + 66.8777825259 + 66.8895237193 + 66.9012669737 + 66.9130122897 + 66.9247596675 + 66.9365091076 + 66.9482606102 + 66.9600141758 + 66.9717698047 + 66.9835274973 + 66.9952872539 + 67.0070490749 + 67.0188129606 + 67.0305789115 + 67.0423469279 + 67.0541170101 + 67.0658891585 + 67.0776633735 + 67.0894396554 + 67.1012180046 + 67.1129984215 + 67.1247809064 + 67.1365654597 + 67.1483520817 + 67.1601407728 + 67.1719315335 + 67.1837243639 + 67.1955192646 + 67.2073162358 + 67.219115278 + 67.2309163914 + 67.2427195765 + 67.2545248337 + 67.2663321632 + 67.2781415654 + 67.2899530408 + 67.3017665896 + 67.3135822123 + 67.3253999092 + 67.3372196807 + 67.349041527 + 67.3608654487 + 67.3726914461 + 67.3845195194 + 67.3963496692 + 67.4081818957 + 67.4200161993 + 67.4318525804 + 67.4436910394 + 67.4555315766 + 67.4673741923 + 67.479218887 + 67.491065661 + 67.5029145146 + 67.5147654484 + 67.5266184625 + 67.5384735573 + 67.5503307333 + 67.5621899908 + 67.5740513302 + 67.5859147518 + 67.597780256 + 67.6096478431 + 67.6215175136 + 67.6333892678 + 67.645263106 + 67.6571390286 + 67.6690170361 + 67.6808971287 + 67.6927793068 + 67.7046635708 + 67.716549921 + 67.7284383579 + 67.7403288817 + 67.7522214929 + 67.7641161919 + 67.7760129789 + 67.7879118543 + 67.7998128186 + 67.8117158721 + 67.8236210151 + 67.835528248 + 67.8474375712 + 67.8593489851 + 67.87126249 + 67.8831780863 + 67.8950957743 + 67.9070155545 + 67.9189374271 + 67.9308613926 + 67.9427874513 + 67.9547156036 + 67.9666458499 + 67.9785781905 + 67.9905126257 + 68.0024491561 + 68.0143877819 + 68.0263285034 + 68.0382713212 + 68.0502162354 + 68.0621632466 + 68.074112355 + 68.0860635611 + 68.0980168652 + 68.1099722676 + 68.1219297688 + 68.1338893691 + 68.1458510689 + 68.1578148685 + 68.1697807683 + 68.1817487687 + 68.1937188701 + 68.2056910728 + 68.2176653772 + 68.2296417836 + 68.2416202925 + 68.2536009042 + 68.265583619 + 68.2775684374 + 68.2895553597 + 68.3015443862 + 68.3135355174 + 68.3255287536 + 68.3375240952 + 68.3495215425 + 68.361521096 + 68.373522756 + 68.3855265228 + 68.3975323968 + 68.4095403785 + 68.4215504681 + 68.4335626661 + 68.4455769728 + 68.4575933885 + 68.4696119137 + 68.4816325488 + 68.493655294 + 68.5056801498 + 68.5177071165 + 68.5297361945 + 68.5417673842 + 68.553800686 + 68.5658361001 + 68.5778736271 + 68.5899132672 + 68.6019550208 + 68.6139988884 + 68.6260448702 + 68.6380929666 + 68.6501431781 + 68.662195505 + 68.6742499476 + 68.6863065063 + 68.6983651815 + 68.7104259736 + 68.722488883 + 68.7345539099 + 68.7466210549 + 68.7586903182 + 68.7707617002 + 68.7828352013 + 68.7949108219 + 68.8069885624 + 68.8190684231 + 68.8311504043 + 68.8432345065 + 68.8553207301 + 68.8674090754 + 68.8794995427 + 68.8915921325 + 68.9036868451 + 68.9157836809 + 68.9278826403 + 68.9399837236 + 68.9520869312 + 68.9641922636 + 68.976299721 + 68.9884093038 + 69.0005210124 + 69.0126348472 + 69.0247508086 + 69.0368688969 + 69.0489891125 + 69.0611114557 + 69.073235927 + 69.0853625268 + 69.0974912553 + 69.109622113 + 69.1217551002 + 69.1338902174 + 69.1460274648 + 69.1581668429 + 69.1703083521 + 69.1824519926 + 69.194597765 + 69.2067456695 + 69.2188957065 + 69.2310478765 + 69.2432021797 + 69.2553586166 + 69.2675171875 + 69.2796778928 + 69.2918407329 + 69.3040057082 + 69.316172819 + 69.3283420657 + 69.3405134487 + 69.3526869683 + 69.364862625 + 69.377040419 + 69.3892203509 + 69.4014024209 + 69.4135866295 + 69.4257729769 + 69.4379614637 + 69.4501520901 + 69.4623448565 + 69.4745397633 + 69.4867368109 + 69.4989359997 + 69.5111373301 + 69.5233408023 + 69.5355464168 + 69.547754174 + 69.5599640742 + 69.5721761179 + 69.5843903053 + 69.596606637 + 69.6088251131 + 69.6210457342 + 69.6332685006 + 69.6454934127 + 69.6577204708 + 69.6699496753 + 69.6821810267 + 69.6944145252 + 69.7066501713 + 69.7188879653 + 69.7311279077 + 69.7433699987 + 69.7556142388 + 69.7678606284 + 69.7801091677 + 69.7923598573 + 69.8046126975 + 69.8168676886 + 69.829124831 + 69.8413841252 + 69.8536455714 + 69.8659091701 + 69.8781749217 + 69.8904428265 + 69.9027128848 + 69.9149850972 + 69.9272594639 + 69.9395359854 + 69.9518146619 + 69.964095494 + 69.9763784819 + 69.9886636261 + 70.0009509268 + 70.0132403846 + 70.0255319998 + 70.0378257728 + 70.0501217039 + 70.0624197935 + 70.074720042 + 70.0870224498 + 70.0993270172 + 70.1116337447 + 70.1239426326 + 70.1362536813 + 70.1485668911 + 70.1608822625 + 70.1731997959 + 70.1855194916 + 70.1978413499 + 70.2101653713 + 70.2224915562 + 70.2348199049 + 70.2471504178 + 70.2594830953 + 70.2718179378 + 70.2841549457 + 70.2964941192 + 70.3088354589 + 70.3211789651 + 70.3335246381 + 70.3458724784 + 70.3582224863 + 70.3705746622 + 70.3829290066 + 70.3952855197 + 70.4076442019 + 70.4200050537 + 70.4323680754 + 70.4447332675 + 70.4571006301 + 70.4694701639 + 70.4818418691 + 70.4942157461 + 70.5065917953 + 70.5189700171 + 70.5313504119 + 70.54373298 + 70.5561177218 + 70.5685046378 + 70.5808937282 + 70.5932849936 + 70.6056784341 + 70.6180740503 + 70.6304718426 + 70.6428718112 + 70.6552739566 + 70.6676782792 + 70.6800847793 + 70.6924934574 + 70.7049043138 + 70.7173173489 + 70.729732563 + 70.7421499566 + 70.7545695301 + 70.7669912837 + 70.779415218 + 70.7918413333 + 70.8042696299 + 70.8167001084 + 70.8291327689 + 70.841567612 + 70.8540046379 + 70.8664438472 + 70.8788852401 + 70.8913288171 + 70.9037745786 + 70.9162225248 + 70.9286726563 + 70.9411249733 + 70.9535794763 + 70.9660361657 + 70.9784950418 + 70.9909561051 + 71.0034193558 + 71.0158847945 + 71.0283524214 + 71.040822237 + 71.0532942416 + 71.0657684357 + 71.0782448196 + 71.0907233936 + 71.1032041583 + 71.1156871139 + 71.1281722609 + 71.1406595996 + 71.1531491304 + 71.1656408537 + 71.17813477 + 71.1906308795 + 71.2031291826 + 71.2156296799 + 71.2281323715 + 71.240637258 + 71.2531443396 + 71.2656536169 + 71.2781650901 + 71.2906787597 + 71.303194626 + 71.3157126894 + 71.3282329504 + 71.3407554093 + 71.3532800664 + 71.3658069222 + 71.3783359771 + 71.3908672315 + 71.4034006856 + 71.41593634 + 71.428474195 + 71.4410142509 + 71.4535565083 + 71.4661009674 + 71.4786476287 + 71.4911964924 + 71.5037475592 + 71.5163008292 + 71.5288563029 + 71.5414139807 + 71.553973863 + 71.5665359501 + 71.5791002425 + 71.5916667405 + 71.6042354445 + 71.6168063549 + 71.6293794721 + 71.6419547965 + 71.6545323285 + 71.6671120684 + 71.6796940166 + 71.6922781736 + 71.7048645397 + 71.7174531153 + 71.7300439008 + 71.7426368966 + 71.7552321031 + 71.7678295206 + 71.7804291495 + 71.7930309903 + 71.8056350433 + 71.8182413089 + 71.8308497876 + 71.8434604796 + 71.8560733853 + 71.8686885053 + 71.8813058398 + 71.8939253892 + 71.906547154 + 71.9191711345 + 71.9317973311 + 71.9444257442 + 71.9570563742 + 71.9696892214 + 71.9823242864 + 71.9949615693 + 72.0076010708 + 72.020242791 + 72.0328867305 + 72.0455328896 + 72.0581812687 + 72.0708318682 + 72.0834846884 + 72.0961397299 + 72.1087969929 + 72.1214564778 + 72.1341181851 + 72.1467821151 + 72.1594482683 + 72.1721166449 + 72.1847872455 + 72.1974600703 + 72.2101351199 + 72.2228123945 + 72.2354918945 + 72.2481736205 + 72.2608575726 + 72.2735437514 + 72.2862321573 + 72.2989227905 + 72.3116156516 + 72.3243107408 + 72.3370080587 + 72.3497076055 + 72.3624093817 + 72.3751133877 + 72.3878196239 + 72.4005280905 + 72.4132387882 + 72.4259517171 + 72.4386668778 + 72.4513842706 + 72.4641038959 + 72.4768257541 + 72.4895498455 + 72.5022761707 + 72.51500473 + 72.5277355237 + 72.5404685522 + 72.553203816 + 72.5659413155 + 72.578681051 + 72.5914230229 + 72.6041672317 + 72.6169136777 + 72.6296623612 + 72.6424132828 + 72.6551664428 + 72.6679218415 + 72.6806794795 + 72.693439357 + 72.7062014744 + 72.7189658322 + 72.7317324308 + 72.7445012705 + 72.7572723518 + 72.770045675 + 72.7828212405 + 72.7955990487 + 72.8083791001 + 72.8211613949 + 72.8339459337 + 72.8467327167 + 72.8595217445 + 72.8723130173 + 72.8851065356 + 72.8979022997 + 72.9107003102 + 72.9235005673 + 72.9363030714 + 72.949107823 + 72.9619148224 + 72.9747240701 + 72.9875355664 + 73.0003493117 + 73.0131653065 + 73.025983551 + 73.0388040458 + 73.0516267912 + 73.0644517876 + 73.0772790353 + 73.0901085349 + 73.1029402867 + 73.115774291 + 73.1286105483 + 73.141449059 + 73.1542898235 + 73.1671328421 + 73.1799781153 + 73.1928256434 + 73.2056754269 + 73.2185274661 + 73.2313817615 + 73.2442383134 + 73.2570971223 + 73.2699581885 + 73.2828215124 + 73.2956870944 + 73.308554935 + 73.3214250345 + 73.3342973933 + 73.3471720118 + 73.3600488904 + 73.3729280295 + 73.3858094295 + 73.3986930909 + 73.4115790139 + 73.424467199 + 73.4373576466 + 73.450250357 + 73.4631453308 + 73.4760425682 + 73.4889420697 + 73.5018438357 + 73.5147478666 + 73.5276541627 + 73.5405627246 + 73.5534735524 + 73.5663866468 + 73.579302008 + 73.5922196364 + 73.6051395325 + 73.6180616967 + 73.6309861293 + 73.6439128308 + 73.6568418015 + 73.6697730419 + 73.6827065523 + 73.6956423332 + 73.7085803849 + 73.7215207079 + 73.7344633025 + 73.7474081691 + 73.7603553082 + 73.7733047201 + 73.7862564052 + 73.799210364 + 73.8121665969 + 73.8251251041 + 73.8380858862 + 73.8510489435 + 73.8640142765 + 73.8769818855 + 73.8899517709 + 73.9029239332 + 73.9158983726 + 73.9288750898 + 73.9418540849 + 73.9548353585 + 73.9678189109 + 73.9808047425 + 73.9937928538 + 74.0067832451 + 74.0197759168 + 74.0327708694 + 74.0457681032 + 74.0587676186 + 74.071769416 + 74.0847734959 + 74.0977798587 + 74.1107885046 + 74.1237994342 + 74.1368126478 + 74.1498281459 + 74.1628459288 + 74.175865997 + 74.1888883507 + 74.2019129906 + 74.2149399168 + 74.22796913 + 74.2410006303 + 74.2540344183 + 74.2670704944 + 74.2801088589 + 74.2931495123 + 74.3061924549 + 74.3192376871 + 74.3322852095 + 74.3453350223 + 74.3583871259 + 74.3714415208 + 74.3844982074 + 74.3975571861 + 74.4106184572 + 74.4236820212 + 74.4367478785 + 74.4498160294 + 74.4628864745 + 74.475959214 + 74.4890342484 + 74.5021115781 + 74.5151912035 + 74.528273125 + 74.5413573429 + 74.5544438578 + 74.56753267 + 74.5806237799 + 74.5937171879 + 74.6068128945 + 74.6199108999 + 74.6330112047 + 74.6461138092 + 74.6592187138 + 74.6723259189 + 74.685435425 + 74.6985472325 + 74.7116613417 + 74.724777753 + 74.7378964669 + 74.7510174837 + 74.7641408039 + 74.7772664279 + 74.790394356 + 74.8035245887 + 74.8166571264 + 74.8297919695 + 74.8429291184 + 74.8560685734 + 74.8692103351 + 74.8823544038 + 74.8955007798 + 74.9086494637 + 74.9218004558 + 74.9349537566 + 74.9481093663 + 74.9612672855 + 74.9744275146 + 74.9875900538 + 75.0007549038 + 75.0139220648 + 75.0270915372 + 75.0402633215 + 75.0534374181 + 75.0666138274 + 75.0797925497 + 75.0929735856 + 75.1061569353 + 75.1193425994 + 75.1325305782 + 75.145720872 + 75.1589134814 + 75.1721084068 + 75.1853056485 + 75.1985052069 + 75.2117070824 + 75.2249112755 + 75.2381177866 + 75.2513266161 + 75.2645377643 + 75.2777512317 + 75.2909670187 + 75.3041851257 + 75.3174055532 + 75.3306283014 + 75.3438533708 + 75.3570807619 + 75.370310475 + 75.3835425106 + 75.396776869 + 75.4100135506 + 75.4232525559 + 75.4364938854 + 75.4497375392 + 75.462983518 + 75.4762318221 + 75.4894824519 + 75.5027354078 + 75.5159906902 + 75.5292482995 + 75.5425082362 + 75.5557705007 + 75.5690350933 + 75.5823020144 + 75.5955712646 + 75.6088428441 + 75.6221167534 + 75.6353929929 + 75.6486715631 + 75.6619524642 + 75.6752356968 + 75.6885212612 + 75.7018091579 + 75.7150993872 + 75.7283919496 + 75.7416868455 + 75.7549840752 + 75.7682836393 + 75.781585538 + 75.7948897719 + 75.8081963413 + 75.8215052466 + 75.8348164883 + 75.8481300667 + 75.8614459823 + 75.8747642355 + 75.8880848267 + 75.9014077562 + 75.9147330246 + 75.9280606321 + 75.9413905794 + 75.9547228666 + 75.9680574943 + 75.9813944629 + 75.9947337727 + 76.0080754242 + 76.0214194178 + 76.0347657539 + 76.048114433 + 76.0614654553 + 76.0748188214 + 76.0881745316 + 76.1015325865 + 76.1148929862 + 76.1282557314 + 76.1416208224 + 76.1549882595 + 76.1683580433 + 76.1817301741 + 76.1951046524 + 76.2084814785 + 76.2218606529 + 76.235242176 + 76.2486260482 + 76.2620122698 + 76.2754008414 + 76.2887917634 + 76.302185036 + 76.3155806598 + 76.3289786352 + 76.3423789626 + 76.3557816424 + 76.3691866749 + 76.3825940607 + 76.3960038002 + 76.4094158936 + 76.4228303416 + 76.4362471444 + 76.4496663024 + 76.4630878162 + 76.4765116861 + 76.4899379126 + 76.5033664959 + 76.5167974367 + 76.5302307352 + 76.5436663918 + 76.5571044071 + 76.5705447814 + 76.5839875151 + 76.5974326087 + 76.6108800625 + 76.6243298769 + 76.6377820525 + 76.6512365895 + 76.6646934885 + 76.6781527497 + 76.6916143738 + 76.7050783609 + 76.7185447117 + 76.7320134264 + 76.7454845055 + 76.7589579495 + 76.7724337587 + 76.7859119335 + 76.7993924744 + 76.8128753817 + 76.8263606559 + 76.8398482975 + 76.8533383068 + 76.8668306842 + 76.8803254301 + 76.8938225451 + 76.9073220294 + 76.9208238835 + 76.9343281078 + 76.9478347028 + 76.9613436688 + 76.9748550063 + 76.9883687157 + 77.0018847973 + 77.0154032517 + 77.0289240792 + 77.0424472803 + 77.0559728553 + 77.0695008047 + 77.0830311289 + 77.0965638283 + 77.1100989034 + 77.1236363545 + 77.137176182 + 77.1507183865 + 77.1642629682 + 77.1778099277 + 77.1913592653 + 77.2049109814 + 77.2184650766 + 77.2320215511 + 77.2455804054 + 77.2591416399 + 77.2727052551 + 77.2862712513 + 77.299839629 + 77.3134103887 + 77.3269835306 + 77.3405590552 + 77.354136963 + 77.3677172544 + 77.3812999298 + 77.3948849895 + 77.4084724341 + 77.4220622639 + 77.4356544794 + 77.449249081 + 77.4628460691 + 77.4764454441 + 77.4900472064 + 77.5036513565 + 77.5172578947 + 77.5308668216 + 77.5444781374 + 77.5580918427 + 77.5717079379 + 77.5853264233 + 77.5989472994 + 77.6125705666 + 77.6261962254 + 77.6398242761 + 77.6534547191 + 77.667087555 + 77.6807227841 + 77.6943604068 + 77.7080004235 + 77.7216428347 + 77.7352876409 + 77.7489348423 + 77.7625844394 + 77.7762364328 + 77.7898908226 + 77.8035476095 + 77.8172067938 + 77.830868376 + 77.8445323563 + 77.8581987354 + 77.8718675136 + 77.8855386913 + 77.8992122689 + 77.9128882469 + 77.9265666257 + 77.9402474056 + 77.9539305872 + 77.9676161709 + 77.981304157 + 77.994994546 + 78.0086873384 + 78.0223825344 + 78.0360801347 + 78.0497801395 + 78.0634825493 + 78.0771873645 + 78.0908945856 + 78.1046042129 + 78.118316247 + 78.1320306881 + 78.1457475368 + 78.1594667934 + 78.1731884585 + 78.1869125323 + 78.2006390154 + 78.2143679081 + 78.2280992108 + 78.2418329241 + 78.2555690483 + 78.2693075839 + 78.2830485312 + 78.2967918907 + 78.3105376628 + 78.3242858479 + 78.3380364465 + 78.351789459 + 78.3655448858 + 78.3793027273 + 78.393062984 + 78.4068256562 + 78.4205907445 + 78.4343582492 + 78.4481281707 + 78.4619005096 + 78.4756752661 + 78.4894524407 + 78.5032320339 + 78.5170140461 + 78.5307984776 + 78.544585329 + 78.5583746006 + 78.5721662929 + 78.5859604063 + 78.5997569413 + 78.6135558981 + 78.6273572774 + 78.6411610794 + 78.6549673047 + 78.6687759536 + 78.6825870266 + 78.6964005241 + 78.7102164465 + 78.7240347942 + 78.7378555678 + 78.7516787675 + 78.7655043939 + 78.7793324473 + 78.7931629282 + 78.806995837 + 78.8208311742 + 78.8346689401 + 78.8485091352 + 78.8623517599 + 78.8761968146 + 78.8900442998 + 78.9038942159 + 78.9177465633 + 78.9316013425 + 78.9454585538 + 78.9593181977 + 78.9731802747 + 78.9870447851 + 79.0009117294 + 79.014781108 + 79.0286529213 + 79.0425271698 + 79.0564038539 + 79.070282974 + 79.0841645306 + 79.098048524 + 79.1119349547 + 79.1258238231 + 79.1397151297 + 79.1536088749 + 79.1675050591 + 79.1814036828 + 79.1953047463 + 79.2092082501 + 79.2231141946 + 79.2370225803 + 79.2509334076 + 79.2648466769 + 79.2787623886 + 79.2926805432 + 79.3066011411 + 79.3205241827 + 79.3344496685 + 79.3483775988 + 79.3623079742 + 79.376240795 + 79.3901760617 + 79.4041137747 + 79.4180539344 + 79.4319965413 + 79.4459415958 + 79.4598890982 + 79.4738390492 + 79.487791449 + 79.5017462981 + 79.515703597 + 79.529663346 + 79.5436255457 + 79.5575901963 + 79.5715572984 + 79.5855268524 + 79.5994988588 + 79.6134733179 + 79.6274502301 + 79.641429596 + 79.6554114159 + 79.6693956903 + 79.6833824196 + 79.6973716043 + 79.7113632447 + 79.7253573413 + 79.7393538945 + 79.7533529048 + 79.7673543726 + 79.7813582983 + 79.7953646823 + 79.8093735252 + 79.8233848272 + 79.8373985889 + 79.8514148107 + 79.865433493 + 79.8794546363 + 79.8934782409 + 79.9075043073 + 79.921532836 + 79.9355638274 + 79.9495972818 + 79.9636331998 + 79.9776715818 + 79.9917124282 + 80.0057557394 + 80.0198015158 + 80.033849758 + 80.0479004663 + 80.0619536412 + 80.0760092831 + 80.0900673924 + 80.1041279695 + 80.118191015 + 80.1322565292 + 80.1463245126 + 80.1603949656 + 80.1744678886 + 80.188543282 + 80.2026211464 + 80.2167014821 + 80.2307842896 + 80.2448695693 + 80.2589573216 + 80.273047547 + 80.2871402458 + 80.3012354187 + 80.3153330659 + 80.3294331879 + 80.3435357851 + 80.357640858 + 80.3717484071 + 80.3858584326 + 80.3999709352 + 80.4140859152 + 80.428203373 + 80.4423233091 + 80.4564457239 + 80.4705706179 + 80.4846979915 + 80.4988278451 + 80.5129601791 + 80.5270949941 + 80.5412322904 + 80.5553720684 + 80.5695143287 + 80.5836590716 + 80.5978062975 + 80.611956007 + 80.6261082004 + 80.6402628783 + 80.6544200409 + 80.6685796888 + 80.6827418223 + 80.696906442 + 80.7110735483 + 80.7252431416 + 80.7394152223 + 80.7535897908 + 80.7677668477 + 80.7819463934 + 80.7961284282 + 80.8103129526 + 80.8244999671 + 80.8386894721 + 80.852881468 + 80.8670759553 + 80.8812729344 + 80.8954724058 + 80.9096743698 + 80.9238788269 + 80.9380857776 + 80.9522952223 + 80.9665071615 + 80.9807215955 + 80.9949385248 + 81.0091579498 + 81.0233798711 + 81.0376042889 + 81.0518312039 + 81.0660606163 + 81.0802925266 + 81.0945269354 + 81.1087638429 + 81.1230032497 + 81.1372451563 + 81.1514895629 + 81.1657364701 + 81.1799858783 + 81.194237788 + 81.2084921995 + 81.2227491134 + 81.23700853 + 81.2512704499 + 81.2655348734 + 81.2798018009 + 81.294071233 + 81.3083431701 + 81.3226176126 + 81.3368945609 + 81.3511740155 + 81.3654559768 + 81.3797404452 + 81.3940274213 + 81.4083169054 + 81.4226088981 + 81.4369033996 + 81.4512004105 + 81.4654999312 + 81.4798019621 + 81.4941065038 + 81.5084135565 + 81.5227231208 + 81.5370351972 + 81.551349786 + 81.5656668876 + 81.5799865026 + 81.5943086314 + 81.6086332744 + 81.6229604321 + 81.6372901048 + 81.6516222931 + 81.6659569973 + 81.680294218 + 81.6946339556 + 81.7089762104 + 81.723320983 + 81.7376682738 + 81.7520180832 + 81.7663704117 + 81.7807252598 + 81.7950826277 + 81.8094425161 + 81.8238049253 + 81.8381698558 + 81.852537308 + 81.8669072824 + 81.8812797794 + 81.8956547995 + 81.9100323431 + 81.9244124106 + 81.9387950025 + 81.9531801192 + 81.9675677612 + 81.9819579289 + 81.9963506227 + 82.0107458432 + 82.0251435907 + 82.0395438657 + 82.0539466687 + 82.068352 + 82.0827598601 + 82.0971702495 + 82.1115831686 + 82.1259986179 + 82.1404165977 + 82.1548371086 + 82.169260151 + 82.1836857253 + 82.198113832 + 82.2125444715 + 82.2269776442 + 82.2414133507 + 82.2558515913 + 82.2702923665 + 82.2847356768 + 82.2991815225 + 82.3136299042 + 82.3280808223 + 82.3425342772 + 82.3569902693 + 82.3714487992 + 82.3859098672 + 82.4003734738 + 82.4148396195 + 82.4293083047 + 82.4437795298 + 82.4582532953 + 82.4727296016 + 82.4872084492 + 82.5016898386 + 82.5161737701 + 82.5306602442 + 82.5451492614 + 82.5596408221 + 82.5741349268 + 82.5886315758 + 82.6031307698 + 82.617632509 + 82.6321367939 + 82.6466436251 + 82.6611530029 + 82.6756649278 + 82.6901794002 + 82.7046964206 + 82.7192159894 + 82.7337381071 + 82.7482627741 + 82.7627899909 + 82.7773197579 + 82.7918520755 + 82.8063869443 + 82.8209243646 + 82.835464337 + 82.8500068618 + 82.8645519395 + 82.8790995705 + 82.8936497554 + 82.9082024945 + 82.9227577883 + 82.9373156372 + 82.9518760418 + 82.9664390024 + 82.9810045194 + 82.9955725934 + 83.0101432249 + 83.0247164141 + 83.0392921616 + 83.0538704679 + 83.0684513333 + 83.0830347584 + 83.0976207436 + 83.1122092893 + 83.126800396 + 83.1413940641 + 83.1559902941 + 83.1705890865 + 83.1851904416 + 83.1997943599 + 83.214400842 + 83.2290098881 + 83.2436214989 + 83.2582356746 + 83.2728524159 + 83.2874717231 + 83.3020935967 + 83.3167180371 + 83.3313450448 + 83.3459746202 + 83.3606067638 + 83.3752414761 + 83.3898787574 + 83.4045186083 + 83.4191610291 + 83.4338060204 + 83.4484535826 + 83.4631037162 + 83.4777564215 + 83.4924116991 + 83.5070695494 + 83.5217299728 + 83.5363929698 + 83.5510585409 + 83.5657266865 + 83.580397407 + 83.595070703 + 83.6097465748 + 83.6244250229 + 83.6391060478 + 83.6537896499 + 83.6684758297 + 83.6831645876 + 83.6978559241 + 83.7125498396 + 83.7272463346 + 83.7419454095 + 83.7566470648 + 83.7713513009 + 83.7860581184 + 83.8007675175 + 83.8154794989 + 83.8301940629 + 83.8449112101 + 83.8596309408 + 83.8743532555 + 83.8890781546 + 83.9038056387 + 83.9185357082 + 83.9332683635 + 83.9480036051 + 83.9627414334 + 83.9774818489 + 83.992224852 + 84.0069704432 + 84.021718623 + 84.0364693918 + 84.0512227501 + 84.0659786983 + 84.0807372368 + 84.0954983662 + 84.1102620868 + 84.1250283992 + 84.1397973038 + 84.154568801 + 84.1693428913 + 84.1841195752 + 84.1988988531 + 84.2136807254 + 84.2284651927 + 84.2432522553 + 84.2580419138 + 84.2728341686 + 84.2876290201 + 84.3024264688 + 84.3172265151 + 84.3320291596 + 84.3468344026 + 84.3616422447 + 84.3764526863 + 84.3912657277 + 84.4060813696 + 84.4208996123 + 84.4357204564 + 84.4505439022 + 84.4653699502 + 84.4801986009 + 84.4950298547 + 84.5098637121 + 84.5247001735 + 84.5395392395 + 84.5543809104 + 84.5692251868 + 84.584072069 + 84.5989215575 + 84.6137736529 + 84.6286283555 + 84.6434856657 + 84.6583455842 + 84.6732081113 + 84.6880732474 + 84.7029409931 + 84.7178113488 + 84.732684315 + 84.747559892 + 84.7624380805 + 84.7773188807 + 84.7922022933 + 84.8070883186 + 84.8219769571 + 84.8368682092 + 84.8517620755 + 84.8666585564 + 84.8815576523 + 84.8964593637 + 84.9113636911 + 84.9262706348 + 84.9411801955 + 84.9560923735 + 84.9710071693 + 84.9859245833 + 85.0008446161 + 85.015767268 + 85.0306925396 + 85.0456204313 + 85.0605509435 + 85.0754840767 + 85.0904198314 + 85.1053582081 + 85.1202992071 + 85.135242829 + 85.1501890742 + 85.1651379432 + 85.1800894364 + 85.1950435543 + 85.2100002974 + 85.2249596661 + 85.2399216609 + 85.2548862822 + 85.2698535305 + 85.2848234063 + 85.29979591 + 85.3147710421 + 85.3297488031 + 85.3447291933 + 85.3597122133 + 85.3746978636 + 85.3896861445 + 85.4046770566 + 85.4196706004 + 85.4346667762 + 85.4496655845 + 85.4646670258 + 85.4796711006 + 85.4946778094 + 85.5096871525 + 85.5246991305 + 85.5397137438 + 85.5547309929 + 85.5697508782 + 85.5847734002 + 85.5997985594 + 85.6148263562 + 85.6298567911 + 85.6448898646 + 85.6599255771 + 85.674963929 + 85.6900049209 + 85.7050485533 + 85.7200948264 + 85.735143741 + 85.7501952973 + 85.7652494959 + 85.7803063372 + 85.7953658217 + 85.8104279499 + 85.8254927222 + 85.840560139 + 85.8556302009 + 85.8707029084 + 85.8857782618 + 85.9008562616 + 85.9159369084 + 85.9310202025 + 85.9461061444 + 85.9611947347 + 85.9762859737 + 85.9913798619 + 86.0064763999 + 86.021575588 + 86.0366774267 + 86.0517819165 + 86.0668890579 + 86.0819988513 + 86.0971112972 + 86.112226396 + 86.1273441483 + 86.1424645544 + 86.1575876149 + 86.1727133302 + 86.1878417008 + 86.2029727271 + 86.2181064096 + 86.2332427489 + 86.2483817452 + 86.2635233992 + 86.2786677113 + 86.2938146819 + 86.3089643115 + 86.3241166006 + 86.3392715497 + 86.3544291591 + 86.3695894295 + 86.3847523612 + 86.3999179547 + 86.4150862105 + 86.430257129 + 86.4454307108 + 86.4606069562 + 86.4757858658 + 86.49096744 + 86.5061516793 + 86.5213385842 + 86.5365281551 + 86.5517203924 + 86.5669152968 + 86.5821128685 + 86.5973131082 + 86.6125160162 + 86.6277215931 + 86.6429298392 + 86.6581407552 + 86.6733543413 + 86.6885705982 + 86.7037895262 + 86.7190111259 + 86.7342353977 + 86.7494623421 + 86.7646919596 + 86.7799242505 + 86.7951592155 + 86.8103968549 + 86.8256371692 + 86.840880159 + 86.8561258246 + 86.8713741665 + 86.8866251853 + 86.9018788813 + 86.9171352551 + 86.9323943071 + 86.9476560378 + 86.9629204477 + 86.9781875372 + 86.9934573067 + 87.0087297569 + 87.0240048881 + 87.0392827008 + 87.0545631955 + 87.0698463726 + 87.0851322327 + 87.1004207761 + 87.1157120035 + 87.1310059151 + 87.1463025116 + 87.1616017933 + 87.1769037608 + 87.1922084146 + 87.207515755 + 87.2228257826 + 87.2381384978 + 87.2534539011 + 87.268771993 + 87.284092774 + 87.2994162445 + 87.314742405 + 87.3300712559 + 87.3454027978 + 87.3607370311 + 87.3760739563 + 87.3914135739 + 87.4067558843 + 87.4221008879 + 87.4374485854 + 87.4527989771 + 87.4681520636 + 87.4835078452 + 87.4988663225 + 87.514227496 + 87.529591366 + 87.5449579332 + 87.5603271979 + 87.5756991607 + 87.5910738219 + 87.6064511822 + 87.6218312419 + 87.6372140015 + 87.6525994616 + 87.6679876225 + 87.6833784848 + 87.6987720489 + 87.7141683153 + 87.7295672845 + 87.7449689569 + 87.7603733331 + 87.7757804134 + 87.7911901985 + 87.8066026886 + 87.8220178844 + 87.8374357864 + 87.8528563948 + 87.8682797104 + 87.8837057334 + 87.8991344645 + 87.914565904 + 87.9300000525 + 87.9454369104 + 87.9608764782 + 87.9763187564 + 87.9917637454 + 88.0072114458 + 88.022661858 + 88.0381149824 + 88.0535708197 + 88.0690293701 + 88.0844906343 + 88.0999546126 + 88.1154213056 + 88.1308907138 + 88.1463628375 + 88.1618376774 + 88.1773152338 + 88.1927955073 + 88.2082784983 + 88.2237642073 + 88.2392526348 + 88.2547437812 + 88.2702376471 + 88.2857342329 + 88.301233539 + 88.316735566 + 88.3322403144 + 88.3477477846 + 88.3632579771 + 88.3787708924 + 88.3942865309 + 88.4098048931 + 88.4253259796 + 88.4408497907 + 88.456376327 + 88.471905589 + 88.4874375771 + 88.5029722918 + 88.5185097335 + 88.5340499028 + 88.5495928002 + 88.5651384261 + 88.580686781 + 88.5962378653 + 88.6117916796 + 88.6273482244 + 88.6429075 + 88.658469507 + 88.674034246 + 88.6896017172 + 88.7051719213 + 88.7207448587 + 88.7363205299 + 88.7518989354 + 88.7674800756 + 88.7830639511 + 88.7986505622 + 88.8142399096 + 88.8298319936 + 88.8454268148 + 88.8610243736 + 88.8766246705 + 88.892227706 + 88.9078334806 + 88.9234419947 + 88.9390532489 + 88.9546672436 + 88.9702839793 + 88.9859034565 + 89.0015256756 + 89.0171506372 + 89.0327783417 + 89.0484087896 + 89.0640419814 + 89.0796779175 + 89.0953165985 + 89.1109580249 + 89.126602197 + 89.1422491155 + 89.1578987807 + 89.1735511932 + 89.1892063534 + 89.2048642619 + 89.220524919 + 89.2361883254 + 89.2518544814 + 89.2675233876 + 89.2831950444 + 89.2988694523 + 89.3145466118 + 89.3302265235 + 89.3459091877 + 89.3615946049 + 89.3772827757 + 89.3929737005 + 89.4086673798 + 89.4243638141 + 89.4400630038 + 89.4557649496 + 89.4714696517 + 89.4871771108 + 89.5028873273 + 89.5186003016 + 89.5343160344 + 89.550034526 + 89.5657557769 + 89.5814797877 + 89.5972065588 + 89.6129360906 + 89.6286683838 + 89.6444034387 + 89.6601412559 + 89.6758818358 + 89.6916251789 + 89.7073712858 + 89.7231201568 + 89.7388717925 + 89.7546261933 + 89.7703833598 + 89.7861432925 + 89.8019059917 + 89.8176714581 + 89.833439692 + 89.849210694 + 89.8649844646 + 89.8807610042 + 89.8965403134 + 89.9123223926 + 89.9281072422 + 89.9438948629 + 89.9596852551 + 89.9754784192 + 89.9912743557 + 90.0070730652 + 90.0228745482 + 90.038678805 + 90.0544858362 + 90.0702956423 + 90.0861082238 + 90.1019235812 + 90.1177417149 + 90.1335626254 + 90.1493863133 + 90.1652127789 + 90.1810420229 + 90.1968740456 + 90.2127088477 + 90.2285464294 + 90.2443867915 + 90.2602299342 + 90.2760758582 + 90.2919245639 + 90.3077760518 + 90.3236303224 + 90.3394873761 + 90.3553472136 + 90.3712098352 + 90.3870752414 + 90.4029434328 + 90.4188144098 + 90.4346881728 + 90.4505647225 + 90.4664440593 + 90.4823261837 + 90.4982110961 + 90.5140987971 + 90.5299892871 + 90.5458825667 + 90.5617786363 + 90.5776774964 + 90.5935791475 + 90.6094835902 + 90.6253908248 + 90.6413008518 + 90.6572136719 + 90.6731292854 + 90.6890476928 + 90.7049688947 + 90.7208928915 + 90.7368196837 + 90.7527492718 + 90.7686816564 + 90.7846168378 + 90.8005548166 + 90.8164955933 + 90.8324391683 + 90.8483855422 + 90.8643347155 + 90.8802866886 + 90.896241462 + 90.9121990362 + 90.9281594117 + 90.9441225891 + 90.9600885687 + 90.9760573512 + 90.9920289369 + 91.0080033264 + 91.0239805201 + 91.0399605186 + 91.0559433224 + 91.0719289319 + 91.0879173476 + 91.1039085701 + 91.1199025997 + 91.1358994371 + 91.1518990827 + 91.167901537 + 91.1839068005 + 91.1999148737 + 91.215925757 + 91.231939451 + 91.2479559562 + 91.263975273 + 91.279997402 + 91.2960223437 + 91.3120500984 + 91.3280806669 + 91.3441140494 + 91.3601502465 + 91.3761892588 + 91.3922310867 + 91.4082757307 + 91.4243231912 + 91.4403734689 + 91.4564265642 + 91.4724824775 + 91.4885412094 + 91.5046027604 + 91.5206671309 + 91.5367343216 + 91.5528043327 + 91.5688771649 + 91.5849528187 + 91.6010312945 + 91.6171125928 + 91.6331967142 + 91.6492836591 + 91.665373428 + 91.6814660215 + 91.6975614399 + 91.7136596839 + 91.7297607539 + 91.7458646503 + 91.7619713738 + 91.7780809248 + 91.7941933037 + 91.8103085112 + 91.8264265476 + 91.8425474136 + 91.8586711094 + 91.8747976358 + 91.8909269932 + 91.907059182 + 91.9231942027 + 91.939332056 + 91.9554727422 + 91.9716162618 + 91.9877626154 + 92.0039118035 + 92.0200638265 + 92.036218685 + 92.0523763794 + 92.0685369102 + 92.084700278 + 92.1008664833 + 92.1170355264 + 92.133207408 + 92.1493821286 + 92.1655596885 + 92.1817400884 + 92.1979233288 + 92.21410941 + 92.2302983327 + 92.2464900973 + 92.2626847043 + 92.2788821543 + 92.2950824477 + 92.311285585 + 92.3274915667 + 92.3437003933 + 92.3599120654 + 92.3761265833 + 92.3923439477 + 92.408564159 + 92.4247872178 + 92.4410131244 + 92.4572418795 + 92.4734734835 + 92.4897079369 + 92.5059452402 + 92.5221853939 + 92.5384283986 + 92.5546742547 + 92.5709229627 + 92.5871745231 + 92.6034289364 + 92.6196862032 + 92.6359463239 + 92.652209299 + 92.668475129 + 92.6847438144 + 92.7010153558 + 92.7172897536 + 92.7335670084 + 92.7498471206 + 92.7661300907 + 92.7824159192 + 92.7987046067 + 92.8149961536 + 92.8312905605 + 92.8475878278 + 92.863887956 + 92.8801909457 + 92.8964967974 + 92.9128055114 + 92.9291170885 + 92.945431529 + 92.9617488335 + 92.9780690024 + 92.9943920363 + 93.0107179357 + 93.027046701 + 93.0433783328 + 93.0597128316 + 93.0760501978 + 93.0923904321 + 93.1087335348 + 93.1250795066 + 93.1414283478 + 93.157780059 + 93.1741346407 + 93.1904920934 + 93.2068524177 + 93.2232156139 + 93.2395816827 + 93.2559506245 + 93.2723224398 + 93.2886971292 + 93.3050746931 + 93.321455132 + 93.3378384465 + 93.354224637 + 93.3706137041 + 93.3870056482 + 93.4034004699 + 93.4197981697 + 93.4361987481 + 93.4526022055 + 93.4690085425 + 93.4854177596 + 93.5018298573 + 93.5182448362 + 93.5346626966 + 93.5510834391 + 93.5675070643 + 93.5839335726 + 93.6003629645 + 93.6167952405 + 93.6332304012 + 93.6496684471 + 93.6661093786 + 93.6825531963 + 93.6989999006 + 93.7154494921 + 93.7319019713 + 93.7483573387 + 93.7648155948 + 93.7812767402 + 93.7977407752 + 93.8142077004 + 93.8306775164 + 93.8471502236 + 93.8636258225 + 93.8801043137 + 93.8965856977 + 93.9130699749 + 93.9295571459 + 93.9460472112 + 93.9625401712 + 93.9790360266 + 93.9955347778 + 94.0120364253 + 94.0285409696 + 94.0450484112 + 94.0615587507 + 94.0780719885 + 94.0945881252 + 94.1111071613 + 94.1276290972 + 94.1441539335 + 94.1606816707 + 94.1772123094 + 94.1937458499 + 94.2102822928 + 94.2268216387 + 94.243363888 + 94.2599090413 + 94.276457099 + 94.2930080617 + 94.3095619299 + 94.3261187041 + 94.3426783848 + 94.3592409725 + 94.3758064677 + 94.3923748709 + 94.4089461827 + 94.4255204035 + 94.4420975339 + 94.4586775744 + 94.4752605254 + 94.4918463876 + 94.5084351614 + 94.5250268472 + 94.5416214457 + 94.5582189574 + 94.5748193827 + 94.5914227221 + 94.6080289763 + 94.6246381456 + 94.6412502306 + 94.6578652319 + 94.6744831498 + 94.691103985 + 94.7077277379 + 94.7243544091 + 94.7409839991 + 94.7576165083 + 94.7742519374 + 94.7908902867 + 94.8075315569 + 94.8241757484 + 94.8408228618 + 94.8574728975 + 94.8741258561 + 94.8907817381 + 94.9074405439 + 94.9241022742 + 94.9407669294 + 94.9574345101 + 94.9741050167 + 94.9907784497 + 95.0074548098 + 95.0241340973 + 95.0408163129 + 95.0575014569 + 95.07418953 + 95.0908805327 + 95.1075744654 + 95.1242713287 + 95.1409711231 + 95.1576738491 + 95.1743795072 + 95.191088098 + 95.2077996219 + 95.2245140794 + 95.2412314712 + 95.2579517976 + 95.2746750593 + 95.2914012567 + 95.3081303903 + 95.3248624607 + 95.3415974684 + 95.3583354138 + 95.3750762976 + 95.3918201202 + 95.4085668821 + 95.4253165839 + 95.442069226 + 95.458824809 + 95.4755833334 + 95.4923447998 + 95.5091092086 + 95.5258765603 + 95.5426468555 + 95.5594200946 + 95.5761962783 + 95.592975407 + 95.6097574812 + 95.6265425015 + 95.6433304684 + 95.6601213823 + 95.6769152438 + 95.6937120535 + 95.7105118118 + 95.7273145192 + 95.7441201764 + 95.7609287837 + 95.7777403417 + 95.794554851 + 95.811372312 + 95.8281927252 + 95.8450160913 + 95.8618424106 + 95.8786716838 + 95.8955039113 + 95.9123390936 + 95.9291772314 + 95.946018325 + 95.962862375 + 95.979709382 + 95.9965593464 + 96.0134122688 + 96.0302681497 + 96.0471269896 + 96.063988789 + 96.0808535484 + 96.0977212684 + 96.1145919496 + 96.1314655923 + 96.1483421971 + 96.1652217646 + 96.1821042953 + 96.1989897896 + 96.2158782482 + 96.2327696714 + 96.24966406 + 96.2665614143 + 96.2834617348 + 96.3003650222 + 96.3172712769 + 96.3341804995 + 96.3510926905 + 96.3680078503 + 96.3849259795 + 96.4018470787 + 96.4187711484 + 96.435698189 + 96.4526282011 + 96.4695611853 + 96.4864971419 + 96.5034360717 + 96.520377975 + 96.5373228525 + 96.5542707046 + 96.5712215318 + 96.5881753347 + 96.6051321138 + 96.6220918696 + 96.6390546027 + 96.6560203135 + 96.6729890027 + 96.6899606706 + 96.7069353179 + 96.723912945 + 96.7408935525 + 96.7578771409 + 96.7748637108 + 96.7918532625 + 96.8088457968 + 96.8258413141 + 96.8428398148 + 96.8598412997 + 96.8768457691 + 96.8938532235 + 96.9108636636 + 96.9278770899 + 96.9448935028 + 96.9619129029 + 96.9789352907 + 96.9959606668 + 97.0129890316 + 97.0300203857 + 97.0470547296 + 97.0640920638 + 97.0811323889 + 97.0981757054 + 97.1152220138 + 97.1322713147 + 97.1493236085 + 97.1663788958 + 97.1834371771 + 97.2004984529 + 97.2175627238 + 97.2346299903 + 97.251700253 + 97.2687735122 + 97.2858497686 + 97.3029290228 + 97.3200112751 + 97.3370965262 + 97.3541847766 + 97.3712760267 + 97.3883702772 + 97.4054675286 + 97.4225677813 + 97.4396710359 + 97.456777293 + 97.473886553 + 97.4909988165 + 97.5081140841 + 97.5252323561 + 97.5423536333 + 97.559477916 + 97.5766052049 + 97.5937355004 + 97.6108688031 + 97.6280051135 + 97.6451444322 + 97.6622867596 + 97.6794320963 + 97.6965804428 + 97.7137317997 + 97.7308861674 + 97.7480435466 + 97.7652039377 + 97.7823673412 + 97.7995337578 + 97.8167031879 + 97.833875632 + 97.8510510907 + 97.8682295645 + 97.8854110539 + 97.9025955596 + 97.9197830819 + 97.9369736214 + 97.9541671787 + 97.9713637543 + 97.9885633487 + 98.0057659625 + 98.0229715961 + 98.0401802501 + 98.0573919251 + 98.0746066215 + 98.09182434 + 98.1090450809 + 98.1262688449 + 98.1434956325 + 98.1607254443 + 98.1779582807 + 98.1951941422 + 98.2124330295 + 98.229674943 + 98.2469198833 + 98.2641678509 + 98.2814188463 + 98.2986728701 + 98.3159299228 + 98.333190005 + 98.3504531171 + 98.3677192597 + 98.3849884333 + 98.4022606385 + 98.4195358758 + 98.4368141457 + 98.4540954488 + 98.4713797855 + 98.4886671565 + 98.5059575622 + 98.5232510032 + 98.5405474801 + 98.5578469933 + 98.5751495434 + 98.5924551309 + 98.6097637563 + 98.6270754203 + 98.6443901232 + 98.6617078657 + 98.6790286483 + 98.6963524716 + 98.7136793359 + 98.731009242 + 98.7483421903 + 98.7656781813 + 98.7830172156 + 98.8003592938 + 98.8177044163 + 98.8350525837 + 98.8524037966 + 98.8697580554 + 98.8871153606 + 98.904475713 + 98.9218391129 + 98.9392055609 + 98.9565750575 + 98.9739476033 + 98.9913231988 + 99.0087018446 + 99.0260835411 + 99.0434682889 + 99.0608560886 + 99.0782469407 + 99.0956408457 + 99.1130378042 + 99.1304378166 + 99.1478408836 + 99.1652470057 + 99.1826561833 + 99.2000684171 + 99.2174837075 + 99.2349020552 + 99.2523234606 + 99.2697479243 + 99.2871754469 + 99.3046060287 + 99.3220396705 + 99.3394763727 + 99.3569161359 + 99.3743589606 + 99.3918048473 + 99.4092537967 + 99.4267058091 + 99.4441608852 + 99.4616190255 + 99.4790802305 + 99.4965445008 + 99.5140118369 + 99.5314822393 + 99.5489557087 + 99.5664322454 + 99.5839118501 + 99.6013945234 + 99.6188802656 + 99.6363690775 + 99.6538609594 + 99.671355912 + 99.6888539358 + 99.7063550314 + 99.7238591992 + 99.7413664398 + 99.7588767538 + 99.7763901417 + 99.793906604 + 99.8114261413 + 99.8289487541 + 99.8464744429 + 99.8640032084 + 99.8815350509 + 99.8990699712 + 99.9166079696 + 99.9341490468 + 99.9516932033 + 99.9692404396 + 99.9867907563 + 100.004344154 + 100.021900633 + 100.039460194 + 100.057022838 + 100.074588564 + 100.092157375 + 100.109729269 + 100.127304248 + 100.144882313 + 100.162463463 + 100.180047699 + 100.197635023 + 100.215225434 + 100.232818932 + 100.25041552 + 100.268015196 + 100.285617962 + 100.303223818 + 100.320832764 + 100.338444802 + 100.356059932 + 100.373678154 + 100.391299469 + 100.408923877 + 100.426551379 + 100.444181975 + 100.461815667 + 100.479452454 + 100.497092337 + 100.514735317 + 100.532381394 + 100.550030568 + 100.567682841 + 100.585338213 + 100.602996684 + 100.620658255 + 100.638322927 + 100.655990699 + 100.673661573 + 100.691335549 + 100.709012628 + 100.72669281 + 100.744376096 + 100.762062485 + 100.77975198 + 100.79744458 + 100.815140286 + 100.832839098 + 100.850541018 + 100.868246044 + 100.885954179 + 100.903665423 + 100.921379775 + 100.939097238 + 100.956817811 + 100.974541494 + 100.992268289 + 101.009998195 + 101.027731215 + 101.045467347 + 101.063206592 + 101.080948952 + 101.098694427 + 101.116443016 + 101.134194721 + 101.151949543 + 101.169707481 + 101.187468537 + 101.205232711 + 101.223000003 + 101.240770414 + 101.258543944 + 101.276320595 + 101.294100366 + 101.311883259 + 101.329669273 + 101.34745841 + 101.365250669 + 101.383046052 + 101.400844559 + 101.41864619 + 101.436450947 + 101.454258828 + 101.472069836 + 101.489883971 + 101.507701233 + 101.525521623 + 101.543345141 + 101.561171788 + 101.579001564 + 101.59683447 + 101.614670507 + 101.632509675 + 101.650351974 + 101.668197406 + 101.68604597 + 101.703897668 + 101.721752499 + 101.739610465 + 101.757471566 + 101.775335802 + 101.793203175 + 101.811073683 + 101.828947329 + 101.846824113 + 101.864704035 + 101.882587095 + 101.900473295 + 101.918362635 + 101.936255116 + 101.954150737 + 101.9720495 + 101.989951404 + 102.007856452 + 102.025764643 + 102.043675977 + 102.061590456 + 102.079508079 + 102.097428848 + 102.115352763 + 102.133279825 + 102.151210033 + 102.169143389 + 102.187079893 + 102.205019546 + 102.222962348 + 102.2409083 + 102.258857403 + 102.276809656 + 102.294765061 + 102.312723618 + 102.330685327 + 102.348650189 + 102.366618206 + 102.384589376 + 102.402563701 + 102.420541182 + 102.438521818 + 102.456505611 + 102.474492561 + 102.492482669 + 102.510475934 + 102.528472359 + 102.546471942 + 102.564474685 + 102.582480589 + 102.600489653 + 102.618501879 + 102.636517267 + 102.654535818 + 102.672557532 + 102.690582409 + 102.70861045 + 102.726641657 + 102.744676028 + 102.762713566 + 102.78075427 + 102.798798141 + 102.816845179 + 102.834895386 + 102.852948761 + 102.871005306 + 102.88906502 + 102.907127905 + 102.925193961 + 102.943263188 + 102.961335587 + 102.979411158 + 102.997489903 + 103.015571821 + 103.033656914 + 103.051745181 + 103.069836624 + 103.087931243 + 103.106029038 + 103.12413001 + 103.14223416 + 103.160341488 + 103.178451994 + 103.19656568 + 103.214682546 + 103.232802592 + 103.250925819 + 103.269052227 + 103.287181818 + 103.305314591 + 103.323450547 + 103.341589687 + 103.359732011 + 103.37787752 + 103.396026215 + 103.414178095 + 103.432333162 + 103.450491416 + 103.468652858 + 103.486817488 + 103.504985306 + 103.523156314 + 103.541330512 + 103.5595079 + 103.577688479 + 103.59587225 + 103.614059213 + 103.632249369 + 103.650442718 + 103.66863926 + 103.686838997 + 103.705041929 + 103.723248057 + 103.74145738 + 103.7596699 + 103.777885617 + 103.796104532 + 103.814326645 + 103.832551957 + 103.850780469 + 103.86901218 + 103.887247092 + 103.905485205 + 103.92372652 + 103.941971037 + 103.960218757 + 103.97846968 + 103.996723807 + 104.014981138 + 104.033241674 + 104.051505417 + 104.069772365 + 104.08804252 + 104.106315882 + 104.124592452 + 104.14287223 + 104.161155218 + 104.179441415 + 104.197730822 + 104.216023439 + 104.234319268 + 104.252618309 + 104.270920562 + 104.289226028 + 104.307534708 + 104.325846601 + 104.344161709 + 104.362480032 + 104.380801571 + 104.399126327 + 104.417454299 + 104.435785489 + 104.454119896 + 104.472457522 + 104.490798368 + 104.509142433 + 104.527489718 + 104.545840224 + 104.564193951 + 104.582550901 + 104.600911073 + 104.619274468 + 104.637641086 + 104.656010929 + 104.674383997 + 104.69276029 + 104.711139809 + 104.729522554 + 104.747908526 + 104.766297726 + 104.784690155 + 104.803085812 + 104.821484698 + 104.839886814 + 104.858292161 + 104.876700738 + 104.895112547 + 104.913527589 + 104.931945863 + 104.95036737 + 104.968792111 + 104.987220087 + 105.005651297 + 105.024085744 + 105.042523426 + 105.060964345 + 105.079408501 + 105.097855895 + 105.116306527 + 105.134760399 + 105.15321751 + 105.171677861 + 105.190141452 + 105.208608285 + 105.22707836 + 105.245551677 + 105.264028237 + 105.282508041 + 105.300991089 + 105.319477381 + 105.337966918 + 105.356459702 + 105.374955731 + 105.393455008 + 105.411957532 + 105.430463304 + 105.448972325 + 105.467484595 + 105.486000115 + 105.504518885 + 105.523040906 + 105.541566179 + 105.560094703 + 105.578626481 + 105.597161511 + 105.615699796 + 105.634241334 + 105.652786128 + 105.671334177 + 105.689885482 + 105.708440044 + 105.726997863 + 105.745558939 + 105.764123274 + 105.782690868 + 105.801261722 + 105.819835836 + 105.83841321 + 105.856993845 + 105.875577742 + 105.894164902 + 105.912755324 + 105.93134901 + 105.949945961 + 105.968546175 + 105.987149655 + 106.005756401 + 106.024366413 + 106.042979692 + 106.061596239 + 106.080216053 + 106.098839137 + 106.117465489 + 106.136095112 + 106.154728004 + 106.173364168 + 106.192003603 + 106.210646311 + 106.229292291 + 106.247941544 + 106.266594071 + 106.285249872 + 106.303908949 + 106.322571301 + 106.341236929 + 106.359905834 + 106.378578016 + 106.397253476 + 106.415932215 + 106.434614232 + 106.453299529 + 106.471988106 + 106.490679964 + 106.509375104 + 106.528073525 + 106.546775228 + 106.565480215 + 106.584188485 + 106.60290004 + 106.621614879 + 106.640333003 + 106.659054414 + 106.677779111 + 106.696507095 + 106.715238366 + 106.733972926 + 106.752710775 + 106.771451913 + 106.790196341 + 106.80894406 + 106.827695069 + 106.846449371 + 106.865206965 + 106.883967851 + 106.902732031 + 106.921499505 + 106.940270273 + 106.959044337 + 106.977821697 + 106.996602352 + 107.015386305 + 107.034173555 + 107.052964103 + 107.07175795 + 107.090555096 + 107.109355542 + 107.128159288 + 107.146966335 + 107.165776684 + 107.184590335 + 107.203407288 + 107.222227545 + 107.241051106 + 107.259877971 + 107.278708141 + 107.297541616 + 107.316378398 + 107.335218487 + 107.354061883 + 107.372908586 + 107.391758599 + 107.41061192 + 107.429468551 + 107.448328492 + 107.467191744 + 107.486058308 + 107.504928183 + 107.523801371 + 107.542677872 + 107.561557687 + 107.580440816 + 107.59932726 + 107.61821702 + 107.637110096 + 107.656006488 + 107.674906197 + 107.693809224 + 107.71271557 + 107.731625235 + 107.750538219 + 107.769454523 + 107.788374148 + 107.807297094 + 107.826223362 + 107.845152953 + 107.864085866 + 107.883022104 + 107.901961665 + 107.920904551 + 107.939850763 + 107.9588003 + 107.977753165 + 107.996709356 + 108.015668875 + 108.034631722 + 108.053597898 + 108.072567404 + 108.091540239 + 108.110516406 + 108.129495903 + 108.148478732 + 108.167464894 + 108.186454389 + 108.205447217 + 108.224443379 + 108.243442877 + 108.262445709 + 108.281451877 + 108.300461382 + 108.319474224 + 108.338490403 + 108.357509921 + 108.376532778 + 108.395558974 + 108.41458851 + 108.433621387 + 108.452657604 + 108.471697164 + 108.490740066 + 108.509786311 + 108.528835899 + 108.547888831 + 108.566945109 + 108.586004731 + 108.605067699 + 108.624134014 + 108.643203676 + 108.662276685 + 108.681353043 + 108.700432749 + 108.719515805 + 108.738602211 + 108.757691967 + 108.776785075 + 108.795881534 + 108.814981346 + 108.834084511 + 108.853191029 + 108.872300901 + 108.891414128 + 108.91053071 + 108.929650648 + 108.948773942 + 108.967900594 + 108.987030603 + 109.006163971 + 109.025300697 + 109.044440782 + 109.063584228 + 109.082731034 + 109.101881202 + 109.121034731 + 109.140191622 + 109.159351877 + 109.178515495 + 109.197682477 + 109.216852824 + 109.236026536 + 109.255203614 + 109.274384058 + 109.29356787 + 109.312755049 + 109.331945597 + 109.351139513 + 109.370336799 + 109.389537455 + 109.408741481 + 109.427948879 + 109.447159648 + 109.46637379 + 109.485591305 + 109.504812194 + 109.524036456 + 109.543264094 + 109.562495106 + 109.581729495 + 109.600967261 + 109.620208403 + 109.639452923 + 109.658700822 + 109.677952099 + 109.697206756 + 109.716464793 + 109.735726211 + 109.75499101 + 109.774259191 + 109.793530754 + 109.812805701 + 109.832084031 + 109.851365745 + 109.870650845 + 109.88993933 + 109.9092312 + 109.928526458 + 109.947825102 + 109.967127135 + 109.986432556 + 110.005741366 + 110.025053565 + 110.044369155 + 110.063688136 + 110.083010508 + 110.102336271 + 110.121665428 + 110.140997978 + 110.160333921 + 110.179673259 + 110.199015992 + 110.21836212 + 110.237711645 + 110.257064566 + 110.276420885 + 110.295780602 + 110.315143717 + 110.334510231 + 110.353880145 + 110.37325346 + 110.392630175 + 110.412010292 + 110.431393811 + 110.450780733 + 110.470171058 + 110.489564787 + 110.508961921 + 110.528362459 + 110.547766404 + 110.567173754 + 110.586584512 + 110.605998677 + 110.62541625 + 110.644837232 + 110.664261624 + 110.683689425 + 110.703120636 + 110.722555259 + 110.741993294 + 110.76143474 + 110.7808796 + 110.800327873 + 110.81977956 + 110.839234662 + 110.85869318 + 110.878155113 + 110.897620462 + 110.917089229 + 110.936561413 + 110.956037016 + 110.975516038 + 110.994998479 + 111.01448434 + 111.033973622 + 111.053466325 + 111.07296245 + 111.092461998 + 111.111964968 + 111.131471363 + 111.150981181 + 111.170494425 + 111.190011094 + 111.209531189 + 111.229054711 + 111.24858166 + 111.268112037 + 111.287645843 + 111.307183077 + 111.326723742 + 111.346267837 + 111.365815362 + 111.385366319 + 111.404920709 + 111.424478531 + 111.444039786 + 111.463604475 + 111.483172599 + 111.502744158 + 111.522319153 + 111.541897584 + 111.561479452 + 111.581064757 + 111.600653501 + 111.620245683 + 111.639841305 + 111.659440367 + 111.679042869 + 111.698648813 + 111.718258198 + 111.737871025 + 111.757487296 + 111.77710701 + 111.796730169 + 111.816356772 + 111.83598682 + 111.855620315 + 111.875257256 + 111.894897645 + 111.914541481 + 111.934188766 + 111.953839499 + 111.973493683 + 111.993151316 + 112.012812401 + 112.032476937 + 112.052144924 + 112.071816365 + 112.091491259 + 112.111169607 + 112.130851409 + 112.150536666 + 112.170225379 + 112.189917549 + 112.209613175 + 112.229312259 + 112.249014801 + 112.268720801 + 112.288430261 + 112.308143181 + 112.327859562 + 112.347579403 + 112.367302707 + 112.387029473 + 112.406759701 + 112.426493394 + 112.44623055 + 112.465971172 + 112.485715258 + 112.505462811 + 112.525213831 + 112.544968317 + 112.564726272 + 112.584487695 + 112.604252587 + 112.624020949 + 112.643792781 + 112.663568084 + 112.683346858 + 112.703129105 + 112.722914824 + 112.742704017 + 112.762496683 + 112.782292824 + 112.80209244 + 112.821895532 + 112.841702101 + 112.861512146 + 112.881325669 + 112.901142671 + 112.920963151 + 112.94078711 + 112.96061455 + 112.98044547 + 113.000279871 + 113.020117755 + 113.039959121 + 113.05980397 + 113.079652302 + 113.099504119 + 113.119359421 + 113.139218209 + 113.159080482 + 113.178946243 + 113.19881549 + 113.218688226 + 113.238564451 + 113.258444164 + 113.278327368 + 113.298214062 + 113.318104247 + 113.337997923 + 113.357895092 + 113.377795754 + 113.397699909 + 113.417607559 + 113.437518703 + 113.457433342 + 113.477351478 + 113.49727311 + 113.517198239 + 113.537126866 + 113.557058992 + 113.576994617 + 113.596933741 + 113.616876365 + 113.636822491 + 113.656772117 + 113.676725246 + 113.696681878 + 113.716642013 + 113.736605652 + 113.756572795 + 113.776543444 + 113.796517599 + 113.81649526 + 113.836476427 + 113.856461103 + 113.876449287 + 113.89644098 + 113.916436182 + 113.936434894 + 113.956437117 + 113.976442852 + 113.996452098 + 114.016464857 + 114.036481129 + 114.056500915 + 114.076524215 + 114.096551031 + 114.116581362 + 114.136615209 + 114.156652573 + 114.176693455 + 114.196737855 + 114.216785773 + 114.236837211 + 114.256892169 + 114.276950648 + 114.297012647 + 114.317078169 + 114.337147213 + 114.35721978 + 114.377295871 + 114.397375486 + 114.417458626 + 114.437545292 + 114.457635483 + 114.477729202 + 114.497826448 + 114.517927222 + 114.538031524 + 114.558139356 + 114.578250718 + 114.59836561 + 114.618484034 + 114.638605989 + 114.658731476 + 114.678860496 + 114.69899305 + 114.719129139 + 114.739268762 + 114.75941192 + 114.779558615 + 114.799708846 + 114.819862615 + 114.840019922 + 114.860180767 + 114.880345151 + 114.900513075 + 114.92068454 + 114.940859545 + 114.961038093 + 114.981220182 + 115.001405815 + 115.021594991 + 115.041787711 + 115.061983976 + 115.082183786 + 115.102387143 + 115.122594046 + 115.142804496 + 115.163018495 + 115.183236041 + 115.203457137 + 115.223681783 + 115.243909979 + 115.264141726 + 115.284377025 + 115.304615876 + 115.324858279 + 115.345104237 + 115.365353748 + 115.385606814 + 115.405863436 + 115.426123614 + 115.446387348 + 115.466654639 + 115.486925489 + 115.507199896 + 115.527477863 + 115.54775939 + 115.568044477 + 115.588333125 + 115.608625335 + 115.628921107 + 115.649220442 + 115.66952334 + 115.689829802 + 115.71013983 + 115.730453422 + 115.750770581 + 115.771091306 + 115.791415598 + 115.811743459 + 115.832074887 + 115.852409885 + 115.872748453 + 115.893090591 + 115.9134363 + 115.933785581 + 115.954138434 + 115.97449486 + 115.994854859 + 116.015218433 + 116.035585581 + 116.055956305 + 116.076330605 + 116.096708481 + 116.117089935 + 116.137474966 + 116.157863577 + 116.178255766 + 116.198651535 + 116.219050885 + 116.239453815 + 116.259860328 + 116.280270422 + 116.3006841 + 116.321101361 + 116.341522206 + 116.361946636 + 116.382374652 + 116.402806254 + 116.423241442 + 116.443680218 + 116.464122582 + 116.484568534 + 116.505018076 + 116.525471207 + 116.545927929 + 116.566388242 + 116.586852147 + 116.607319644 + 116.627790734 + 116.648265418 + 116.668743696 + 116.68922557 + 116.709711038 + 116.730200103 + 116.750692765 + 116.771189024 + 116.791688881 + 116.812192337 + 116.832699392 + 116.853210047 + 116.873724302 + 116.894242159 + 116.914763618 + 116.935288679 + 116.955817344 + 116.976349612 + 116.996885484 + 117.017424962 + 117.037968045 + 117.058514735 + 117.079065031 + 117.099618935 + 117.120176447 + 117.140737568 + 117.161302299 + 117.181870639 + 117.202442591 + 117.223018153 + 117.243597328 + 117.264180115 + 117.284766515 + 117.30535653 + 117.325950159 + 117.346547403 + 117.367148262 + 117.387752739 + 117.408360832 + 117.428972543 + 117.449587873 + 117.470206821 + 117.490829389 + 117.511455577 + 117.532085386 + 117.552718817 + 117.573355869 + 117.593996545 + 117.614640844 + 117.635288767 + 117.655940314 + 117.676595487 + 117.697254286 + 117.717916712 + 117.738582765 + 117.759252445 + 117.779925755 + 117.800602693 + 117.821283261 + 117.84196746 + 117.862655289 + 117.883346751 + 117.904041844 + 117.924740571 + 117.945442931 + 117.966148925 + 117.986858555 + 118.00757182 + 118.028288721 + 118.049009259 + 118.069733434 + 118.090461247 + 118.111192699 + 118.131927791 + 118.152666522 + 118.173408894 + 118.194154907 + 118.214904563 + 118.235657861 + 118.256414801 + 118.277175386 + 118.297939616 + 118.31870749 + 118.33947901 + 118.360254177 + 118.38103299 + 118.401815451 + 118.422601561 + 118.443391319 + 118.464184727 + 118.484981786 + 118.505782495 + 118.526586856 + 118.547394868 + 118.568206534 + 118.589021853 + 118.609840826 + 118.630663454 + 118.651489737 + 118.672319677 + 118.693153273 + 118.713990526 + 118.734831437 + 118.755676006 + 118.776524235 + 118.797376124 + 118.818231673 + 118.839090884 + 118.859953756 + 118.88082029 + 118.901690488 + 118.922564349 + 118.943441875 + 118.964323066 + 118.985207922 + 119.006096445 + 119.026988634 + 119.047884491 + 119.068784017 + 119.089687211 + 119.110594075 + 119.131504609 + 119.152418813 + 119.173336689 + 119.194258237 + 119.215183458 + 119.236112353 + 119.257044921 + 119.277981164 + 119.298921082 + 119.319864676 + 119.340811947 + 119.361762895 + 119.382717521 + 119.403675825 + 119.424637809 + 119.445603473 + 119.466572817 + 119.487545842 + 119.508522548 + 119.529502938 + 119.55048701 + 119.571474766 + 119.592466206 + 119.613461331 + 119.634460142 + 119.65546264 + 119.676468824 + 119.697478696 + 119.718492256 + 119.739509505 + 119.760530443 + 119.781555071 + 119.802583391 + 119.823615402 + 119.844651105 + 119.8656905 + 119.88673359 + 119.907780373 + 119.928830851 + 119.949885024 + 119.970942893 + 119.992004459 + 120.013069723 + 120.034138684 + 120.055211344 + 120.076287703 + 120.097367762 + 120.118451521 + 120.139538982 + 120.160630145 + 120.18172501 + 120.202823578 + 120.22392585 + 120.245031826 + 120.266141508 + 120.287254895 + 120.308371989 + 120.32949279 + 120.350617298 + 120.371745515 + 120.392877441 + 120.414013077 + 120.435152423 + 120.456295479 + 120.477442248 + 120.498592728 + 120.519746922 + 120.540904829 + 120.56206645 + 120.583231787 + 120.604400838 + 120.625573606 + 120.646750091 + 120.667930293 + 120.689114214 + 120.710301853 + 120.731493212 + 120.75268829 + 120.77388709 + 120.79508961 + 120.816295853 + 120.837505819 + 120.858719508 + 120.879936921 + 120.901158058 + 120.922382921 + 120.94361151 + 120.964843826 + 120.986079869 + 121.007319639 + 121.028563139 + 121.049810367 + 121.071061326 + 121.092316015 + 121.113574435 + 121.134836587 + 121.156102472 + 121.177372089 + 121.198645441 + 121.219922527 + 121.241203348 + 121.262487905 + 121.283776199 + 121.305068229 + 121.326363998 + 121.347663505 + 121.36896675 + 121.390273736 + 121.411584462 + 121.432898929 + 121.454217138 + 121.475539089 + 121.496864783 + 121.518194221 + 121.539527403 + 121.56086433 + 121.582205003 + 121.603549422 + 121.624897588 + 121.646249501 + 121.667605163 + 121.688964574 + 121.710327734 + 121.731694645 + 121.753065307 + 121.77443972 + 121.795817885 + 121.817199803 + 121.838585475 + 121.859974901 + 121.881368082 + 121.902765018 + 121.924165711 + 121.94557016 + 121.966978367 + 121.988390332 + 122.009806056 + 122.031225539 + 122.052648783 + 122.074075787 + 122.095506553 + 122.116941081 + 122.138379371 + 122.159821425 + 122.181267243 + 122.202716826 + 122.224170175 + 122.245627289 + 122.26708817 + 122.288552819 + 122.310021235 + 122.331493421 + 122.352969376 + 122.3744491 + 122.395932596 + 122.417419863 + 122.438910902 + 122.460405713 + 122.481904298 + 122.503406657 + 122.524912791 + 122.5464227 + 122.567936385 + 122.589453847 + 122.610975086 + 122.632500103 + 122.654028899 + 122.675561474 + 122.697097829 + 122.718637964 + 122.740181881 + 122.76172958 + 122.783281062 + 122.804836327 + 122.826395376 + 122.84795821 + 122.869524828 + 122.891095233 + 122.912669425 + 122.934247403 + 122.95582917 + 122.977414726 + 122.99900407 + 123.020597205 + 123.04219413 + 123.063794846 + 123.085399355 + 123.107007656 + 123.12861975 + 123.150235639 + 123.171855322 + 123.1934788 + 123.215106074 + 123.236737145 + 123.258372013 + 123.280010679 + 123.301653143 + 123.323299407 + 123.344949471 + 123.366603335 + 123.388261001 + 123.409922469 + 123.431587739 + 123.453256813 + 123.47492969 + 123.496606372 + 123.51828686 + 123.539971153 + 123.561659253 + 123.583351161 + 123.605046876 + 123.6267464 + 123.648449733 + 123.670156876 + 123.69186783 + 123.713582595 + 123.735301172 + 123.757023562 + 123.778749765 + 123.800479782 + 123.822213614 + 123.843951261 + 123.865692724 + 123.887438003 + 123.9091871 + 123.930940015 + 123.952696749 + 123.974457302 + 123.996221675 + 124.017989868 + 124.039761883 + 124.06153772 + 124.08331738 + 124.105100863 + 124.12688817 + 124.148679302 + 124.170474259 + 124.192273043 + 124.214075653 + 124.23588209 + 124.257692356 + 124.27950645 + 124.301324373 + 124.323146127 + 124.344971712 + 124.366801127 + 124.388634375 + 124.410471456 + 124.43231237 + 124.454157119 + 124.476005702 + 124.49785812 + 124.519714375 + 124.541574467 + 124.563438396 + 124.585306163 + 124.607177769 + 124.629053214 + 124.6509325 + 124.672815626 + 124.694702594 + 124.716593405 + 124.738488058 + 124.760386555 + 124.782288895 + 124.804195081 + 124.826105113 + 124.84801899 + 124.869936715 + 124.891858287 + 124.913783707 + 124.935712977 + 124.957646096 + 124.979583065 + 125.001523886 + 125.023468558 + 125.045417082 + 125.067369459 + 125.08932569 + 125.111285776 + 125.133249716 + 125.155217512 + 125.177189165 + 125.199164674 + 125.221144042 + 125.243127267 + 125.265114352 + 125.287105297 + 125.309100102 + 125.331098768 + 125.353101296 + 125.375107687 + 125.39711794 + 125.419132058 + 125.44115004 + 125.463171887 + 125.4851976 + 125.50722718 + 125.529260627 + 125.551297942 + 125.573339125 + 125.595384178 + 125.617433101 + 125.639485894 + 125.661542559 + 125.683603095 + 125.705667504 + 125.727735787 + 125.749807944 + 125.771883975 + 125.793963882 + 125.816047665 + 125.838135324 + 125.860226861 + 125.882322277 + 125.904421571 + 125.926524744 + 125.948631798 + 125.970742732 + 125.992857548 + 126.014976246 + 126.037098827 + 126.059225292 + 126.081355641 + 126.103489874 + 126.125627994 + 126.147769999 + 126.169915892 + 126.192065672 + 126.214219341 + 126.236376899 + 126.258538346 + 126.280703684 + 126.302872913 + 126.325046033 + 126.347223046 + 126.369403952 + 126.391588752 + 126.413777447 + 126.435970036 + 126.458166522 + 126.480366904 + 126.502571183 + 126.52477936 + 126.546991436 + 126.569207411 + 126.591427286 + 126.613651061 + 126.635878738 + 126.658110317 + 126.680345799 + 126.702585184 + 126.724828473 + 126.747075666 + 126.769326766 + 126.791581771 + 126.813840683 + 126.836103503 + 126.858370231 + 126.880640868 + 126.902915414 + 126.92519387 + 126.947476238 + 126.969762517 + 126.992052708 + 127.014346813 + 127.036644831 + 127.058946763 + 127.081252611 + 127.103562374 + 127.125876054 + 127.14819365 + 127.170515165 + 127.192840598 + 127.21516995 + 127.237503222 + 127.259840415 + 127.282181529 + 127.304526564 + 127.326875523 + 127.349228404 + 127.37158521 + 127.39394594 + 127.416310596 + 127.438679178 + 127.461051686 + 127.483428122 + 127.505808487 + 127.52819278 + 127.550581002 + 127.572973155 + 127.595369238 + 127.617769253 + 127.640173201 + 127.662581081 + 127.684992895 + 127.707408643 + 127.729828326 + 127.752251946 + 127.774679501 + 127.797110994 + 127.819546424 + 127.841985793 + 127.864429101 + 127.886876349 + 127.909327537 + 127.931782667 + 127.954241738 + 127.976704753 + 127.99917171 + 128.021642612 + 128.044117458 + 128.06659625 + 128.089078988 + 128.111565672 + 128.134056305 + 128.156550885 + 128.179049414 + 128.201551893 + 128.224058322 + 128.246568702 + 128.269083033 + 128.291601317 + 128.314123554 + 128.336649745 + 128.35917989 + 128.38171399 + 128.404252046 + 128.426794058 + 128.449340028 + 128.471889955 + 128.494443842 + 128.517001687 + 128.539563492 + 128.562129258 + 128.584698986 + 128.607272675 + 128.629850328 + 128.652431943 + 128.675017523 + 128.697607068 + 128.720200578 + 128.742798054 + 128.765399498 + 128.788004909 + 128.810614288 + 128.833227636 + 128.855844955 + 128.878466243 + 128.901091503 + 128.923720734 + 128.946353938 + 128.968991115 + 128.991632266 + 129.014277392 + 129.036926493 + 129.059579569 + 129.082236623 + 129.104897654 + 129.127562663 + 129.150231651 + 129.172904618 + 129.195581566 + 129.218262494 + 129.240947404 + 129.263636296 + 129.286329172 + 129.309026031 + 129.331726874 + 129.354431702 + 129.377140516 + 129.399853317 + 129.422570105 + 129.445290881 + 129.468015645 + 129.490744398 + 129.513477142 + 129.536213876 + 129.558954602 + 129.581699319 + 129.60444803 + 129.627200733 + 129.649957432 + 129.672718125 + 129.695482813 + 129.718251498 + 129.74102418 + 129.763800859 + 129.786581537 + 129.809366214 + 129.832154891 + 129.854947568 + 129.877744247 + 129.900544927 + 129.92334961 + 129.946158296 + 129.968970987 + 129.991787682 + 130.014608382 + 130.037433088 + 130.060261802 + 130.083094523 + 130.105931252 + 130.12877199 + 130.151616737 + 130.174465495 + 130.197318265 + 130.220175045 + 130.243035839 + 130.265900645 + 130.288769465 + 130.3116423 + 130.33451915 + 130.357400016 + 130.380284899 + 130.403173799 + 130.426066717 + 130.448963654 + 130.471864611 + 130.494769588 + 130.517678585 + 130.540591604 + 130.563508646 + 130.586429711 + 130.609354799 + 130.632283912 + 130.65521705 + 130.678154214 + 130.701095404 + 130.724040622 + 130.746989867 + 130.769943141 + 130.792900445 + 130.815861779 + 130.838827143 + 130.861796539 + 130.884769968 + 130.907747429 + 130.930728924 + 130.953714453 + 130.976704017 + 130.999697617 + 131.022695254 + 131.045696928 + 131.068702639 + 131.091712389 + 131.114726179 + 131.137744008 + 131.160765878 + 131.18379179 + 131.206821744 + 131.229855741 + 131.252893781 + 131.275935865 + 131.298981995 + 131.32203217 + 131.345086391 + 131.36814466 + 131.391206976 + 131.414273341 + 131.437343756 + 131.46041822 + 131.483496735 + 131.506579301 + 131.529665919 + 131.55275659 + 131.575851315 + 131.598950094 + 131.622052928 + 131.645159817 + 131.668270763 + 131.691385766 + 131.714504826 + 131.737627945 + 131.760755124 + 131.783886362 + 131.807021661 + 131.830161021 + 131.853304443 + 131.876451929 + 131.899603477 + 131.92275909 + 131.945918767 + 131.969082511 + 131.99225032 + 132.015422197 + 132.038598141 + 132.061778154 + 132.084962236 + 132.108150389 + 132.131342611 + 132.154538905 + 132.177739271 + 132.20094371 + 132.224152222 + 132.247364809 + 132.27058147 + 132.293802207 + 132.31702702 + 132.340255911 + 132.363488879 + 132.386725926 + 132.409967052 + 132.433212257 + 132.456461544 + 132.479714912 + 132.502972361 + 132.526233894 + 132.54949951 + 132.572769211 + 132.596042996 + 132.619320867 + 132.642602824 + 132.665888869 + 132.689179001 + 132.712473222 + 132.735771532 + 132.759073932 + 132.782380422 + 132.805691004 + 132.829005679 + 132.852324446 + 132.875647306 + 132.898974261 + 132.922305311 + 132.945640456 + 132.968979698 + 132.992323037 + 133.015670474 + 133.03902201 + 133.062377645 + 133.085737379 + 133.109101215 + 133.132469152 + 133.155841191 + 133.179217334 + 133.202597579 + 133.225981929 + 133.249370385 + 133.272762946 + 133.296159613 + 133.319560388 + 133.34296527 + 133.366374262 + 133.389787363 + 133.413204573 + 133.436625895 + 133.460051328 + 133.483480874 + 133.506914532 + 133.530352304 + 133.553794191 + 133.577240193 + 133.600690311 + 133.624144545 + 133.647602897 + 133.671065366 + 133.694531955 + 133.718002663 + 133.741477491 + 133.76495644 + 133.788439511 + 133.811926704 + 133.835418021 + 133.858913461 + 133.882413025 + 133.905916715 + 133.929424532 + 133.952936474 + 133.976452545 + 133.999972743 + 134.02349707 + 134.047025527 + 134.070558115 + 134.094094833 + 134.117635683 + 134.141180666 + 134.164729782 + 134.188283032 + 134.211840417 + 134.235401937 + 134.258967594 + 134.282537387 + 134.306111318 + 134.329689387 + 134.353271595 + 134.376857943 + 134.400448432 + 134.424043062 + 134.447641834 + 134.471244748 + 134.494851806 + 134.518463008 + 134.542078356 + 134.565697848 + 134.589321487 + 134.612949273 + 134.636581207 + 134.66021729 + 134.683857521 + 134.707501903 + 134.731150435 + 134.754803119 + 134.778459955 + 134.802120944 + 134.825786086 + 134.849455383 + 134.873128835 + 134.896806443 + 134.920488207 + 134.944174129 + 134.967864208 + 134.991558446 + 135.015256844 + 135.038959402 + 135.062666121 + 135.086377002 + 135.110092045 + 135.133811251 + 135.157534621 + 135.181262155 + 135.204993855 + 135.228729721 + 135.252469753 + 135.276213953 + 135.299962322 + 135.323714859 + 135.347471566 + 135.371232443 + 135.394997492 + 135.418766712 + 135.442540106 + 135.466317672 + 135.490099413 + 135.513885328 + 135.537675419 + 135.561469686 + 135.585268131 + 135.609070753 + 135.632877553 + 135.656688533 + 135.680503693 + 135.704323033 + 135.728146555 + 135.751974259 + 135.775806146 + 135.799642216 + 135.823482471 + 135.847326911 + 135.871175537 + 135.895028349 + 135.918885349 + 135.942746537 + 135.966611913 + 135.990481479 + 136.014355235 + 136.038233182 + 136.062115321 + 136.086001653 + 136.109892177 + 136.133786896 + 136.157685809 + 136.181588917 + 136.205496222 + 136.229407724 + 136.253323423 + 136.27724332 + 136.301167417 + 136.325095713 + 136.34902821 + 136.372964908 + 136.396905809 + 136.420850912 + 136.444800218 + 136.468753729 + 136.492711445 + 136.516673366 + 136.540639494 + 136.564609829 + 136.588584372 + 136.612563124 + 136.636546085 + 136.660533256 + 136.684524638 + 136.708520232 + 136.732520038 + 136.756524058 + 136.780532291 + 136.804544738 + 136.828561401 + 136.85258228 + 136.876607376 + 136.90063669 + 136.924670222 + 136.948707972 + 136.972749943 + 136.996796134 + 137.020846546 + 137.04490118 + 137.068960037 + 137.093023118 + 137.117090422 + 137.141161952 + 137.165237707 + 137.189317689 + 137.213401898 + 137.237490335 + 137.261583001 + 137.285679896 + 137.309781021 + 137.333886377 + 137.357995964 + 137.382109784 + 137.406227837 + 137.430350124 + 137.454476646 + 137.478607403 + 137.502742396 + 137.526881626 + 137.551025093 + 137.575172799 + 137.599324744 + 137.623480929 + 137.647641354 + 137.67180602 + 137.695974929 + 137.72014808 + 137.744325475 + 137.768507115 + 137.792692999 + 137.816883129 + 137.841077505 + 137.865276129 + 137.889479001 + 137.913686121 + 137.937897491 + 137.962113112 + 137.986332983 + 138.010557106 + 138.034785481 + 138.05901811 + 138.083254993 + 138.10749613 + 138.131741523 + 138.155991172 + 138.180245078 + 138.204503242 + 138.228765664 + 138.253032346 + 138.277303287 + 138.301578489 + 138.325857953 + 138.350141679 + 138.374429668 + 138.39872192 + 138.423018437 + 138.447319219 + 138.471624267 + 138.495933582 + 138.520247164 + 138.544565014 + 138.568887133 + 138.593213522 + 138.617544182 + 138.641879112 + 138.666218315 + 138.69056179 + 138.714909539 + 138.739261561 + 138.763617859 + 138.787978433 + 138.812343282 + 138.83671241 + 138.861085815 + 138.885463498 + 138.909845461 + 138.934231705 + 138.958622229 + 138.983017035 + 139.007416123 + 139.031819495 + 139.056227151 + 139.080639091 + 139.105055317 + 139.129475829 + 139.153900627 + 139.178329714 + 139.202763089 + 139.227200753 + 139.251642708 + 139.276088953 + 139.300539489 + 139.324994318 + 139.34945344 + 139.373916855 + 139.398384565 + 139.42285657 + 139.447332871 + 139.471813469 + 139.496298365 + 139.520787558 + 139.545281051 + 139.569778844 + 139.594280937 + 139.618787331 + 139.643298027 + 139.667813026 + 139.692332329 + 139.716855936 + 139.741383848 + 139.765916066 + 139.79045259 + 139.814993422 + 139.839538562 + 139.86408801 + 139.888641769 + 139.913199837 + 139.937762217 + 139.962328908 + 139.986899913 + 140.01147523 + 140.036054862 + 140.060638809 + 140.085227071 + 140.109819649 + 140.134416545 + 140.159017759 + 140.183623292 + 140.208233143 + 140.232847315 + 140.257465808 + 140.282088623 + 140.30671576 + 140.331347221 + 140.355983005 + 140.380623115 + 140.405267549 + 140.42991631 + 140.454569398 + 140.479226814 + 140.503888558 + 140.528554632 + 140.553225036 + 140.57789977 + 140.602578836 + 140.627262235 + 140.651949966 + 140.676642032 + 140.701338432 + 140.726039168 + 140.750744239 + 140.775453648 + 140.800167394 + 140.824885479 + 140.849607902 + 140.874334666 + 140.899065771 + 140.923801217 + 140.948541005 + 140.973285136 + 140.998033611 + 141.022786431 + 141.047543596 + 141.072305107 + 141.097070965 + 141.12184117 + 141.146615724 + 141.171394627 + 141.196177879 + 141.220965483 + 141.245757437 + 141.270553744 + 141.295354404 + 141.320159417 + 141.344968785 + 141.369782509 + 141.394600588 + 141.419423024 + 141.444249817 + 141.469080969 + 141.49391648 + 141.51875635 + 141.543600582 + 141.568449174 + 141.593302129 + 141.618159446 + 141.643021127 + 141.667887173 + 141.692757584 + 141.71763236 + 141.742511504 + 141.767395014 + 141.792282894 + 141.817175142 + 141.842071759 + 141.866972748 + 141.891878108 + 141.916787839 + 141.941701944 + 141.966620422 + 141.991543275 + 142.016470502 + 142.041402106 + 142.066338086 + 142.091278444 + 142.11622318 + 142.141172295 + 142.16612579 + 142.191083665 + 142.216045922 + 142.24101256 + 142.265983582 + 142.290958987 + 142.315938776 + 142.340922951 + 142.365911511 + 142.390904459 + 142.415901793 + 142.440903516 + 142.465909628 + 142.490920129 + 142.515935022 + 142.540954305 + 142.565977981 + 142.591006049 + 142.616038511 + 142.641075367 + 142.666116619 + 142.691162266 + 142.71621231 + 142.741266752 + 142.766325592 + 142.79138883 + 142.816456469 + 142.841528508 + 142.866604949 + 142.891685792 + 142.916771037 + 142.941860686 + 142.96695474 + 142.992053199 + 143.017156063 + 143.042263335 + 143.067375014 + 143.092491101 + 143.117611598 + 143.142736504 + 143.167865821 + 143.192999549 + 143.21813769 + 143.243280243 + 143.26842721 + 143.293578592 + 143.318734388 + 143.343894601 + 143.369059231 + 143.394228278 + 143.419401744 + 143.444579628 + 143.469761933 + 143.494948659 + 143.520139805 + 143.545335374 + 143.570535367 + 143.595739782 + 143.620948623 + 143.646161889 + 143.671379581 + 143.696601699 + 143.721828246 + 143.747059221 + 143.772294625 + 143.797534459 + 143.822778724 + 143.848027421 + 143.87328055 + 143.898538112 + 143.923800108 + 143.949066539 + 143.974337405 + 143.999612707 + 144.024892446 + 144.050176624 + 144.075465239 + 144.100758294 + 144.12605579 + 144.151357726 + 144.176664104 + 144.201974924 + 144.227290187 + 144.252609895 + 144.277934047 + 144.303262645 + 144.32859569 + 144.353933181 + 144.379275121 + 144.404621509 + 144.429972346 + 144.455327634 + 144.480687373 + 144.506051564 + 144.531420208 + 144.556793304 + 144.582170855 + 144.607552861 + 144.632939323 + 144.658330241 + 144.683725617 + 144.709125451 + 144.734529743 + 144.759938495 + 144.785351708 + 144.810769382 + 144.836191518 + 144.861618117 + 144.887049179 + 144.912484705 + 144.937924697 + 144.963369155 + 144.988818079 + 145.014271471 + 145.039729331 + 145.065191661 + 145.09065846 + 145.116129729 + 145.141605471 + 145.167085684 + 145.19257037 + 145.21805953 + 145.243553165 + 145.269051275 + 145.294553861 + 145.320060924 + 145.345572465 + 145.371088484 + 145.396608983 + 145.422133961 + 145.447663421 + 145.473197362 + 145.498735785 + 145.524278692 + 145.549826083 + 145.575377958 + 145.600934319 + 145.626495167 + 145.652060501 + 145.677630324 + 145.703204635 + 145.728783436 + 145.754366727 + 145.779954509 + 145.805546783 + 145.831143549 + 145.856744809 + 145.882350564 + 145.907960813 + 145.933575558 + 145.9591948 + 145.984818539 + 146.010446776 + 146.036079512 + 146.061716749 + 146.087358485 + 146.113004723 + 146.138655463 + 146.164310706 + 146.189970453 + 146.215634704 + 146.241303461 + 146.266976723 + 146.292654493 + 146.31833677 + 146.344023555 + 146.36971485 + 146.395410655 + 146.421110971 + 146.446815798 + 146.472525138 + 146.498238991 + 146.523957358 + 146.54968024 + 146.575407637 + 146.601139551 + 146.626875982 + 146.652616931 + 146.678362399 + 146.704112386 + 146.729866893 + 146.755625922 + 146.781389473 + 146.807157546 + 146.832930143 + 146.858707264 + 146.88448891 + 146.910275083 + 146.936065782 + 146.961861008 + 146.987660763 + 147.013465047 + 147.03927386 + 147.065087204 + 147.09090508 + 147.116727488 + 147.142554429 + 147.168385904 + 147.194221914 + 147.220062459 + 147.24590754 + 147.271757159 + 147.297611315 + 147.32347001 + 147.349333244 + 147.375201019 + 147.401073334 + 147.426950191 + 147.452831591 + 147.478717535 + 147.504608022 + 147.530503055 + 147.556402633 + 147.582306758 + 147.608215431 + 147.634128651 + 147.660046421 + 147.68596874 + 147.71189561 + 147.737827032 + 147.763763005 + 147.789703532 + 147.815648612 + 147.841598247 + 147.867552438 + 147.893511184 + 147.919474488 + 147.945442349 + 147.971414769 + 147.997391749 + 148.023373288 + 148.049359389 + 148.075350051 + 148.101345276 + 148.127345064 + 148.153349417 + 148.179358334 + 148.205371818 + 148.231389868 + 148.257412485 + 148.283439671 + 148.309471425 + 148.33550775 + 148.361548644 + 148.387594111 + 148.413644149 + 148.439698761 + 148.465757947 + 148.491821707 + 148.517890042 + 148.543962954 + 148.570040443 + 148.596122509 + 148.622209154 + 148.648300379 + 148.674396184 + 148.70049657 + 148.726601538 + 148.752711089 + 148.778825222 + 148.804943941 + 148.831067244 + 148.857195133 + 148.883327609 + 148.909464673 + 148.935606324 + 148.961752565 + 148.987903396 + 149.014058817 + 149.04021883 + 149.066383435 + 149.092552634 + 149.118726426 + 149.144904813 + 149.171087796 + 149.197275375 + 149.223467551 + 149.249664325 + 149.275865698 + 149.30207167 + 149.328282243 + 149.354497417 + 149.380717193 + 149.406941572 + 149.433170555 + 149.459404142 + 149.485642334 + 149.511885132 + 149.538132537 + 149.56438455 + 149.590641171 + 149.616902402 + 149.643168243 + 149.669438694 + 149.695713757 + 149.721993433 + 149.748277722 + 149.774566625 + 149.800860144 + 149.827158278 + 149.853461028 + 149.879768396 + 149.906080382 + 149.932396987 + 149.958718212 + 149.985044058 + 150.011374525 + 150.037709614 + 150.064049326 + 150.090393662 + 150.116742623 + 150.14309621 + 150.169454422 + 150.195817262 + 150.22218473 + 150.248556826 + 150.274933552 + 150.301314908 + 150.327700896 + 150.354091516 + 150.380486768 + 150.406886654 + 150.433291174 + 150.45970033 + 150.486114122 + 150.51253255 + 150.538955617 + 150.565383321 + 150.591815665 + 150.61825265 + 150.644694275 + 150.671140542 + 150.697591451 + 150.724047004 + 150.750507201 + 150.776972043 + 150.803441531 + 150.829915666 + 150.856394448 + 150.882877879 + 150.909365958 + 150.935858687 + 150.962356068 + 150.988858099 + 151.015364783 + 151.041876121 + 151.068392112 + 151.094912758 + 151.12143806 + 151.147968018 + 151.174502633 + 151.201041907 + 151.227585839 + 151.254134431 + 151.280687684 + 151.307245598 + 151.333808174 + 151.360375413 + 151.386947316 + 151.413523884 + 151.440105117 + 151.466691016 + 151.493281583 + 151.519876817 + 151.54647672 + 151.573081293 + 151.599690536 + 151.62630445 + 151.652923036 + 151.679546295 + 151.706174228 + 151.732806835 + 151.759444117 + 151.786086076 + 151.812732711 + 151.839384024 + 151.866040016 + 151.892700687 + 151.919366038 + 151.946036071 + 151.972710785 + 151.999390182 + 152.026074263 + 152.052763027 + 152.079456477 + 152.106154613 + 152.132857436 + 152.159564946 + 152.186277145 + 152.212994033 + 152.239715611 + 152.26644188 + 152.293172841 + 152.319908494 + 152.346648841 + 152.373393881 + 152.400143617 + 152.426898049 + 152.453657177 + 152.480421003 + 152.507189527 + 152.533962751 + 152.560740674 + 152.587523298 + 152.614310624 + 152.641102652 + 152.667899384 + 152.694700819 + 152.72150696 + 152.748317806 + 152.775133359 + 152.801953619 + 152.828778588 + 152.855608265 + 152.882442653 + 152.909281751 + 152.93612556 + 152.962974082 + 152.989827318 + 153.016685267 + 153.043547931 + 153.070415311 + 153.097287407 + 153.124164221 + 153.151045752 + 153.177932003 + 153.204822974 + 153.231718665 + 153.258619077 + 153.285524212 + 153.31243407 + 153.339348652 + 153.366267959 + 153.393191992 + 153.420120751 + 153.447054237 + 153.473992451 + 153.500935394 + 153.527883067 + 153.554835471 + 153.581792606 + 153.608754473 + 153.635721074 + 153.662692408 + 153.689668477 + 153.716649282 + 153.743634823 + 153.770625101 + 153.797620117 + 153.824619872 + 153.851624367 + 153.878633603 + 153.90564758 + 153.932666299 + 153.959689761 + 153.986717968 + 154.013750919 + 154.040788615 + 154.067831058 + 154.094878248 + 154.121930186 + 154.148986873 + 154.17604831 + 154.203114497 + 154.230185436 + 154.257261127 + 154.284341571 + 154.311426769 + 154.338516722 + 154.36561143 + 154.392710895 + 154.419815117 + 154.446924097 + 154.474037836 + 154.501156335 + 154.528279594 + 154.555407615 + 154.582540398 + 154.609677944 + 154.636820254 + 154.663967329 + 154.691119169 + 154.718275776 + 154.74543715 + 154.772603292 + 154.799774203 + 154.826949884 + 154.854130336 + 154.881315559 + 154.908505554 + 154.935700322 + 154.962899865 + 154.990104182 + 155.017313275 + 155.044527144 + 155.071745791 + 155.098969216 + 155.12619742 + 155.153430403 + 155.180668168 + 155.207910714 + 155.235158042 + 155.262410153 + 155.289667049 + 155.316928729 + 155.344195195 + 155.371466448 + 155.398742488 + 155.426023317 + 155.453308934 + 155.480599341 + 155.507894539 + 155.535194529 + 155.562499311 + 155.589808887 + 155.617123256 + 155.644442421 + 155.671766381 + 155.699095138 + 155.726428692 + 155.753767045 + 155.781110197 + 155.808458149 + 155.835810902 + 155.863168457 + 155.890530814 + 155.917897974 + 155.945269939 + 155.972646709 + 156.000028285 + 156.027414667 + 156.054805858 + 156.082201856 + 156.109602664 + 156.137008282 + 156.164418711 + 156.191833952 + 156.219254006 + 156.246678873 + 156.274108554 + 156.301543051 + 156.328982363 + 156.356426493 + 156.38387544 + 156.411329206 + 156.438787792 + 156.466251198 + 156.493719424 + 156.521192473 + 156.548670345 + 156.57615304 + 156.60364056 + 156.631132905 + 156.658630076 + 156.686132075 + 156.713638901 + 156.741150556 + 156.768667041 + 156.796188356 + 156.823714503 + 156.851245481 + 156.878781293 + 156.906321939 + 156.933867419 + 156.961417734 + 156.988972886 + 157.016532876 + 157.044097703 + 157.071667369 + 157.099241876 + 157.126821222 + 157.154405411 + 157.181994441 + 157.209588315 + 157.237187033 + 157.264790596 + 157.292399004 + 157.320012259 + 157.347630361 + 157.375253312 + 157.402881112 + 157.430513762 + 157.458151263 + 157.485793615 + 157.51344082 + 157.541092878 + 157.568749791 + 157.596411559 + 157.624078182 + 157.651749663 + 157.679426001 + 157.707107198 + 157.734793254 + 157.76248417 + 157.790179947 + 157.817880586 + 157.845586088 + 157.873296454 + 157.901011684 + 157.92873178 + 157.956456741 + 157.98418657 + 158.011921267 + 158.039660832 + 158.067405267 + 158.095154573 + 158.122908749 + 158.150667798 + 158.17843172 + 158.206200516 + 158.233974187 + 158.261752733 + 158.289536156 + 158.317324456 + 158.345117634 + 158.372915691 + 158.400718628 + 158.428526446 + 158.456339145 + 158.484156727 + 158.511979192 + 158.539806541 + 158.567638776 + 158.595475896 + 158.623317903 + 158.651164797 + 158.67901658 + 158.706873253 + 158.734734815 + 158.762601269 + 158.790472614 + 158.818348852 + 158.846229984 + 158.87411601 + 158.902006932 + 158.929902749 + 158.957803464 + 158.985709077 + 159.013619588 + 159.041534999 + 159.069455311 + 159.097380523 + 159.125310638 + 159.153245657 + 159.181185579 + 159.209130405 + 159.237080138 + 159.265034777 + 159.292994323 + 159.320958778 + 159.348928141 + 159.376902415 + 159.404881599 + 159.432865696 + 159.460854704 + 159.488848626 + 159.516847463 + 159.544851214 + 159.572859881 + 159.600873466 + 159.628891968 + 159.656915388 + 159.684943728 + 159.712976989 + 159.74101517 + 159.769058274 + 159.7971063 + 159.82515925 + 159.853217125 + 159.881279925 + 159.909347652 + 159.937420306 + 159.965497888 + 159.993580399 + 160.021667839 + 160.049760211 + 160.077857514 + 160.105959749 + 160.134066918 + 160.16217902 + 160.190296058 + 160.218418032 + 160.246544942 + 160.27467679 + 160.302813577 + 160.330955303 + 160.359101969 + 160.387253576 + 160.415410125 + 160.443571617 + 160.471738052 + 160.499909432 + 160.528085758 + 160.55626703 + 160.584453249 + 160.612644416 + 160.640840532 + 160.669041597 + 160.697247613 + 160.725458581 + 160.753674501 + 160.781895375 + 160.810121202 + 160.838351985 + 160.866587723 + 160.894828418 + 160.92307407 + 160.951324681 + 160.979580252 + 161.007840782 + 161.036106274 + 161.064376727 + 161.092652144 + 161.120932524 + 161.149217868 + 161.177508178 + 161.205803455 + 161.234103698 + 161.26240891 + 161.29071909 + 161.31903424 + 161.347354361 + 161.375679454 + 161.404009518 + 161.432344556 + 161.460684569 + 161.489029556 + 161.517379519 + 161.545734459 + 161.574094376 + 161.602459272 + 161.630829148 + 161.659204003 + 161.68758384 + 161.715968659 + 161.744358461 + 161.772753246 + 161.801153016 + 161.829557772 + 161.857967514 + 161.886382243 + 161.914801961 + 161.943226667 + 161.971656363 + 162.00009105 + 162.028530729 + 162.0569754 + 162.085425065 + 162.113879724 + 162.142339378 + 162.170804028 + 162.199273675 + 162.227748319 + 162.256227963 + 162.284712605 + 162.313202249 + 162.341696893 + 162.37019654 + 162.39870119 + 162.427210844 + 162.455725502 + 162.484245166 + 162.512769837 + 162.541299515 + 162.569834202 + 162.598373897 + 162.626918603 + 162.65546832 + 162.684023048 + 162.71258279 + 162.741147544 + 162.769717314 + 162.798292098 + 162.826871899 + 162.855456717 + 162.884046553 + 162.912641408 + 162.941241283 + 162.969846178 + 162.998456095 + 163.027071034 + 163.055690997 + 163.084315983 + 163.112945995 + 163.141581033 + 163.170221097 + 163.198866189 + 163.22751631 + 163.25617146 + 163.28483164 + 163.313496852 + 163.342167096 + 163.370842373 + 163.399522683 + 163.428208029 + 163.45689841 + 163.485593828 + 163.514294283 + 163.542999776 + 163.571710308 + 163.600425881 + 163.629146494 + 163.65787215 + 163.686602848 + 163.715338589 + 163.744079376 + 163.772825207 + 163.801576085 + 163.83033201 + 163.859092983 + 163.887859005 + 163.916630076 + 163.945406199 + 163.974187372 + 164.002973599 + 164.031764879 + 164.060561213 + 164.089362602 + 164.118169047 + 164.146980549 + 164.175797109 + 164.204618727 + 164.233445405 + 164.262277144 + 164.291113944 + 164.319955806 + 164.348802731 + 164.37765472 + 164.406511774 + 164.435373894 + 164.464241081 + 164.493113335 + 164.521990657 + 164.550873049 + 164.579760511 + 164.608653045 + 164.63755065 + 164.666453328 + 164.69536108 + 164.724273907 + 164.753191809 + 164.782114788 + 164.811042844 + 164.839975978 + 164.868914191 + 164.897857485 + 164.926805859 + 164.955759315 + 164.984717854 + 165.013681477 + 165.042650184 + 165.071623976 + 165.100602855 + 165.129586821 + 165.158575875 + 165.187570018 + 165.21656925 + 165.245573574 + 165.274582989 + 165.303597496 + 165.332617097 + 165.361641793 + 165.390671583 + 165.41970647 + 165.448746454 + 165.477791535 + 165.506841716 + 165.535896996 + 165.564957376 + 165.594022859 + 165.623093443 + 165.652169131 + 165.681249923 + 165.71033582 + 165.739426823 + 165.768522933 + 165.79762415 + 165.826730476 + 165.855841912 + 165.884958458 + 165.914080116 + 165.943206886 + 165.972338768 + 166.001475765 + 166.030617877 + 166.059765105 + 166.088917449 + 166.118074911 + 166.147237492 + 166.176405192 + 166.205578012 + 166.234755954 + 166.263939017 + 166.293127204 + 166.322320514 + 166.35151895 + 166.380722511 + 166.409931198 + 166.439145014 + 166.468363957 + 166.49758803 + 166.526817233 + 166.556051567 + 166.585291034 + 166.614535633 + 166.643785366 + 166.673040234 + 166.702300237 + 166.731565377 + 166.760835654 + 166.79011107 + 166.819391624 + 166.848677319 + 166.877968155 + 166.907264133 + 166.936565254 + 166.965871519 + 166.995182928 + 167.024499482 + 167.053821183 + 167.083148032 + 167.112480029 + 167.141817175 + 167.171159471 + 167.200506917 + 167.229859516 + 167.259217268 + 167.288580173 + 167.317948233 + 167.347321448 + 167.37669982 + 167.406083349 + 167.435472036 + 167.464865883 + 167.494264889 + 167.523669056 + 167.553078385 + 167.582492877 + 167.611912533 + 167.641337353 + 167.670767338 + 167.70020249 + 167.729642809 + 167.759088296 + 167.788538953 + 167.817994779 + 167.847455776 + 167.876921945 + 167.906393287 + 167.935869803 + 167.965351492 + 167.994838358 + 168.0243304 + 168.053827618 + 168.083330016 + 168.112837592 + 168.142350348 + 168.171868285 + 168.201391404 + 168.230919706 + 168.260453191 + 168.28999186 + 168.319535716 + 168.349084757 + 168.378638986 + 168.408198403 + 168.437763009 + 168.467332805 + 168.496907792 + 168.526487971 + 168.556073342 + 168.585663907 + 168.615259667 + 168.644860622 + 168.674466774 + 168.704078122 + 168.733694669 + 168.763316415 + 168.792943362 + 168.822575509 + 168.852212858 + 168.881855409 + 168.911503165 + 168.941156124 + 168.97081429 + 169.000477662 + 169.030146241 + 169.059820028 + 169.089499025 + 169.119183232 + 169.148872649 + 169.178567279 + 169.208267121 + 169.237972177 + 169.267682448 + 169.297397935 + 169.327118637 + 169.356844558 + 169.386575696 + 169.416312054 + 169.446053632 + 169.475800431 + 169.505552452 + 169.535309695 + 169.565072163 + 169.594839855 + 169.624612773 + 169.654390918 + 169.68417429 + 169.71396289 + 169.74375672 + 169.77355578 + 169.803360071 + 169.833169595 + 169.862984351 + 169.892804341 + 169.922629566 + 169.952460026 + 169.982295724 + 170.012136659 + 170.041982832 + 170.071834245 + 170.101690898 + 170.131552793 + 170.161419929 + 170.191292309 + 170.221169933 + 170.251052801 + 170.280940916 + 170.310834277 + 170.340732886 + 170.370636744 + 170.400545851 + 170.430460209 + 170.460379818 + 170.490304679 + 170.520234794 + 170.550170163 + 170.580110787 + 170.610056667 + 170.640007803 + 170.669964198 + 170.699925851 + 170.729892765 + 170.759864938 + 170.789842374 + 170.819825071 + 170.849813032 + 170.879806258 + 170.909804748 + 170.939808505 + 170.969817529 + 170.999831821 + 171.029851382 + 171.059876213 + 171.089906314 + 171.119941687 + 171.149982333 + 171.180028253 + 171.210079447 + 171.240135916 + 171.270197662 + 171.300264684 + 171.330336986 + 171.360414566 + 171.390497426 + 171.420585567 + 171.45067899 + 171.480777696 + 171.510881686 + 171.54099096 + 171.57110552 + 171.601225367 + 171.631350501 + 171.661480923 + 171.691616635 + 171.721757637 + 171.75190393 + 171.782055515 + 171.812212394 + 171.842374566 + 171.872542033 + 171.902714796 + 171.932892856 + 171.963076213 + 171.993264869 + 172.023458825 + 172.053658081 + 172.083862638 + 172.114072498 + 172.144287661 + 172.174508128 + 172.204733901 + 172.234964979 + 172.265201365 + 172.295443058 + 172.32569006 + 172.355942372 + 172.386199995 + 172.416462929 + 172.446731176 + 172.477004737 + 172.507283611 + 172.537567802 + 172.567857308 + 172.598152132 + 172.628452274 + 172.658757735 + 172.689068517 + 172.719384619 + 172.749706043 + 172.78003279 + 172.81036486 + 172.840702256 + 172.871044977 + 172.901393025 + 172.9317464 + 172.962105104 + 172.992469137 + 173.0228385 + 173.053213195 + 173.083593222 + 173.113978582 + 173.144369276 + 173.174765305 + 173.20516667 + 173.235573372 + 173.265985411 + 173.29640279 + 173.326825508 + 173.357253567 + 173.387686967 + 173.41812571 + 173.448569797 + 173.479019227 + 173.509474003 + 173.539934126 + 173.570399595 + 173.600870413 + 173.63134658 + 173.661828096 + 173.692314964 + 173.722807184 + 173.753304756 + 173.783807682 + 173.814315963 + 173.8448296 + 173.875348593 + 173.905872944 + 173.936402653 + 173.966937721 + 173.99747815 + 174.028023941 + 174.058575093 + 174.089131609 + 174.119693488 + 174.150260733 + 174.180833344 + 174.211411322 + 174.241994668 + 174.272583382 + 174.303177466 + 174.333776921 + 174.364381748 + 174.394991947 + 174.42560752 + 174.456228467 + 174.48685479 + 174.517486489 + 174.548123566 + 174.57876602 + 174.609413854 + 174.640067068 + 174.670725663 + 174.70138964 + 174.732059001 + 174.762733745 + 174.793413874 + 174.824099388 + 174.85479029 + 174.885486579 + 174.916188257 + 174.946895325 + 174.977607783 + 175.008325632 + 175.039048874 + 175.06977751 + 175.100511539 + 175.131250964 + 175.161995786 + 175.192746004 + 175.223501621 + 175.254262636 + 175.285029052 + 175.315800868 + 175.346578087 + 175.377360708 + 175.408148734 + 175.438942164 + 175.469740999 + 175.500545242 + 175.531354891 + 175.56216995 + 175.592990418 + 175.623816296 + 175.654647586 + 175.685484289 + 175.716326404 + 175.747173934 + 175.778026879 + 175.80888524 + 175.839749018 + 175.870618215 + 175.90149283 + 175.932372865 + 175.963258321 + 175.994149199 + 176.0250455 + 176.055947225 + 176.086854374 + 176.117766949 + 176.148684951 + 176.17960838 + 176.210537238 + 176.241471525 + 176.272411243 + 176.303356392 + 176.334306974 + 176.365262988 + 176.396224437 + 176.427191322 + 176.458163642 + 176.489141399 + 176.520124595 + 176.55111323 + 176.582107304 + 176.61310682 + 176.644111777 + 176.675122177 + 176.706138021 + 176.73715931 + 176.768186044 + 176.799218225 + 176.830255854 + 176.861298932 + 176.892347458 + 176.923401436 + 176.954460865 + 176.985525746 + 177.01659608 + 177.047671869 + 177.078753113 + 177.109839814 + 177.140931972 + 177.172029587 + 177.203132662 + 177.234241197 + 177.265355193 + 177.296474651 + 177.327599572 + 177.358729957 + 177.389865806 + 177.421007122 + 177.452153904 + 177.483306154 + 177.514463873 + 177.545627061 + 177.57679572 + 177.607969851 + 177.639149454 + 177.67033453 + 177.701525081 + 177.732721108 + 177.763922611 + 177.795129591 + 177.82634205 + 177.857559987 + 177.888783405 + 177.920012305 + 177.951246686 + 177.98248655 + 178.013731899 + 178.044982733 + 178.076239052 + 178.107500859 + 178.138768153 + 178.170040937 + 178.20131921 + 178.232602974 + 178.26389223 + 178.295186979 + 178.326487221 + 178.357792958 + 178.389104191 + 178.42042092 + 178.451743147 + 178.483070872 + 178.514404097 + 178.545742823 + 178.57708705 + 178.608436779 + 178.639792011 + 178.671152748 + 178.702518991 + 178.733890739 + 178.765267995 + 178.796650759 + 178.828039032 + 178.859432815 + 178.890832109 + 178.922236916 + 178.953647235 + 178.985063068 + 179.016484417 + 179.047911281 + 179.079343662 + 179.110781562 + 179.14222498 + 179.173673917 + 179.205128376 + 179.236588356 + 179.268053859 + 179.299524886 + 179.331001437 + 179.362483514 + 179.393971118 + 179.425464249 + 179.456962909 + 179.488467098 + 179.519976818 + 179.551492069 + 179.583012853 + 179.61453917 + 179.646071021 + 179.677608408 + 179.709151331 + 179.740699791 + 179.77225379 + 179.803813327 + 179.835378405 + 179.866949025 + 179.898525186 + 179.93010689 + 179.961694139 + 179.993286932 + 180.024885272 + 180.056489159 + 180.088098593 + 180.119713577 + 180.15133411 + 180.182960195 + 180.214591831 + 180.24622902 + 180.277871763 + 180.309520061 + 180.341173914 + 180.372833324 + 180.404498293 + 180.436168819 + 180.467844906 + 180.499526553 + 180.531213761 + 180.562906533 + 180.594604868 + 180.626308767 + 180.658018232 + 180.689733264 + 180.721453863 + 180.75318003 + 180.784911767 + 180.816649075 + 180.848391953 + 180.880140404 + 180.911894429 + 180.943654028 + 180.975419202 + 181.007189953 + 181.03896628 + 181.070748186 + 181.102535672 + 181.134328737 + 181.166127384 + 181.197931612 + 181.229741424 + 181.261556821 + 181.293377802 + 181.325204369 + 181.357036524 + 181.388874266 + 181.420717598 + 181.452566519 + 181.484421032 + 181.516281136 + 181.548146833 + 181.580018125 + 181.611895011 + 181.643777493 + 181.675665573 + 181.70755925 + 181.739458525 + 181.771363401 + 181.803273878 + 181.835189956 + 181.867111637 + 181.899038922 + 181.930971812 + 181.962910307 + 181.994854409 + 182.026804119 + 182.058759437 + 182.090720365 + 182.122686904 + 182.154659055 + 182.186636818 + 182.218620195 + 182.250609186 + 182.282603793 + 182.314604016 + 182.346609857 + 182.378621317 + 182.410638396 + 182.442661096 + 182.474689417 + 182.506723361 + 182.538762928 + 182.570808119 + 182.602858936 + 182.63491538 + 182.666977451 + 182.69904515 + 182.731118479 + 182.763197438 + 182.795282029 + 182.827372251 + 182.859468108 + 182.891569598 + 182.923676724 + 182.955789486 + 182.987907886 + 183.020031924 + 183.052161601 + 183.084296919 + 183.116437877 + 183.148584478 + 183.180736723 + 183.212894611 + 183.245058145 + 183.277227325 + 183.309402152 + 183.341582627 + 183.373768752 + 183.405960527 + 183.438157953 + 183.470361031 + 183.502569762 + 183.534784148 + 183.567004188 + 183.599229885 + 183.631461239 + 183.663698251 + 183.695940922 + 183.728189254 + 183.760443246 + 183.792702901 + 183.824968218 + 183.8572392 + 183.889515847 + 183.92179816 + 183.95408614 + 183.986379788 + 184.018679105 + 184.050984092 + 184.083294751 + 184.115611081 + 184.147933084 + 184.180260762 + 184.212594114 + 184.244933143 + 184.277277848 + 184.309628232 + 184.341984294 + 184.374346037 + 184.406713461 + 184.439086566 + 184.471465355 + 184.503849828 + 184.536239986 + 184.568635829 + 184.60103736 + 184.633444579 + 184.665857487 + 184.698276084 + 184.730700373 + 184.763130354 + 184.795566028 + 184.828007395 + 184.860454458 + 184.892907217 + 184.925365673 + 184.957829827 + 184.990299679 + 185.022775232 + 185.055256486 + 185.087743442 + 185.120236101 + 185.152734463 + 185.185238531 + 185.217748305 + 185.250263786 + 185.282784975 + 185.315311873 + 185.34784448 + 185.380382799 + 185.41292683 + 185.445476574 + 185.478032032 + 185.510593205 + 185.543160094 + 185.5757327 + 185.608311024 + 185.640895068 + 185.673484831 + 185.706080315 + 185.738681521 + 185.771288451 + 185.803901104 + 185.836519483 + 185.869143587 + 185.901773419 + 185.934408979 + 185.967050267 + 185.999697286 + 186.032350036 + 186.065008519 + 186.097672734 + 186.130342683 + 186.163018368 + 186.195699788 + 186.228386946 + 186.261079842 + 186.293778477 + 186.326482852 + 186.359192969 + 186.391908827 + 186.424630429 + 186.457357775 + 186.490090866 + 186.522829704 + 186.555574289 + 186.588324621 + 186.621080704 + 186.653842536 + 186.686610119 + 186.719383455 + 186.752162545 + 186.784947388 + 186.817737987 + 186.850534342 + 186.883336454 + 186.916144325 + 186.948957955 + 186.981777345 + 187.014602497 + 187.047433411 + 187.080270089 + 187.113112531 + 187.145960738 + 187.178814712 + 187.211674453 + 187.244539963 + 187.277411242 + 187.310288291 + 187.343171112 + 187.376059706 + 187.408954073 + 187.441854214 + 187.474760131 + 187.507671825 + 187.540589296 + 187.573512546 + 187.606441576 + 187.639376386 + 187.672316977 + 187.705263351 + 187.738215509 + 187.771173452 + 187.80413718 + 187.837106695 + 187.870081998 + 187.903063089 + 187.936049971 + 187.969042643 + 188.002041106 + 188.035045363 + 188.068055413 + 188.101071258 + 188.134092899 + 188.167120337 + 188.200153573 + 188.233192608 + 188.266237442 + 188.299288078 + 188.332344515 + 188.365406756 + 188.3984748 + 188.43154865 + 188.464628305 + 188.497713768 + 188.530805039 + 188.563902118 + 188.597005008 + 188.630113709 + 188.663228222 + 188.696348548 + 188.729474689 + 188.762606645 + 188.795744417 + 188.828888006 + 188.862037413 + 188.89519264 + 188.928353687 + 188.961520555 + 188.994693246 + 189.02787176 + 189.061056099 + 189.094246263 + 189.127442253 + 189.160644071 + 189.193851718 + 189.227065194 + 189.2602845 + 189.293509638 + 189.326740609 + 189.359977413 + 189.393220052 + 189.426468526 + 189.459722838 + 189.492982987 + 189.526248974 + 189.559520802 + 189.59279847 + 189.62608198 + 189.659371333 + 189.69266653 + 189.725967571 + 189.759274459 + 189.792587193 + 189.825905776 + 189.859230207 + 189.892560489 + 189.925896621 + 189.959238606 + 189.992586443 + 190.025940135 + 190.059299682 + 190.092665085 + 190.126036346 + 190.159413464 + 190.192796442 + 190.226185281 + 190.25957998 + 190.292980542 + 190.326386967 + 190.359799257 + 190.393217412 + 190.426641434 + 190.460071323 + 190.49350708 + 190.526948708 + 190.560396205 + 190.593849575 + 190.627308817 + 190.660773933 + 190.694244923 + 190.727721789 + 190.761204532 + 190.794693153 + 190.828187653 + 190.861688032 + 190.895194293 + 190.928706435 + 190.962224461 + 190.99574837 + 191.029278164 + 191.062813845 + 191.096355413 + 191.129902868 + 191.163456213 + 191.197015448 + 191.230580575 + 191.264151593 + 191.297728505 + 191.331311311 + 191.364900013 + 191.398494611 + 191.432095107 + 191.465701501 + 191.499313794 + 191.532931988 + 191.566556084 + 191.600186082 + 191.633821984 + 191.667463791 + 191.701111503 + 191.734765122 + 191.768424649 + 191.802090085 + 191.835761431 + 191.869438688 + 191.903121856 + 191.936810938 + 191.970505933 + 192.004206844 + 192.037913671 + 192.071626415 + 192.105345077 + 192.139069658 + 192.17280016 + 192.206536583 + 192.240278928 + 192.274027197 + 192.30778139 + 192.341541509 + 192.375307554 + 192.409079526 + 192.442857427 + 192.476641258 + 192.51043102 + 192.544226713 + 192.578028339 + 192.611835899 + 192.645649393 + 192.679468824 + 192.713294191 + 192.747125496 + 192.780962741 + 192.814805925 + 192.84865505 + 192.882510118 + 192.916371129 + 192.950238084 + 192.984110984 + 193.017989831 + 193.051874624 + 193.085765367 + 193.119662058 + 193.153564701 + 193.187473294 + 193.221387841 + 193.255308341 + 193.289234795 + 193.323167205 + 193.357105572 + 193.391049897 + 193.425000181 + 193.458956424 + 193.492918629 + 193.526886795 + 193.560860925 + 193.594841018 + 193.628827077 + 193.662819102 + 193.696817094 + 193.730821054 + 193.764830984 + 193.798846884 + 193.832868755 + 193.866896599 + 193.900930417 + 193.934970209 + 193.969015976 + 194.00306772 + 194.037125442 + 194.071189143 + 194.105258823 + 194.139334484 + 194.173416128 + 194.207503754 + 194.241597364 + 194.275696959 + 194.30980254 + 194.343914109 + 194.378031665 + 194.412155211 + 194.446284747 + 194.480420275 + 194.514561795 + 194.548709308 + 194.582862816 + 194.61702232 + 194.65118782 + 194.685359317 + 194.719536814 + 194.75372031 + 194.787909807 + 194.822105306 + 194.856306808 + 194.890514314 + 194.924727825 + 194.958947342 + 194.993172866 + 195.027404398 + 195.06164194 + 195.095885492 + 195.130135055 + 195.164390631 + 195.19865222 + 195.232919824 + 195.267193443 + 195.301473079 + 195.335758733 + 195.370050405 + 195.404348098 + 195.438651811 + 195.472961546 + 195.507277304 + 195.541599086 + 195.575926893 + 195.610260727 + 195.644600588 + 195.678946476 + 195.713298395 + 195.747656343 + 195.782020323 + 195.816390336 + 195.850766382 + 195.885148463 + 195.919536579 + 195.953930733 + 195.988330924 + 196.022737154 + 196.057149423 + 196.091567734 + 196.125992087 + 196.160422483 + 196.194858923 + 196.229301409 + 196.26374994 + 196.298204519 + 196.332665147 + 196.367131824 + 196.401604551 + 196.43608333 + 196.470568162 + 196.505059047 + 196.539555988 + 196.574058984 + 196.608568037 + 196.643083148 + 196.677604318 + 196.712131548 + 196.746664839 + 196.781204193 + 196.815749609 + 196.850301091 + 196.884858637 + 196.91942225 + 196.953991931 + 196.98856768 + 197.023149499 + 197.057737389 + 197.092331351 + 197.126931385 + 197.161537494 + 197.196149677 + 197.230767936 + 197.265392273 + 197.300022688 + 197.334659182 + 197.369301757 + 197.403950412 + 197.438605151 + 197.473265973 + 197.507932879 + 197.542605872 + 197.577284951 + 197.611970117 + 197.646661373 + 197.681358719 + 197.716062156 + 197.750771684 + 197.785487306 + 197.820209023 + 197.854936834 + 197.889670742 + 197.924410748 + 197.959156852 + 197.993909055 + 198.028667359 + 198.063431765 + 198.098202274 + 198.132978886 + 198.167761604 + 198.202550427 + 198.237345358 + 198.272146397 + 198.306953545 + 198.341766803 + 198.376586173 + 198.411411655 + 198.446243251 + 198.481080961 + 198.515924787 + 198.55077473 + 198.585630791 + 198.62049297 + 198.655361269 + 198.69023569 + 198.725116232 + 198.760002898 + 198.794895688 + 198.829794604 + 198.864699645 + 198.899610815 + 198.934528113 + 198.96945154 + 199.004381098 + 199.039316788 + 199.074258611 + 199.109206568 + 199.14416066 + 199.179120888 + 199.214087253 + 199.249059757 + 199.284038399 + 199.319023183 + 199.354014107 + 199.389011174 + 199.424014385 + 199.459023741 + 199.494039242 + 199.529060891 + 199.564088687 + 199.599122632 + 199.634162728 + 199.669208974 + 199.704261373 + 199.739319926 + 199.774384632 + 199.809455494 + 199.844532513 + 199.87961569 + 199.914705025 + 199.94980052 + 199.984902176 + 200.020009994 + 200.055123976 + 200.090244121 + 200.125370432 + 200.160502908 + 200.195641553 + 200.230786366 + 200.265937348 + 200.301094501 + 200.336257826 + 200.371427324 + 200.406602995 + 200.441784842 + 200.476972865 + 200.512167064 + 200.547367443 + 200.582574 + 200.617786738 + 200.653005657 + 200.688230759 + 200.723462045 + 200.758699515 + 200.793943172 + 200.829193015 + 200.864449046 + 200.899711266 + 200.934979677 + 200.970254279 + 201.005535073 + 201.040822061 + 201.076115243 + 201.111414621 + 201.146720195 + 201.182031968 + 201.217349939 + 201.25267411 + 201.288004482 + 201.323341057 + 201.358683834 + 201.394032817 + 201.429388004 + 201.464749398 + 201.500117 + 201.53549081 + 201.57087083 + 201.606257061 + 201.641649504 + 201.67704816 + 201.71245303 + 201.747864115 + 201.783281417 + 201.818704936 + 201.854134673 + 201.889570631 + 201.925012809 + 201.960461208 + 201.995915831 + 202.031376677 + 202.066843749 + 202.102317047 + 202.137796572 + 202.173282325 + 202.208774308 + 202.244272521 + 202.279776966 + 202.315287644 + 202.350804555 + 202.386327702 + 202.421857084 + 202.457392703 + 202.492934561 + 202.528482658 + 202.564036995 + 202.599597574 + 202.635164395 + 202.670737461 + 202.70631677 + 202.741902326 + 202.777494129 + 202.813092179 + 202.848696479 + 202.884307029 + 202.919923831 + 202.955546884 + 202.991176192 + 203.026811754 + 203.062453572 + 203.098101646 + 203.133755979 + 203.16941657 + 203.205083422 + 203.240756535 + 203.27643591 + 203.312121549 + 203.347813452 + 203.383511621 + 203.419216056 + 203.45492676 + 203.490643732 + 203.526366974 + 203.562096488 + 203.597832273 + 203.633574332 + 203.669322666 + 203.705077275 + 203.74083816 + 203.776605324 + 203.812378766 + 203.848158488 + 203.883944491 + 203.919736776 + 203.955535345 + 203.991340198 + 204.027151336 + 204.062968761 + 204.098792473 + 204.134622475 + 204.170458766 + 204.206301348 + 204.242150222 + 204.27800539 + 204.313866851 + 204.349734608 + 204.385608662 + 204.421489013 + 204.457375663 + 204.493268613 + 204.529167863 + 204.565073416 + 204.600985272 + 204.636903432 + 204.672827897 + 204.708758669 + 204.744695748 + 204.780639136 + 204.816588834 + 204.852544843 + 204.888507164 + 204.924475797 + 204.960450745 + 204.996432009 + 205.032419588 + 205.068413486 + 205.104413701 + 205.140420237 + 205.176433094 + 205.212452272 + 205.248477773 + 205.284509599 + 205.32054775 + 205.356592228 + 205.392643033 + 205.428700166 + 205.464763629 + 205.500833424 + 205.53690955 + 205.572992009 + 205.609080802 + 205.645175931 + 205.681277396 + 205.717385199 + 205.75349934 + 205.789619821 + 205.825746643 + 205.861879807 + 205.898019314 + 205.934165165 + 205.970317361 + 206.006475904 + 206.042640794 + 206.078812033 + 206.114989622 + 206.151173562 + 206.187363854 + 206.223560499 + 206.259763498 + 206.295972852 + 206.332188563 + 206.368410631 + 206.404639059 + 206.440873846 + 206.477114993 + 206.513362503 + 206.549616376 + 206.585876614 + 206.622143217 + 206.658416186 + 206.694695523 + 206.730981228 + 206.767273304 + 206.80357175 + 206.839876569 + 206.876187761 + 206.912505327 + 206.948829269 + 206.985159587 + 207.021496283 + 207.057839358 + 207.094188812 + 207.130544648 + 207.166906866 + 207.203275467 + 207.239650453 + 207.276031824 + 207.312419581 + 207.348813727 + 207.385214262 + 207.421621186 + 207.458034502 + 207.49445421 + 207.530880311 + 207.567312807 + 207.603751698 + 207.640196986 + 207.676648673 + 207.713106758 + 207.749571243 + 207.786042129 + 207.822519418 + 207.859003111 + 207.895493207 + 207.93198971 + 207.96849262 + 208.005001937 + 208.041517664 + 208.078039801 + 208.114568349 + 208.15110331 + 208.187644685 + 208.224192474 + 208.260746679 + 208.297307301 + 208.333874341 + 208.3704478 + 208.40702768 + 208.443613982 + 208.480206705 + 208.516805853 + 208.553411426 + 208.590023424 + 208.62664185 + 208.663266704 + 208.699897988 + 208.736535702 + 208.773179847 + 208.809830426 + 208.846487438 + 208.883150885 + 208.919820769 + 208.95649709 + 208.993179849 + 209.029869048 + 209.066564688 + 209.103266769 + 209.139975293 + 209.176690262 + 209.213411676 + 209.250139536 + 209.286873843 + 209.323614599 + 209.360361805 + 209.397115462 + 209.433875571 + 209.470642133 + 209.507415149 + 209.54419462 + 209.580980549 + 209.617772934 + 209.654571779 + 209.691377084 + 209.728188849 + 209.765007077 + 209.801831768 + 209.838662924 + 209.875500545 + 209.912344634 + 209.949195189 + 209.986052214 + 210.02291571 + 210.059785676 + 210.096662115 + 210.133545027 + 210.170434415 + 210.207330278 + 210.244232618 + 210.281141436 + 210.318056733 + 210.354978511 + 210.39190677 + 210.428841512 + 210.465782738 + 210.502730448 + 210.539684645 + 210.576645329 + 210.613612501 + 210.650586163 + 210.687566316 + 210.72455296 + 210.761546097 + 210.798545728 + 210.835551854 + 210.872564477 + 210.909583597 + 210.946609216 + 210.983641335 + 211.020679954 + 211.057725076 + 211.0947767 + 211.131834829 + 211.168899464 + 211.205970605 + 211.243048254 + 211.280132411 + 211.317223079 + 211.354320258 + 211.391423949 + 211.428534154 + 211.465650873 + 211.502774108 + 211.53990386 + 211.57704013 + 211.614182919 + 211.651332229 + 211.68848806 + 211.725650413 + 211.762819291 + 211.799994693 + 211.837176621 + 211.874365076 + 211.91156006 + 211.948761574 + 211.985969617 + 212.023184193 + 212.060405302 + 212.097632945 + 212.134867122 + 212.172107837 + 212.209355089 + 212.246608879 + 212.283869209 + 212.32113608 + 212.358409494 + 212.39568945 + 212.432975951 + 212.470268998 + 212.507568591 + 212.544874732 + 212.582187422 + 212.619506663 + 212.656832454 + 212.694164798 + 212.731503696 + 212.768849148 + 212.806201156 + 212.843559722 + 212.880924845 + 212.918296528 + 212.955674772 + 212.993059577 + 213.030450944 + 213.067848876 + 213.105253373 + 213.142664436 + 213.180082067 + 213.217506266 + 213.254937035 + 213.292374375 + 213.329818287 + 213.367268772 + 213.404725831 + 213.442189466 + 213.479659677 + 213.517136467 + 213.554619835 + 213.592109783 + 213.629606313 + 213.667109425 + 213.70461912 + 213.742135401 + 213.779658267 + 213.81718772 + 213.854723762 + 213.892266393 + 213.929815614 + 213.967371427 + 214.004933833 + 214.042502833 + 214.080078428 + 214.117660619 + 214.155249408 + 214.192844795 + 214.230446783 + 214.268055371 + 214.305670561 + 214.343292354 + 214.380920752 + 214.418555756 + 214.456197366 + 214.493845584 + 214.531500411 + 214.569161848 + 214.606829897 + 214.644504558 + 214.682185833 + 214.719873723 + 214.757568229 + 214.795269352 + 214.832977093 + 214.870691454 + 214.908412435 + 214.946140038 + 214.983874265 + 215.021615115 + 215.059362591 + 215.097116693 + 215.134877423 + 215.172644782 + 215.21041877 + 215.24819939 + 215.285986642 + 215.323780527 + 215.361581048 + 215.399388204 + 215.437201996 + 215.475022427 + 215.512849498 + 215.550683208 + 215.588523561 + 215.626370556 + 215.664224195 + 215.702084479 + 215.739951409 + 215.777824987 + 215.815705214 + 215.85359209 + 215.891485617 + 215.929385797 + 215.967292629 + 216.005206116 + 216.043126259 + 216.081053059 + 216.118986516 + 216.156926633 + 216.194873409 + 216.232826848 + 216.270786949 + 216.308753714 + 216.346727143 + 216.384707239 + 216.422694002 + 216.460687434 + 216.498687535 + 216.536694307 + 216.574707752 + 216.612727869 + 216.65075466 + 216.688788128 + 216.726828271 + 216.764875093 + 216.802928594 + 216.840988775 + 216.879055637 + 216.917129182 + 216.95520941 + 216.993296324 + 217.031389923 + 217.06949021 + 217.107597185 + 217.14571085 + 217.183831205 + 217.221958253 + 217.260091993 + 217.298232428 + 217.336379558 + 217.374533385 + 217.41269391 + 217.450861134 + 217.489035057 + 217.527215683 + 217.56540301 + 217.603597042 + 217.641797778 + 217.68000522 + 217.71821937 + 217.756440228 + 217.794667795 + 217.832902074 + 217.871143064 + 217.909390767 + 217.947645185 + 217.985906318 + 218.024174167 + 218.062448735 + 218.100730021 + 218.139018028 + 218.177312756 + 218.215614207 + 218.253922381 + 218.292237281 + 218.330558906 + 218.368887258 + 218.40722234 + 218.44556415 + 218.483912692 + 218.522267965 + 218.560629972 + 218.598998713 + 218.637374189 + 218.675756403 + 218.714145354 + 218.752541044 + 218.790943475 + 218.829352647 + 218.867768561 + 218.90619122 + 218.944620623 + 218.983056773 + 219.02149967 + 219.059949315 + 219.098405711 + 219.136868857 + 219.175338755 + 219.213815407 + 219.252298813 + 219.290788975 + 219.329285893 + 219.36778957 + 219.406300006 + 219.444817202 + 219.48334116 + 219.521871881 + 219.560409365 + 219.598953615 + 219.637504631 + 219.676062415 + 219.714626967 + 219.75319829 + 219.791776383 + 219.830361249 + 219.868952888 + 219.907551302 + 219.946156492 + 219.984768458 + 220.023387203 + 220.062012728 + 220.100645033 + 220.13928412 + 220.17792999 + 220.216582644 + 220.255242083 + 220.293908309 + 220.332581323 + 220.371261125 + 220.409947718 + 220.448641102 + 220.487341279 + 220.52604825 + 220.564762015 + 220.603482576 + 220.642209935 + 220.680944092 + 220.719685049 + 220.758432807 + 220.797187367 + 220.83594873 + 220.874716897 + 220.913491871 + 220.952273651 + 220.991062239 + 221.029857636 + 221.068659844 + 221.107468864 + 221.146284696 + 221.185107342 + 221.223936804 + 221.262773082 + 221.301616177 + 221.340466091 + 221.379322826 + 221.418186381 + 221.457056759 + 221.495933961 + 221.534817987 + 221.57370884 + 221.612606519 + 221.651511027 + 221.690422365 + 221.729340533 + 221.768265533 + 221.807197367 + 221.846136035 + 221.885081538 + 221.924033878 + 221.962993057 + 222.001959074 + 222.040931932 + 222.079911631 + 222.118898173 + 222.15789156 + 222.196891791 + 222.235898869 + 222.274912794 + 222.313933568 + 222.352961192 + 222.391995668 + 222.431036995 + 222.470085177 + 222.509140213 + 222.548202105 + 222.587270855 + 222.626346462 + 222.66542893 + 222.704518258 + 222.743614449 + 222.782717502 + 222.82182742 + 222.860944204 +} From d65da69c7deefdd6d86d9fec2b5779e12d704315 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Fri, 15 Apr 2022 17:25:51 -0700 Subject: [PATCH 096/114] ci: don't sign on pull requests --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fee6e4f34..03343fd3a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -404,6 +404,7 @@ jobs: - name: Sign Application working-directory: ${{ runner.workspace }}/build shell: bash + if: github.event_name == 'push' env: BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} P12_PASSWORD: ${{ secrets.P12_PASSWORD }} From ad61954aa22b027deac080c2477a3da40bb5f87e Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun, 17 Apr 2022 23:35:45 -0700 Subject: [PATCH 097/114] rational: don't try to reduce when denom == 1 Fixes #1895 (and probably several other issues when using -O2 on ARM64 systems) --- app/common/rational.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/common/rational.cpp b/app/common/rational.cpp index 9aa20426c..34d627572 100644 --- a/app/common/rational.cpp +++ b/app/common/rational.cpp @@ -72,7 +72,7 @@ void rational::fix_signs() void rational::reduce() { - if (!isNull()) { + if (!isNull() && denom_ != 1) { // Euclidean often fails if numbers are negative, we abs it and re-neg it later if necessary bool neg = numer_ < 0; From 3661599213e47404ea0d5021e2bbfa16bcc80790 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 18 Apr 2022 00:05:35 -0700 Subject: [PATCH 098/114] timeline/viewer: set minimum on rationalslider --- app/widget/playbackcontrols/playbackcontrols.cpp | 1 + app/widget/timelinewidget/timelinewidget.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/app/widget/playbackcontrols/playbackcontrols.cpp b/app/widget/playbackcontrols/playbackcontrols.cpp index db318ab98..41f771a17 100644 --- a/app/widget/playbackcontrols/playbackcontrols.cpp +++ b/app/widget/playbackcontrols/playbackcontrols.cpp @@ -55,6 +55,7 @@ PlaybackControls::PlaybackControls(QWidget *parent) : cur_tc_lbl_ = new RationalSlider(); cur_tc_lbl_->SetDisplayType(RationalSlider::kTime); + cur_tc_lbl_->SetMinimum(0); connect(cur_tc_lbl_, &RationalSlider::ValueChanged, this, &PlaybackControls::TimeChanged); lower_left_layout->addWidget(cur_tc_lbl_); lower_left_layout->addStretch(); diff --git a/app/widget/timelinewidget/timelinewidget.cpp b/app/widget/timelinewidget/timelinewidget.cpp index 07c3fe52c..547f11cc9 100644 --- a/app/widget/timelinewidget/timelinewidget.cpp +++ b/app/widget/timelinewidget/timelinewidget.cpp @@ -76,6 +76,7 @@ TimelineWidget::TimelineWidget(QWidget *parent) : timecode_label_->SetAlignment(Qt::AlignCenter); timecode_label_->SetDisplayType(RationalSlider::kTime); timecode_label_->setVisible(false); + timecode_label_->SetMinimum(0); connect(timecode_label_, &RationalSlider::ValueChanged, this, &TimelineWidget::SetTimeAndSignal); ruler_and_time_layout->addWidget(timecode_label_); From 812885461e44a4851721510df44ccbd120eb2f7d Mon Sep 17 00:00:00 2001 From: Pablo Gil Date: Mon, 25 Apr 2022 21:15:20 +0200 Subject: [PATCH 099/114] Icon "text-small-caps" (#1904) * initial design * Dark SVG and all PNGs --- .../png/text-small-caps.128.disabled.png | Bin 0 -> 662 bytes .../olive-dark/png/text-small-caps.128.png | Bin 0 -> 517 bytes .../png/text-small-caps.16.disabled.png | Bin 0 -> 511 bytes .../olive-dark/png/text-small-caps.16.png | Bin 0 -> 355 bytes .../png/text-small-caps.32.disabled.png | Bin 0 -> 526 bytes .../olive-dark/png/text-small-caps.32.png | Bin 0 -> 370 bytes .../png/text-small-caps.64.disabled.png | Bin 0 -> 504 bytes .../olive-dark/png/text-small-caps.64.png | Bin 0 -> 385 bytes .../style/olive-dark/svg/text-small-caps.svg | 176 ++++++++++++++++++ .../png/text-small-caps.128.disabled.png | Bin 0 -> 665 bytes .../olive-light/png/text-small-caps.128.png | Bin 0 -> 519 bytes .../png/text-small-caps.16.disabled.png | Bin 0 -> 528 bytes .../olive-light/png/text-small-caps.16.png | Bin 0 -> 378 bytes .../png/text-small-caps.32.disabled.png | Bin 0 -> 531 bytes .../olive-light/png/text-small-caps.32.png | Bin 0 -> 372 bytes .../png/text-small-caps.64.disabled.png | Bin 0 -> 508 bytes .../olive-light/png/text-small-caps.64.png | Bin 0 -> 387 bytes .../style/olive-light/svg/text-small-caps.svg | 176 ++++++++++++++++++ 18 files changed, 352 insertions(+) create mode 100644 app/ui/style/olive-dark/png/text-small-caps.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/text-small-caps.128.png create mode 100644 app/ui/style/olive-dark/png/text-small-caps.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/text-small-caps.16.png create mode 100644 app/ui/style/olive-dark/png/text-small-caps.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/text-small-caps.32.png create mode 100644 app/ui/style/olive-dark/png/text-small-caps.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/text-small-caps.64.png create mode 100644 app/ui/style/olive-dark/svg/text-small-caps.svg create mode 100644 app/ui/style/olive-light/png/text-small-caps.128.disabled.png create mode 100644 app/ui/style/olive-light/png/text-small-caps.128.png create mode 100644 app/ui/style/olive-light/png/text-small-caps.16.disabled.png create mode 100644 app/ui/style/olive-light/png/text-small-caps.16.png create mode 100644 app/ui/style/olive-light/png/text-small-caps.32.disabled.png create mode 100644 app/ui/style/olive-light/png/text-small-caps.32.png create mode 100644 app/ui/style/olive-light/png/text-small-caps.64.disabled.png create mode 100644 app/ui/style/olive-light/png/text-small-caps.64.png create mode 100644 app/ui/style/olive-light/svg/text-small-caps.svg diff --git a/app/ui/style/olive-dark/png/text-small-caps.128.disabled.png b/app/ui/style/olive-dark/png/text-small-caps.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..2a9a47157cb86466682d952c038ec16071cfc545 GIT binary patch literal 662 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_Gc`jV%!|rTz4}W7#LYST^vIyZoR!_$aTnp!S$fa zp5S-!Ra(JIIayj>*d?ZGY1h_mGuU*R38n{*1E>r4Hyg zckh3(>*oa**PXv__?OebK{mjc0It5q7+zN!|M18DqF=%Z4OR=%(D1kI=b7f;(fx63 zZ_7*n2F6znv#5hXeqvydNM~<<%~>i?v8)Kl6De_xC~+(;$;dBa@J%c#$;?v-DlN{= zFWY|l%uJxXDo8#hu_V9nO2EgLyXM?P^3$OYzWRzD=AMbN@XZ7FW1Y=%Pvk%EJ)SMFG`>N&PEET$QYui zv?w{1A)}4zld zrRT?ICgEaktG3V_aL%u@>0t^QwK8pPNukqvcf$Jkt2)G@n4=9x9>EaloaenE9ja&@|JTCD| z0!j;nS^oal57yXGY7{K9RVw7eHg5gnsvp9WCRWT``67|Y_AzV3jJ++49)3+4TnWM+ z`^q`K2VV4&U68T0;(*t(G=+^jITx*PJgg?UYP~mSp4?G597Hm1O2A1eF$N=a+3ieP$+5UKJ#tl30>zm0Xkxq!^40 zjEr;*OmvM5LyU~93=OReOtlRRtPBi%ws}^fXvob^$xN%nt-<#7$D=?Ek{}y`^V3So z6N^$A%FE03GV`*FlM@S4_413-XTP(N0xB|wC@L*VPG!g_DJihh*H6yR&CSm%)+^7< q&dg0s$xH+(*9Y~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesC}ZRi(`mI@6ibxc@H@Vusj#oDBZx&c|!C8yQ~AF$YUm-XA|u1 zv@-ARQ#>%U@@LBgn@g{otS23+>G1cu=eUM kgVk5MqyGMVIKPtlER%_KNn_%9pyL=kUHx3vIVCg!0L{RJ6#xJL literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/text-small-caps.32.disabled.png b/app/ui/style/olive-dark/png/text-small-caps.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..59d7ebaf3ae3500448ec09b6d83054faa70974af GIT binary patch literal 526 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yZD#p#$v*|+~P^i|^#WBR=_}fX=d<_Z$tnAK< z*f%u)p3lR#U}{*zPsNnUUxl|m5Eapp{FJcZSs9PYdJC~7ovd>nDG6S;#gXekzd5%n^;tmnWqp`TAZCv@$T$HZZU08-nxGO3D+9QW?t2%k?tzvWt@w3sUv+i_&MmvylQSGKMHBElN&h$S5f( zu+rC0&d<%w&nwm|&&~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesC|K_i(^Pc>)WZmT!#z<-0pk4U&#Ibv2WFkJ10`#Uud28q}Vti z^Qc*wiNa?EmBv3dMu%A@Eiq(MSjlgBW=)Nj0UPI>?C&y4diR{4|J}XZnn_*$e#39^ z+G!rIRD16^6{UK87Fgo2eP4?8R?DO`)ewdizL!45D<(wxhh=-LIPgdR!<-#IzWjQ% zK0~fa#G_FpLvO=U0bU#JI{}sd=I!NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$fPM8&w-e{VhT11Oa4>EalYaqsOlL#_q`9*2uA zdnSLEuhxoXZ4csHa`<<#ZhwNJ;G`wbjFcYj>(Y~ceP8CTFayJhpA)}J|NJ~Z-;NPz zM#JV$o38FvI?e`^(Wqs;pPRVPdy79%0sn?EJFrr_am;%BzCpQxZ#3t&)pUffR$0fsv7}fr+k>VTh5Dm7$@P zfw{JUft7*5ZOw=P6b-rgDVb@NxHYUQdGH3PK@wy`aDG}zd16s2LwR|*US?i)adKio zs$PCk`s{Z$Qb0w<5Jja$$*Bw(B_#z``ufTFxw-jy#d_tL*_pYiDVd2N<@z9=en?_o adVYLna(-Uie2ob}?F^o-elF{r5}E*>R-DQJ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/text-small-caps.64.png b/app/ui/style/olive-dark/png/text-small-caps.64.png new file mode 100644 index 0000000000000000000000000000000000000000..9dbdc46e23b5b1852830be974974e8180db70561 GIT binary patch literal 385 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesC~Vsi(^Q|oVPa)avpMEa6PytqU&#XivGtb-2zH0DjVloRtkLj zq2pE-$-t1{mHd0dy4Ra|D$S2o%=tLywj}>fBjziNra-*4@Xyrb>ih|t>rU=B{L5+J zARAzegm+(Oto~PPzwxj4+Y59z;CTxQS6wt_i}0A^rlIKsVI WPoVB=mY^ok=?tE(elF{r5}E*t*of%> literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/svg/text-small-caps.svg b/app/ui/style/olive-dark/svg/text-small-caps.svg new file mode 100644 index 000000000..b9ec71364 --- /dev/null +++ b/app/ui/style/olive-dark/svg/text-small-caps.svg @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/png/text-small-caps.128.disabled.png b/app/ui/style/olive-light/png/text-small-caps.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..a8eba72159387c747fc2b24811b88c55d55d4fed GIT binary patch literal 665 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_Gc`jV%)5vyBA(zU|{6%ba4!+xb^ndM&3gP46X-R z3_Z3b{GX&N(W>Rz<>A3-uW~;$n z?EJFrr_am;%BzCpQxZ#3t&)pUffR$0fsv7}fr+k>VTh5Dm7$@PfvL8Eft7)Q&o<9W z6b-rgDVb@NxHZ_m{&*CqK@wy`aDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$Qb0w< z5Jja$$*Bw(B_#z``ufTFxw-jy#d_tL*_pYiDVd2N<@z9=en?_odVYLna(-Uie2ob} O?F^o-elF{r5}E*AFxz?n literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/text-small-caps.128.png b/app/ui/style/olive-light/png/text-small-caps.128.png new file mode 100644 index 0000000000000000000000000000000000000000..e4abf3abb289419dd226617a160a6d34304b2abc GIT binary patch literal 519 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSoCO|{#S9Fx?I6t9|MX)jP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IXpdt~FBFEB_jQk=7-^8Ml%shpl z(&Fs=vhAnO%mm6CLkuY`N={|SC@Cqh($`PU&&|!xE7mK|%+AbBP036I8K)28>4zld zrRT?ICgEaktG3V`_jl72(1Q;A0L>@K#(^e|be4@4~gT1m;l zSIqxk=a~cTf`WwH?~mJaZ{HJcUXyhH`}Hq8;Z;8T2Xq*Za4PsQ6f$)PJIrBt#3G>H zU;z?(_gXLE)J^M-`rqpIM>%1lSQKIi*)C^~IQ#0ia9_UWTugIe%6B(RUU$p;gZ6KM oIk*)exd*0?G$EMZfwazBW|!^4`3?)_EeDBuy85}Sb4q9e0Mf0d*#H0l literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/text-small-caps.16.disabled.png b/app/ui/style/olive-light/png/text-small-caps.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..7cf071540d66627332308fa33c4c0a1a71059321 GIT binary patch literal 528 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlG5f$TR>b`GM4iu{Qba4#PIKOnlMy?hI9+&w- z7k)P|Kb)nz=Fk87jT<*uIBvM@#M5HU{qV-o26n&c4^xd;-mS{eUR~r}av^1t`g)lS zo#jj?k^~pzJTR8$e7E*O>$%TQbC#}kkyXe|oy>e9Y2vK5nP+_^M0h_WNGneX@88A$ z$ExP|nYgvnzh?cke|t1T<o>zjC2i5bd3x{jEt-d4Xq4}v<(cb3=BF2%fF*&$jwj5 zOsmAL;fK$8Z=eQAkPX54X(i=}MX3zs<>h*rdD+Fui3O>8`9 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/text-small-caps.16.png b/app/ui/style/olive-light/png/text-small-caps.16.png new file mode 100644 index 0000000000000000000000000000000000000000..1f3c05233d2967b0119d1efe334cf69aeaee3fe2 GIT binary patch literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9G08$g&*{RsbBprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesC|W}i(`mI@6m}Hc@H@Vu(V$3xs)l- z-1BX*fRhD-&*hTXxCz`96L*`xyEo<6+9Ok5ojh|)$zhecXQ^Pq#mUU>515WT;+E5w zxg(pveMBOeTfmFK@~`}dYX@!4KVNcl&EzfSo8R4jaQ`LWs>FVdQ I&MBb@0K6-YTmS$7 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/text-small-caps.32.disabled.png b/app/ui/style/olive-light/png/text-small-caps.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..4ef9f9eac52fcd6b1d526b57f5e9085378e2507a GIT binary patch literal 531 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yZD#p$H=LX9|piq;ii(`n#@wbz#`5F`iSlOKy zv2U2%^n3m(CjJFe!y+VA(;olojQYSe>n=~F!GvOKwmsHy+07;!9TxBKU=b zL*{=BH@Z!7{QUfi*QK)Y@ybl(mbSA1x<;hLHKN3^v?L?Hh`~3ps3bE_A*i%CJHKrE z=`%Bd@~R;Dl*E!$tK_0oAjM#0U}U6gV4`be7-D2(WoT$+V61ImU}a#SpH}0Hq9Hdw zB{QuOw}v?DBmaRKBtbR==ckpFCl;kLl$V$5W#(lUCnpx9>g5-u&wghk1yp1VQB+!# zoXU_ont`Fkrha~2u=f`Iz=jX-E*O&m*&fw|l K=d#Wzp$PyuWT{&K literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/text-small-caps.32.png b/app/ui/style/olive-light/png/text-small-caps.32.png new file mode 100644 index 0000000000000000000000000000000000000000..fce1b400286ecf2832ac0b65e266bb455d221fe0 GIT binary patch literal 372 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?5GL=a}2dU(e+prB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesC|*Ai(^Pc>)R=(c@HZHxTNd;;*i}bEbi=XdFkk~NheuPPf9($ zW;0jNmiJ8TcK$q4Kwl{{Oel`C;S0W+ba(Qt7fK8VbPOzGYi56C^*ihO#L;N`&Pg?u zTqmwJeY3yTacb@ydqbNh0gvn6zczmBTqPFHc;okyKjADlzIyt%@8Ei4z36YJB!h=t zzg0>Fi=qINqCw1pmdKI;Vst0AqlQ A2><{9 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/text-small-caps.64.disabled.png b/app/ui/style/olive-light/png/text-small-caps.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..d32d95d976c07ba687981e79e8ba35956ffcfca1 GIT binary patch literal 508 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$fPM8&vSlJ-n=0t#h&x;Tbp+8G>Iy&TyprY8;or}rBu8ABA67A2=LWR#Q?Sn2C0=jZ0;=N0RfXJ%*Srlw>jf|Ton gc={oUdFlD_naTNiaq~4M0JSrCy85}Sb4q9e0AYWj^Z)<= literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/text-small-caps.64.png b/app/ui/style/olive-light/png/text-small-caps.64.png new file mode 100644 index 0000000000000000000000000000000000000000..e7f72cb7015303f546cbeb3d2b0afac7290f0557 GIT binary patch literal 387 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesC}cSi(^Q|oVPa&xehrnxE^$|@!)!2uhcDbRI67&X+>q@+?6^l zHg??;=c+Lt73x73ZbfJUPV^zbP0l+XkK&g+b@ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/svg/text-small-caps.svg b/app/ui/style/olive-light/svg/text-small-caps.svg new file mode 100644 index 000000000..429f5b250 --- /dev/null +++ b/app/ui/style/olive-light/svg/text-small-caps.svg @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + From c04cad8ef30934c8612817535eb7505f7aefbb60 Mon Sep 17 00:00:00 2001 From: Pablo Gil Date: Mon, 25 Apr 2022 21:15:42 +0200 Subject: [PATCH 100/114] Icon "text-strikethrough" (#1902) * initial design * Dark SVG and all PNGs --- .../png/text-strikethrough.128.disabled.png | Bin 0 -> 2190 bytes .../olive-dark/png/text-strikethrough.128.png | Bin 0 -> 2820 bytes .../png/text-strikethrough.16.disabled.png | Bin 0 -> 611 bytes .../olive-dark/png/text-strikethrough.16.png | Bin 0 -> 511 bytes .../png/text-strikethrough.32.disabled.png | Bin 0 -> 815 bytes .../olive-dark/png/text-strikethrough.32.png | Bin 0 -> 810 bytes .../png/text-strikethrough.64.disabled.png | Bin 0 -> 1242 bytes .../olive-dark/png/text-strikethrough.64.png | Bin 0 -> 1486 bytes .../olive-dark/svg/text-strikethrough.svg | 185 ++++++++++++++++++ .../png/text-strikethrough.128.disabled.png | Bin 0 -> 2523 bytes .../png/text-strikethrough.128.png | Bin 0 -> 3619 bytes .../png/text-strikethrough.16.disabled.png | Bin 0 -> 648 bytes .../olive-light/png/text-strikethrough.16.png | Bin 0 -> 617 bytes .../png/text-strikethrough.32.disabled.png | Bin 0 -> 888 bytes .../olive-light/png/text-strikethrough.32.png | Bin 0 -> 995 bytes .../png/text-strikethrough.64.disabled.png | Bin 0 -> 1432 bytes .../olive-light/png/text-strikethrough.64.png | Bin 0 -> 1936 bytes .../olive-light/svg/text-strikethrough.svg | 185 ++++++++++++++++++ 18 files changed, 370 insertions(+) create mode 100644 app/ui/style/olive-dark/png/text-strikethrough.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/text-strikethrough.128.png create mode 100644 app/ui/style/olive-dark/png/text-strikethrough.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/text-strikethrough.16.png create mode 100644 app/ui/style/olive-dark/png/text-strikethrough.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/text-strikethrough.32.png create mode 100644 app/ui/style/olive-dark/png/text-strikethrough.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/text-strikethrough.64.png create mode 100644 app/ui/style/olive-dark/svg/text-strikethrough.svg create mode 100644 app/ui/style/olive-light/png/text-strikethrough.128.disabled.png create mode 100644 app/ui/style/olive-light/png/text-strikethrough.128.png create mode 100644 app/ui/style/olive-light/png/text-strikethrough.16.disabled.png create mode 100644 app/ui/style/olive-light/png/text-strikethrough.16.png create mode 100644 app/ui/style/olive-light/png/text-strikethrough.32.disabled.png create mode 100644 app/ui/style/olive-light/png/text-strikethrough.32.png create mode 100644 app/ui/style/olive-light/png/text-strikethrough.64.disabled.png create mode 100644 app/ui/style/olive-light/png/text-strikethrough.64.png create mode 100644 app/ui/style/olive-light/svg/text-strikethrough.svg diff --git a/app/ui/style/olive-dark/png/text-strikethrough.128.disabled.png b/app/ui/style/olive-dark/png/text-strikethrough.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..1f02133cef29ea2b7ae203fe95db15af6d8244fb GIT binary patch literal 2190 zcmZ{lX*kqfAIHxO#+EU*ER7JOZj5D+U1-L>j$LG#85xWjW32aG{$-75EVsz6vgH<1 zN|sPjC=$9$)I=nrNSpMG>v{FOcwYR@@B02e-|sosbzYov*45cYL`Y5u03c##izjkB zv|9qa+?8t3V8Ly?CoG*T0cbrhydBKP)rurrq7wi~s$5?x06(}RXbFH=Z2*>o05C2F zK$=n3>1N6W@DK+ZJOGV3$~dkPWZ3$~03e^STd?yBpD5fRKg-UE!2ga{O3Fa)JtBh3 z5Wnp3mL3T&R?B_e_t~JJ-fWt&CKhY32|{_WxR4aeT7bx~?etS@El{NBe~Wjl|El=7;hJ`e10uei<3%b22#c z5VSu)-(LX0`LZN^l@>R~bOOwy@7qkeV1Qdw+kI7ssX95vLyUAdTMo3{J1jN#WX8eR ze~efuj7x8sM#P-*CaxR-Rj3& zd2reM*(y>LK;&;qPotBM|M;uj#1eJwuI_O4T9Ohu?qDoNhledrnG=d%8mo4w)FJ7Y z>B23(cGT{CljuJJ|u`FO-~rC-K$Smr>ckz7UY?=M!!$M;V=vjO{jx~|0>HM2)}3C)SaJD&Oc7DWR6~{){^6Xw zpRr#Tgd58JgFrW`|2*bNlGD3KDOE#`wa5c3EVHI&ylG&~GAgpcd~KmvKHRbkcx5a7 z8#I00tuk=(kl~lb=8wg_#ElS=K%z^s1hU^v;f&iH9MU#GzrrX)dM%Gtn}#Z4ckf+K>nLXn2#Q)*9>_I6D+ygpKr(&3xLe}E z(#XcC_-tvU1%dNI^i^q9P)>WCRmkzuHU&xMx25yf-;c>a%MsXk^p;9) z{pocW6dGietAOc~s1X4HgXG+kb}NNpFpJn5CpTn|4^`ZXR{!aVjYJmdZ=KYuWQ_FM zy*zZIeR=`2quOacs8_(-w-*|A>G9q%%cWxY&V0#oYV5I6F&}0d*S$HxgNK3b9z-R@ zDtqEJr-uXwoEDe9Z|j;)%fYu@m0^I>MwdEd@a9}++n$7MF))PtIaQr+CO7^y?e5Kg z$R)2pNZO#DQO?tbQ^F9rzKx)ChMbW=w#wKWtKV_Sh~I*_;#aKc)q0Khbo-vFJI^%ea7wCt#*>G1=iIL4K{9+$mWKv$ez9Sm18x zg@PvHdE&u|)h=1+huJbuxo_<__i`Bw7Zl5|m^L_bI8Dm)k#Lld0ew;S{_?;DH036C z?^7C*)-e?#8iFF^sbL088m@Ny!OuuhviZAlJh$J3B9&i`0-)yk<##5{_yk%3yFd|4 zzi{QWx?JxXR9}$4UWnYq9FxG{xWVNCI1I2c6>SZ3Wr2<#&Z@8;cpr@&3Y6jo0$jn;n^wL^$YX8X=;?8emoCR2c$d z_Wd&ex`Y>HeNw3K*E9(^mGCQqkaK#!70>!jerYrmk88GU3%v*u=(94B=eX=^x27Rj zvwN&aGIIi5A^|Bf1A4IaX21G7r;DsXjo$K<46jcu0+h-X%y72AY56DCJQ8yj_Mqj8 z4&1-E>^U5&uO}YB47%rpT2rQINp}%PhBwxgG6x)TVrTIYbL+yb4V$fLHCBWdTZE6j z)u)OAuon`Co9;)aqQIjqY`bcxgj?iD&eYb4$>Ymn)UI|#vo^K#d?ypXbul2_9Dt;`FD>+(%JK*il zAPfdZRUPv3shihzt!+4`jCT4H@@900tiEtpK5ER8#ohXz@=2rJ3C(?u^9Lv;QkP`z z_k7X)%#hApTa2vpB<8WAQ zJuFVg1E*uGuWyVytgfwXtgUU5^5NS51ZZ?JH8k=62kd9vCAb0E-4opDp{)2|CI!UD z$7@ofB4S9v42mY5d7|{AsT|j&`(INmlSBbwEEdC9ON&IO(dbbzn(@>KDvd&>2JhOn gc9oV#aMTHUAeBUqI$n8*&5Z*)f-}C^D(K9A02)N0v;Y7A literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/text-strikethrough.128.png b/app/ui/style/olive-dark/png/text-strikethrough.128.png new file mode 100644 index 0000000000000000000000000000000000000000..160d5a1db489465d9652f573f3c120c389c28f4a GIT binary patch literal 2820 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 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/text-strikethrough.32.disabled.png b/app/ui/style/olive-dark/png/text-strikethrough.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..69ddfaf84d5547840f9fd1aa9905406c3e5792f3 GIT binary patch literal 815 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yZDrzoSz;9*Cz`!`q)5S5wm-@iy?H#5RoQKqNP*S$X_D_Z*Y~es z)2ML!yKI4lW!ZWWhX>mO%1*g`_{V+WZc)SW2YJeWnJ4~f=rX1%zpXDOE=|#z&bL7IuCQiF(d&Z?bB~G}^?YU3Hxj+p!DaXN zN86#TJd^KVXX06Mym6*W%n2pQq=`16?<8h)9^W=MIk2)rKVr3rgNa`8dJ%?4Ns~4; z?2=q8%CI)`p7+I+(<|gXt9Pl-+pzGw&FL#eVpcLUFQo5z%CyCg`Niey9fpF&Vj(Lo zdac>*8Rlr!l((jGi?OlfiSFDDjQt#U@6=g5GyA(H#Z+XW=VZ1}n;4mAXMQ9d@=*KJ z{)d74T*2zNyB~G{BTuBnHKN3^v?L?Hh`~3ps3bE_A*i%CJHKrE=`%Bd@~R;Dl*E!$ ztK_0oAjM#0U}U6gV4`be7-D2-Wol|=WU6goU}a#ymHiQvL=YNs^HVa@DsgM5HuLNQ zYLEok5S*V@Ql40p%1~Zju9umYU7Va)kgAtols@~NjTBIkF+@>mQF1CnMoCG5mA-y* zer|4lUa?+zW_D(7YD#7zNVz_Uryr7-m!2P=nVg>&H(z4{P&VJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^MzSV=@dR9J<@mQRR| zQ5431&kSSKBnGp>EU?flm|~KJf3agqWM@IFl+-ADDYBcbrY1JZiddLL{-kWCW{Mg` z7|IyTf@z}6JQnXeHFLf9`|kJoeDl=1xaXepo?qwQ_q+!dSgOR?_Hy6=&;@J)T7hN2 z6fg;l0WW|d;IX8MngG~t0?q)(fhCE&)4&tpvZOav1K4f>t^u196Nfr1X*jmIDB%UY z1<8K{gTN^8iL5HEzy_cLXv+OYN+mA~V0#a+D=^;!E=U@W#54mtfum$cP`zyT+I~If z>9?JHaZ`L7%It3q)_szk3XtL(1<2`F2Idc`$x~IX0$~YP*9{;q-`Bu=q;3GYo`(Ro zkJS>OgOB<-6$+vMg_Yt21^gTT@Xx4AzV54X`m-f2j(0!bot1Pq zmZ#KMeyG6KM%H>$WU`qdn!Fsqb+X&rP35!T5O7h_P&vnxfus@WBxUffr7H0P8il;HryWng9R*07*qoM6N<$f(EH*GXMYp literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/text-strikethrough.64.disabled.png b/app/ui/style/olive-dark/png/text-strikethrough.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..9e4a15cdcce7320834685c3309ea30d30d36b353 GIT binary patch literal 1242 zcmZ`&X;9J$6n~;JbDWS4nQiNl?vzdA&;XhaxqlX*5gZ_lPvHRU2mvq@0!$;6!3Llu0gPq> zP$~hul_%SIR75~+O=K|u8p?vn2y#`%r>Ozvb6#7s5IIb;k6tcEtOlH25qJSDmtsCZ9f= z9q;JqELHPrf&>x>l<<@ ztTG>ES6N}A6IXD|`KRUibj#K9XLTSc9pLww`xPVIrQ_O&!=E_m`Rcaf`Y&1(Jh%2x zizj*Q9|q9p^(JHI_4F5LOXSOq4qgX?0{w03?h<`f!9tvsSDRFXNg%!%}h~a-T%i@xizyP0fzxUh0;*w&A0terKX4s2f}Kc!L{0vSFJA?1`Z{kotW} z8gXvs+KG?Wp=(f`l*NzUJl*nS+1#wt`=ch%q~J7q>x7eyWlL{A;cGZ>HRi`fqfM4@ z_nU`DBvrb@F@eW4qT9EvNzL!qzqyqI_a!6#N@TjAh$53>#SHJ&~Axcr3fXRG68 z=yTN3xQu{?fuzPQgz~T+n zKHE*2;jmqg7wo3H4xc<)lJv7>_y>U6WIp|z(HHI-6nj;87MzjsxgB@%D#=hzvSx*M zrDc1%%ja@(cSrcb<&s{tdr9c%*1t~V!h=f-pIII_-!x;l9_>fqyKw>wHb?eNeVS5= z(7#pNrT0Uc-HPv+_vGvK=dav%z+A7z>y|8-lrSHA7%O_`aUJ(XNo?hW4Ik3EaidYe zS=WsIZ)?In8jSg?YOoO^#?3<4R37(MXH8NSCMIY_)TfojhS`oGf9k5Gjtj%a?9V?PGyKj^L9cDACaratxkCqL4_jd&V076ObuH(yZWKt=W;diNvNSq@N(?%k zjv$risD%Qhn4nN)pRiN0h$-@4lU5}ZgG8fIQiw#MLMBtl)dZb1M=BGGq=H#HaTXEz b0(rJ#i&UtPXP9v1NF3PAbqvdz%z}Ra5fuC* literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/text-strikethrough.64.png b/app/ui/style/olive-dark/png/text-strikethrough.64.png new file mode 100644 index 0000000000000000000000000000000000000000..a5009da5e72ea377e96eb6689a7a04d7fc9588cb GIT binary patch literal 1486 zcmV;<1u^=GP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H102FjZ zSad;kbZBpK08L?XbZKrNQgw4{Z+5rK%$WcH05fz&Saefwb#h~60BCe{a5^t9V{dJ3 zZ*FrgcWG;BZDnL>VJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^M#{7FPXRCt{2n{9|y zMHt6_|J~Jgtt~BjQ!;y7l%*&sC^TvdLo0H($o$#|DWVqzBkD^KQ6Gv;K_sO<6-gyo zNwCB!_C`^(SOi77A|;D%hNPyuuI|%^Id{7*?mg$soOABIwSTyr%bjQb&&>bMnK|c~ zXJ8WlZ>R_-W;PAD5x5R$11}KzaudMJrT|NT z`+$W&Qy}F4umjizd?RT%kPpZ~05fX@9s(Z2{nL5i7_c39OValtM41X;W^;hofNQhl zjX{s3$9*e@4$Co^*+O6)a86d732`)}awYL1EvF41M`4efGZ~8d)K@1 z5rQT`Gg}6{l)!X9Zj^i=DfPc?X0w62am#9Z^z#W|fuuue`O4uffSC#C1ul;<{R((e z(qF#5#`&F#TVhX1S{2F{BEU_+rWmuGz;a0^ef?DM-{>=%#v^1Bye+1D1X!6z=K-?l zJcJ1_Kc;+}q${fmb53WkD3|*;~}XB z7gmc4z&23!aFYf#EdYR|9l)CjOmFw%_o-Ag%&Zxg9#?6vVHB7zDOJu;&5r;8NkhQq z7_$aoc3SSb5FoP6&BVPeR>D3>gK4?F1u(N2X12o2&i3U<=%)#InfPo}ubiZi z5pWOi4Dh*`tv0iX(pkM>X05;*z=8zk@B8=&NtE0STtDvTK3vGDH)QWGI%2a7ml2vI zQuKwShkbl`2@oBO=&fXeONQPVUH9NJN)7@?N=c5Xl4K>1N@ic1>eqt#~cuatvY=jmLZGIcS{O7FyYgP8%Xw0 zk|#!h=R-RWeyhNbz_Y;bq0T+=6VR1K=OJtrXaerUEr%Vr;AEcY$DK>s8l~xFf~@ib zT7Wxnvv)i0bZ8a_s1D#FL0j|6B*`Tt7UdeW;l#KGmt<8 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/svg/text-strikethrough.svg b/app/ui/style/olive-dark/svg/text-strikethrough.svg new file mode 100644 index 000000000..c45927743 --- /dev/null +++ b/app/ui/style/olive-dark/svg/text-strikethrough.svg @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/png/text-strikethrough.128.disabled.png b/app/ui/style/olive-light/png/text-strikethrough.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..9480bbfd8f1cefcb37c7aec1c3331409e4d14c54 GIT binary patch literal 2523 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 D<(OQJ literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/text-strikethrough.128.png b/app/ui/style/olive-light/png/text-strikethrough.128.png new file mode 100644 index 0000000000000000000000000000000000000000..789c9ab2f900ff2692f57c57ea18b79fb12d56c6 GIT binary patch literal 3619 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 Pn*kPPHkjw89=HDkD^-tk literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/text-strikethrough.16.disabled.png b/app/ui/style/olive-light/png/text-strikethrough.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..1027e6ac34a14a48154fb9ac3a951897d6af310c GIT binary patch literal 648 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlG5fwETt=w5A1{C`4>EaloaXxjTum7O{0oU`n z@*-Q56f=@?l+@Jz@c#dQt5;7%Ij<*!nPuq~S@FLM)|MMr=KI~7yVL*5uIrC_82x6J zosV9#BlPOL);oeB>Z&IX|7JWeHFx<=%cS?lzEAf|jM40EU^r z(i%@&5woIA{H4k&EietrG9{BwVuPbhq!nl(RXT4_Z67uDb%?~PlY0fRuK#5JPC zv9u&3zlgy%v8W_7Pa&wZI6J>=`{^??f%2*#`IN+xRIB8oR3OD*WME{ZYha>lWEf&( zXk}_@Wn`#rU|?ln@K5EcB8rCG{FKbJO57UyD|6=pHAsSN2+mI{DNig)WhgH%*UQYy zE>2D?NY%?PN}v7CMhd9N7^0}OC^?lOqokz3N?$)YKQ}i&uUM}~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq`+lr;B5VMQ?A=?k?d(3EStzOhRsdHyTc8oVj3vTY)&s#N43F z-5g@yvNazS-^h5+eIr7nqxXbe!|tbLlQ~s(aXd0u)Ohk~goW~Cd*Kfu_rKPJFJfJM zQRBp>H)ahI4az@fKZ%^ROr7D{*@#~!Jtw_ktYB35RI9RoT56@m?6do>Z#&>!rV{U2 z#L##4&Do-zXFTH!H}9U5XEJ#^hsV9iPdw)J9e;d0Zuk4!$4veAvoTBxs=pTdf%DvI zKes@Uum9U0I0e5f+Z`#u@?G`o**A^F=MEY8bT69mUMWH5_-~c@lh){8nq0D1Fqp|g zb!U#+EB&}UosDwMPbx)47;Z2ZxC?olW1RD6wO`h2{u-CSlC76t+D!h^u|!2SHL~o^ zu4Xe4SHtt4|4c4k$NoT#Vfyo*w{N|VPgFniCRz2H*&AO~&q>`GmH7-4w#0YdpH=o> zxSy^0;KC*4D(AyiU)7&9{p=ft1BbQVeD!1URBW(oP@j~LwpEs)&a299rjK2Y$k%9D zzV_*2-A8p9K347J^ZcjqbE(eh^Os+iyk7W^p*LfG*6l#^Tfi7*@O1TaS?83{1OOK8 B2>$>8 literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/text-strikethrough.32.disabled.png b/app/ui/style/olive-light/png/text-strikethrough.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..8bfde72afd32f0315830b44ce268dfb6c497e035 GIT binary patch literal 888 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yZDrzqFV1xP^1_s9Go-U3d9>$%xyM0l>vnH;+Or@-Ai^1(KWDoJy#YIvA53euw)nOUbUwHCaef9TL^j-VF@?|)=_ z?tFuR;s3kr%~~Pvv-FmK3E%vov|--eH!D>Y_6M%n&QhQzaxr`M!TmY!EYr_2h(@mH z@cXZ{7%wJxgOS_=CuVYrn-ZqvO(rt&E+fqRqPRGVA!*AYEtKgig)5%+OrrLzMF4iQ{J4B&%>ZRedj$s zhEqq5ToG#UW9!<+AoKWh+abPP7Ln^NWnPT?x$;v%%>$bYhjVu}p4eEq!DsHH8``;| z_V>!S_}?@-)T4C7BeL1?S#fpe>)RiX@jQ7w)u|-neAdIOnI-Xj>p4!w86@NgiJ$#( zYVMlI>wooj-FccUVJ>fSXD@eYYiTc3VQyz{Uuk1+ZeE`#kN^M!5lKWrR9J<@m(Ob) zWf;dl-`O#(Hpon(p4`sNst3uT)Yalav=w{u2M9sDcrbVnL=oy=;6<;w7d(2cC}5_hL@AE!CKD_h3&-)JCWvPyH9LIsA zmw;2i<7PG|>3*PVW_!RE@PnDH_WS+sHa9n~PX%CMVPU4*?Y?JbZvsaqiILO?F7-ArQFI1)E^m|cmFIaMuC1+YkBW)o_^703f!BabRrz7e9*E<3 z8F(>gx}2uz5@6#J=kizjj@tuI<_Ckp;CzkZOyXMwAYeXk@O^)yM)8SMxdM`I`$WB7 z@4>?aFf+S$o3rOF9wq>izAuaylO%a#ngETe$sh=}B`xy*X%TQb48wL11Xr^xyH*i? z=KxujZ3RJaAJ8sL9hdZa5Cl(zVR$3UvXpwKCm60X&nlA2YMn-Q8U`DroGBsIHuIp8%VAo1{}^{!<44`arRTKX8}; zNZQMf&Fr2-1ppo^0R3?wfFwzxcDr3lKT1&)odllF+XjQd%7FmPY!H=UT1S zxK`arlH?Uh=ks@pr0e~D|J$;l(mv2^HXms;8W#)ZZQ#mqN&f`?F|%2qDd{OQ3yXO? z&wGD;ef^8FI;GEY-}hfN+jm7g#LZiCpMTLN$s~PLRU9fB(fs`U&%>lm;8<0Xq9m=F z*}KlUFUR^$kgw5dwN9GZiQ!*Q1k6dA1CE;6o}?W!bHI<1E;{Fassnsi^)If&6T#W% ROmzSN002ovPDHLkV1n#D$z%Wk literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/text-strikethrough.64.disabled.png b/app/ui/style/olive-light/png/text-strikethrough.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..b41aa1fb283a08997ddb82695d73fa9304527bb7 GIT binary patch literal 1432 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 WPDiA!_i#=C0000 + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + From 006d4e76a093a8f0dc9326fe648ea1837c78a743 Mon Sep 17 00:00:00 2001 From: Pablo Gil Date: Mon, 25 Apr 2022 21:15:56 +0200 Subject: [PATCH 101/114] Updated icon "text-underline" (#1903) * initial redesign * updated Dark SVG and all PNGs --- .../png/text-underline.128.disabled.png | Bin 1346 -> 1454 bytes .../olive-dark/png/text-underline.128.png | Bin 1623 -> 1772 bytes .../png/text-underline.16.disabled.png | Bin 529 -> 530 bytes .../olive-dark/png/text-underline.16.png | Bin 402 -> 414 bytes .../png/text-underline.32.disabled.png | Bin 624 -> 640 bytes .../olive-dark/png/text-underline.32.png | Bin 518 -> 548 bytes .../png/text-underline.64.disabled.png | Bin 824 -> 862 bytes .../olive-dark/png/text-underline.64.png | Bin 896 -> 952 bytes .../style/olive-dark/svg/text-underline.svg | 279 ++++++++++-------- .../png/text-underline.128.disabled.png | Bin 1491 -> 1632 bytes .../olive-light/png/text-underline.128.png | Bin 1975 -> 2172 bytes .../png/text-underline.16.disabled.png | Bin 554 -> 556 bytes .../olive-light/png/text-underline.16.png | Bin 450 -> 467 bytes .../png/text-underline.32.disabled.png | Bin 664 -> 681 bytes .../olive-light/png/text-underline.32.png | Bin 611 -> 642 bytes .../png/text-underline.64.disabled.png | Bin 889 -> 942 bytes .../olive-light/png/text-underline.64.png | Bin 1042 -> 1134 bytes .../style/olive-light/svg/text-underline.svg | 279 ++++++++++-------- 18 files changed, 300 insertions(+), 258 deletions(-) diff --git a/app/ui/style/olive-dark/png/text-underline.128.disabled.png b/app/ui/style/olive-dark/png/text-underline.128.disabled.png index 15bab9d97244a3024fcdb82f59e0df4d8d7e12e6..06bb1cb3d11026139aaa267a419778f633ecefa6 100644 GIT binary patch delta 1149 zcmX@awT^p2S3QfUsI^f6TTdYa1BXtu!i?sH#|y&bE?%MgPH1_SF|vgf1CHAPKZ&~|Mphy zJ#P-l$KLz7=-7VFCCAn+|CyU{w}5e9u-Q+oU5$O^lh!IcICcA%@11+yj}Kh7;gezYcb}X+WEa8S)wiot#TK4g``~Zm|9jR`_HNoc-S6B}`-i17e=TL% z5qQq@fyK1HL3iJO(s(|>*jzJ2tCit_NxAH^0J(PF_D4@T+AZ08Ew!&VUdrCFDL!F? z^rzXc^&`q>E5Cax_wCMHagAvq4UgU57yqiS-}89N_M?94y5II1|6lX$e5$oTqG>v5fvygj!=0;N4f7dk+ z1h*R!5$i zD}I`U$6P3XJcU!3`$za;HR~;z;&qitM?}N-6gEoF^Hxu&S6k%Stv1^vGhlh!Vm=>% zWj+!g8x@_|LQC!#@EkVad3?^rBdcVmfA-UTt^rdtne|@ojGk?|oyDVBy*2Dd_*_Qy zn}@Hy**xvmtP=Ssn~9P8H+S#dt#J2jXuI!s=8%vpkEW0)vxxfI zPcQ!4S8X|^b-Fn~OJTNPhfbv0eDQMM^FI2Y+a6Wth49Dk|9i#f@?~Epjjp2EhI;!| zN^R!fsz|tZyj$CUgVolLQ+J+=-zcL0=Bxwj2IdWcjBglnLKy0;8KgxI@EveN5~HKg z&iYKIId-pO)->$!N_S}xku)s6=UK><6FW73cY}2xYe-tWgKDv;_^ROOB@T>k21Okb zO)sn5^CtJdo?{#95V`0sbI{f&vb(O9h$g(w)0@U{##*gQA;F-SiEZX;7Quql%xo9o zgw-{XYZ#)-%T+MyBF@Ro0dOBIKhZhiL}PMLkqC!8B3qpfQMTpcc7Dod2f zxBebJy*T>H2mZz>8*(!3ir2o@J8&(P_j{9cMwIwX7RK7_*M~PO7H{rbTKUF`wTi<) zdG*&e9ahr~O|zD6eQw44BR76dMD%W!Z4pYNXfjrn^`BR|USH3`o9&(d!9buY_|#8b8j z8x(WbKis}yX3@z;Pot?_iVO$pUfG?Qm9x{gJ!whz*D2k{EIvp#e3x6d#n`8exyE4c zoKo?NN1a}!-hO7`ym18+&%DU{m+K4qYUiZB_Iq}5+qysXS8M7YTQ@N5{;{cHx#a7Z zhsIUMKB;Mj>Lgk|cCtE{J^lSeUOk2hVXrp-vR1A+s>&vj)Wg{zbZW(-HcOqT>(%w2 zug&?D&R^1}EdAkM^YqEFo5dITteCtUMvva zQ`8hIvn#(wM1z4Lg|C0j>=~A)A4*go`}m<-iGg8BpIO+R>JEz^Czu!%PZ;qOpUaG3}!iZl7$&S^xloVz%J` diff --git a/app/ui/style/olive-dark/png/text-underline.128.png b/app/ui/style/olive-dark/png/text-underline.128.png index 8ebd4ab8d0d949c8b55c77ab2696d32d94cdf7be..8dd2db5276dfb1d01c4d48b885088a46d5fe8d63 100644 GIT binary patch delta 1603 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 E0KpMaE&u=k diff --git a/app/ui/style/olive-dark/png/text-underline.16.png b/app/ui/style/olive-dark/png/text-underline.16.png index d48167781fbf07085174d0fc3b9ae819933cea7b..3f94216a0ea494a16ea21e9d2f0a6ef13963dfaa 100644 GIT binary patch delta 233 zcmVn2Z5Ir=HWc>0;#Kg{uDmo+ zU)4@c*U4^D=11SseyD%I9{|?r?V7v0Y_kvWmVQwK=%&B#17fVw$7*XAs!iY~$3?kt zQVtREq&@&6V6HBKPoM{!1NRZ}{AH*5PBnn5JeL{20FS^dBCPq|?-l9*xC4$4-2DJ< jLp=kA!0Ca24KUpTj_p!IA~zC600000NkvXXu0mjf9&Bsx delta 221 zcmV<303!dM1Cj%fy??+-L_t(IjqQ*zYC=&EMb8AmA`+}q25}iF+=N9IpoLqpaR(M5 zjT^8?k;)AS7Fva@!A9`d%!ilHSHcIoTzFjO-kJO6Jt&}#)QQ@q2DO{ssP2_bbM>J1 z8@zsc^HP7fn)XNh2izgxnEcexTWP0T0pH0l4FSXCpIZT&q?m}U7{4s^;Q zBDU%~@CK~aFW?Nk0?)uQB6h!K>U*jIjPndq-UA=NDk5xnUVB8|dT2EqF{u7v(RPCi XZthHdL&=L)00000NkvXXu0mjfy>@8W diff --git a/app/ui/style/olive-dark/png/text-underline.32.disabled.png b/app/ui/style/olive-dark/png/text-underline.32.disabled.png index f8f958b5def459f3aa2a514a4428b995130ee29d..f3db85a0dd83ed6289e071c301fcf18879c76551 100644 GIT binary patch delta 328 zcmeys(!e^QtDZ$v)Y@Pk$JZE{-7{$KOt}?LOon&^Etw9-C-Sgv7%Z?LQjt z|NrOl-Z<%Tfb`9v$Fau_iTZ9@Eg-1#$?WjCeV;e{Hu|vS$+rc9#thFk=|`D9k#1<6 zk!@b_ja763Q%J*fhAUx(RjSX682;t1wPu|DZod448@Gy>^zJUM7gy-q`^JjVmVs|l z1!DuF!lkmhC~L9ocdZ=J($`%MpQ$)u@mNEpdTX5_gF@=*KIRK5O3T;|xP|pIFb4ax zB}91rVqnm!5fZnXzUf)G$@{YPJhvA3PoKd5;Dp>^z1jbMdpNlB)W+}BPSv$%6qqi> zo>&mKgg1(7!Ox{yOND=aW;1L3bLWclevM%JcPwk_ucYcLOvx<1!)d|X z9q^4QpuuLI$@0gUhs5@`o-jFDD!lnt#j{<{GE{eOi`&UCb>&Rfz9(wm4!Bp`Ws%tV z_GH5$?-gbY9S4_szAl6OmX{8<18 zfVsFG*fO(n%J30j1CT3y0!L{Bl(y)at^#vj=@mExPJkO%8wO^8d7#hp?nzo}7N7^% z1}3t+flh%XNons*0XT>bU>R5dx-;x=zz(n}De?Qy1>k`U0keD`vNAB}mL7p?-~u>K zJM~ea1Yl+>z#`CD(A*lZD`~wBa0&DlG`y}CNtODKXx~v4rJ9@h|M~)==52Y*>`7Mu O0000U|1cn5Vy?-=GL_t(oh3%HXDn(HghQEbENis3f)h$IPUVtu{dIJLXcAOz;RM2E=pR43xw`Nl}X5z)riBbB=wlbjtqg)LLu*d#&$u_URm`t0c7~wWF(% zu(#p%wu-zxzk}PkGC&5%02v?yWPn-&yt%wTp|AJ)UOxhOa)0@70>FsNA3FiKcllHT zz_iQnk^#)@)e>2qpK^IZHAZey*vZPsHJ}RA;`Ktg90fo31*p<{Q z89o7Q0~Si}z;W3CD_aarH-VL?^b8yUr@(cnjRQ--Dlimz56o<)zACjmqtW56<>hpY*VhNTDK3b+JL%1(Wj*ViME k)c(`KW|L6!ui^jD2Q&3!LU@VVnE(I)07*qoM6N<$g3||`MF0Q* diff --git a/app/ui/style/olive-dark/png/text-underline.64.disabled.png b/app/ui/style/olive-dark/png/text-underline.64.disabled.png index 74eb19fddf01e25a01b5a40ae8a1314b323b8ad2..aadca969fee1fda613f1f2625751a8f62826bf80 100644 GIT binary patch delta 599 zcmdnNc8_gBS3QfUsI}os{=26c7#Pobx;Tbp+A#F-%?#UoOir{!_Ixj2DapeZ4C@!fzV#e$RYY(hz;6qTlus_wr|-@=wL4F-WS# zt$W!x`9Z@f+4`2A%Wu}HewK>Nrf4pJH$FedqGy69fa2dUaRL*9kozbF##f;X|4Nhhp0PzWu^By*KNpmeIsekrd0w%-N;DS0E>o%qo+PkKEYG~0DN%$*8l(j delta 514 zcmcb|wu5a#S3RRFgR%+F@p4H92FB%{E{-7?_uk&{_CMqxaNy&ACMGS9B!M0;g=5Ty z_x}EKw{PfgW*3(43{+mE@c!chL!Z{N=w7$EJ10ag+igE>AusoT+dF@@FL5l@vMuEQ zciF4+SxD8}bI(GT)m5?cBrq^b9AIEGXkdgfKd>LEUtAU5F4`A5t&jD@ikvAt3-r6$ zFINVSGE8n5mzD_>$2_r+~BFWE@ z49tD8`n%3>GfYZtPwIIpZ^8Ti-wXx;_g3HawGsvA*1kV-kAcB6&^}T3%ghf)c((`k zPM7#_>_qSqk9jhhmk!L}tgW)S)R$+)-JP(m0Bbb*wV0|!&RVj0Y_8B&5WroH47Xa zr8f%duyAkmP(7kFtx18S>qbk)(z*NwVqBU>8k86pw=`tbG`vsVc(au0-t3bzBl``% zXP4b9{(k@ezcY6%%gYoDw+o)09`co^KqJ6TN9p^UX^Zyn=G{>*q7g4Pao)@VTclw-V}20BJ+?h$30AReSimIuk6A&9HIHb!pSj7vxs%-O3TgEYWwxY{jaV z7iUYXy5(TgkS-P*%%Jp1s6tp{J43G6-OLR2JqP?4*6S>C)oXU17*)=AS72fLCI-2V zjwqLImJbF&uLG`5W4aX_a5XF;J>`V#>avLpc}(_9Th$(vFus+V{QO^idYvQR)5KN3CJmp}EX#4V4oU!yDuTIc0Sf-?BXr zDNr$bW4*!I#Vu{o+@%-d99-HOS6}9N&Bhi|S{)Y~dY36i-LA5s+f|L9wV#0@G?(pH zqp4-veuj5U%?Bi=daq>iZVXGP7oK|9*5CLm%MEp<`Mle*r(D{w;#JfGsi|@g@(uXj zh)%q?$Z2U#yXzCnf(Zr1A!_RznNxk_y!OZ|DET+?JqV1PRsX>5Lg1G@=Y!VItF6s!DjB?D)sdJxqx+n=Q+QzXeOSypQ1xwft%T@Z1LvDSu6a2{* z%xu9qWn=AJ-WY+2aWiglmRZjHm=ON;Y|P*M59wch%^K?1mE*2Fv$Fr3c>hVZ`2YV( h758p?Jc@rP?#VW_Iy>oL3Ih;$y85}Sb4p-r0s!7cQhERY delta 719 zcmdnN-oQR#Z~Zz?7srr_Id5m}&K3z2Y2UwDNotYAMKuMDNlG0q0W6Mda<)Wq%Vz{! zaLZYvdqin!YkiXfN7s#(t6tXf2|6M{9gNK^Jwi;2J~C>Z+9)CH{^j18dDgR=-~8QG zkXQHf>~WiSIbue4dn4*RL-iTdnI2D8`g9;p^H=$IhH$3GtCi}FF6E^uuf6o&U+h8b zf!R6-b~l(uHk32wZ(?}QbT5VR9_yZyOnbO1CbL$Ee^BH8p!dKRzrxF$jM`QcEYF|X z#k`iu&OL2)&&<#W;hD8tSfW_ZxTdY{of+DZx_>)MnbU!)zUHPTQy#ND(`LB` zHBR4{_OJWfec;o9N$U^D)@SdFZ0I<{RIcpJx8hZ1c3r3Ofp;hVOzWuG(58NOZD^@L z2IFa^)9V~P%39>JB?cv#73u2jhB*Bd%~n2vMi_q}?;Td=0Dxn0VhUtr>M2jPmK z@MrcF945i*e;ducwOO9^oKSsrcDv*Qp$nVd{cyUXmmnAVmXVK^GvyW3_@v7Mka}SgyC~shV@$~y?kF)As{xg>~YCh032)kZ7?_`RR;=f&-t6nW} tpSaY?h3%C6^Zz`Ru&BSzeWJwLp0RpydzAX#ZSo92;OXk;vd$@?2>?T!K`#IR diff --git a/app/ui/style/olive-dark/svg/text-underline.svg b/app/ui/style/olive-dark/svg/text-underline.svg index dc1cc0eba..1ce678e44 100644 --- a/app/ui/style/olive-dark/svg/text-underline.svg +++ b/app/ui/style/olive-dark/svg/text-underline.svg @@ -1,7 +1,7 @@ - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + - + y="-62.000004" + transform="rotate(90)" + inkscape:path-effect="#path-effect2895" + d="m 43,-62.000004 c 1.656881,0 3,1.343146 3,3 V -5 c 0,1.6568542 -1.343146,3 -3,3 -1.656881,0 -3,-1.3431458 -3,-3 v -54.000004 c 0,-1.656854 1.343146,-3 3,-3 z" + sodipodi:type="rect" /> diff --git a/app/ui/style/olive-light/png/text-underline.128.disabled.png b/app/ui/style/olive-light/png/text-underline.128.disabled.png index c418f8363bf55d04412191dc19f0d3576922043b..91450be780437a66ed4f4f05606203dd04c62b97 100644 GIT binary patch delta 1349 zcmcJ|eK-?%0KoCz7?ZcraS!Ucbk!d3v%J(?%&E+zysMP=>2_{t-nKT|dhs@dimbdB zCl$KMoY$dTip2m}J{JN4j>0oE6S-Bw(tQS7qQPHQI-b4nNU|AdTx zzpH4NKgX-5bi~1ZY3+u*`2njyRBC0jBv_? z(~U}}O&q0z7j+6rMf`6%PLDeFw?}T2e-DsHCc@h+HD||7qEVX2w6IB%i*`Ee$Ju3M zB*npcMCVy^LYGZt)5+ zEjqS|TX#V215pJ3MnAHh6j!fSHC4{pufs}dzp_2NAns{FAs1~S9fmdqKJbH|`h^Rv zZdem!Ss(dp{J=DfHyWC)z(atXy4-Zp$GOJ*{sa54BQuv1R%b}~Tk7E_&Yg+z^b7a0 ztm&DSXsp>;%neT|C)$>=XgV0u6tic%U`x*$;WaZ90_X-^K{VRsq3C6X9R8 ztCYMWe@NQHFfTF;pIMx>lS!0maT__V^$N*QUg7?-^pAg8C~qdHr0D`~@;BYDtya;O ze(xg9GXzPKEIhHF#OirL-12U*WbbacO34o#whogH2Bgu_0W9$V?-jC zOY?i4{K!+7Zy0VKO5a4l!V*M!E)NL@Nx72uCshO9R{)5j_O@mZb*)%MS&40j=p0*&J4au>VnesEZjv>H1!&n0AvdkQ{7>?JbK ziVU@P%PLCH=glw5SHd|n!{hCUd&=$M`pgL8$O?>^v#@gfd|&nMEBDeI!7<9DlERuZ z5aw7VTM@0po=Bg?fOje99b=iQSIVf6Zb!j;+>Owyp|UDYW6>a70qOI0^O{L+$#knT zzd6heERS6;aeZLzFh@Vs%;)r>R}hI{S8H9o$OGK!6-+x^8vJziwzQq sMk1wrjRpX~p47u9Qsbgi@n~XF93h?pP)HQY4*4ITtgzGKTC7&`Ki^$_DF6Tf delta 1186 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 T%z_azV6{Bmy>aCSLoWXVnBut> delta 1808 zcmbW2`&ZJ38^=F*MBTikrjjeO7?f7t!Xb)zDRkZtZPVs0WkfE^OX^ZY`*5_(EEUMh zSw@sj*JREqnxz<~7Unf?Gt>lA@d|>KMPiQq1K)G@{pI=PIj?h`=lwqC{Z<(^@1XNQ zt$AOZ=lAJ%q^}7V_QaZN$rpYp5FTH4oGdo^aU8ohaU}V{N0O#a2;8{pc#RL^CofFW zy=&FlwkG?7s!smyb9J|df>6^1MfBYFc!pFN`2=}#PI|T5>i9&XZB}_aEqG=A#caa=_48z7XPjV3;YVl5<%HEeL@MfGF zose#vK&2b{|C?$1}WxhSj9qv2EM#^=RYsN z|Bn1$#N!FrKAr60&(sLf^Zit*E=|$>5xnkG2`=kxT1%fHtqUvhb)J5>VQZ?P=GC<$ ztuoFZ7W0%RvZDv#JD+fiyPJ4fb=Dg};SgNcQW0E<7KQnx7WC5dBG)a>I8~X(kVu_N zMaGPktXS)z$*5d|J(#~F*zN?s!|gpie(bq+0h;M_6HYM4oe^u$`(S2fcMQsGdtAZJ z0SM1|k=}db2N)u%fe&eae}xi52A^eg5+yI+y?gh{LQCxe)@!cTpt5(mbM^kJ22Xa> z(ZOLzVR2^EXZj7M<;^$UZhkhjJe~xTF?F79Oi%4O0L@z*s zP1<1XO$L=)3C)x5S+RCiW-&w}(bQv*{Lm`DRaI?nVdT7o`J`bBM%m&`PfdJY#iSXN zl6Eboy5Nm29ySwSKoM~+jN1j@~nXNRmkO38e!q#<%BuKISrt^>3`K ztQ2)@z2c8bFM-={P%lereg*vf{m&!VsVo@dJL0a(1F_Y_E5!7#+F2(qy!oOy9h%hI zlkmudA%I|_KO9h&SmnFTJ1}qA>#ZG7iVe$uIF>FK7qvmZ3L>Y~R-enLAB%gfBSs7G znt<%5rttIUZhsylH6Aw0o%zl8auhCCdF|atAvbngYy*zc4z>M>sHcpy4pq_MHwBdw+p;BYvw@Y+zV zm{-ud<=i8iT{E56%0?WIEqpzh&|#lR;ET51XxQA>rFpJQ#0!yYS8}Lwc=`Iyg9ZrS zbzLLy@z}@#Hd2|R)-zYIlOq%gBY>$L;$QRhwptjO2MT8gD=KdBw9`4{m$sMAQ3v9J0YIly zjsl*bEBe{m@-)Cs+f#msX3AXpdkg%4C=V;eGkJ`;;=ELVw_C=^XoZKFcwKbyWr{YZ zAKsWS0e}vBl@^U!GvMHd;F}8+X`F%js?Z&$_c|xf5dnU!i{Jr06J9vG7Q!O6h97Hd z;qfB-`un%y;^U>EK=2qP6Ry04Ddgwp6Fyz434zeIOYVu*M4Ij6PGC+Cy|_OSS#SUHYz-K$8wTW+`6YKQTyG?VGA=44J=L zVI}it&ONTlS*`k;4Me!G0#UsUBfwsos3|-65g?9G)89T2YZZAGctIZa_4VNjyk|Xu zGy@9ctO?r3%^cKx+C0d@F0AXFK|Zem)Dqt|Vr)XDB637CVF#5cBV}OScuK}by&oxz zW>fCpls2<&Gy7**iMDrxA!7lezBQn3+`o6CIgu1ald7ZQ$cvqb1t&Jrbvb1d5e;K3 z__(pj!Zo!~QI@H-C7fyi`?Cvc$#qbKgpUAV0^C_&Yym%dz1Mwu6hW~8^18i%G9VI8 zfs|R2qD>f8`*h5l(CE`G;nPW^oBx)DdMq}r9S_=-t4r2&s2o~(zoCk+YKaO)A^&$1 g*#8R$FS?%!6>FB%p3DIN;0wUlD-ieR@tEv?03I%6j{pDw diff --git a/app/ui/style/olive-light/png/text-underline.16.disabled.png b/app/ui/style/olive-light/png/text-underline.16.disabled.png index 2f76da2f8fe4ec68f170ead2cc14f19e6b379028..6e64c9f873f3cf8ba65e76f836516cc66f432238 100644 GIT binary patch delta 265 zcmZ3*vW8_sS3QfUsI^WP=SCq028P+5E{-7@=dbqpayKOiw9JoH{S?L~)v9r2?f?Jz zEFXp3+FvlQnNV(>(bQOx=eOJV`~ePzCElEWw94OZzn+#`TFH3f+NB9gUgl*?aXGA) z=v2>Y5wPF9)A5}&jG z_`meO!VwXtBT5;_U^J0z~e->WZ z^@*8b_9QQ!eG`idC9C&MZ@63A-(SrLRle-zEu*n5#2(F#Hhp_+v8`oas diff --git a/app/ui/style/olive-light/png/text-underline.16.png b/app/ui/style/olive-light/png/text-underline.16.png index 19c1473a2d9dc5c2557fb01f889bc3fa20fa75d9..6dd6ca8d5924a9d7e59ed3ba0140676dc0c13e75 100644 GIT binary patch delta 288 zcmV+*0pI?@1JeVLyng`!NklZtB5Ew3=9ld{vR1E^9}}sK_6g) z)nG7K_5s8PFq%ykU%_CqX|Wl85Q}ACie+c-wfu|2xGs!f^Q6nU=X_^`j+}FQS(feR zdH!72^{o3V%W^GAlH)W@)23;{+?Q@hL=FK=+O}OsPtlvi%zsy>9~`QGz#jlU06;{N zZ^7u9*>oA;6#!Iqd%@Ta0FZq95g;ND@jR)jYIE)vMX{l(rxAYF?XW-Ny*~$V1mGRO zJxK+yYi3&{uR{nIO924ry&nS@lPm$i%w9;|gb;24*n-aQMd#dsh+LZ4Xi$-ysp{DZ m$wxE0BDp#QU>Rmpl24x-yG*buBmO)900001$YJsA?z+Wwg(_0FFyiQ^*)ZLbzN^S{GuqfLI`IOemm^Q_>6Pz95@DEfjbci zz`mL7h{%=q{$eEn5a-+sn2AUQU}ldZa_zmp0c=TUx+K2+G^N}$O|>59%c&oH0zcJ1 VWyU5DrT_o{00>D%PDHLkV1oZQc{cz6 diff --git a/app/ui/style/olive-light/png/text-underline.32.disabled.png b/app/ui/style/olive-light/png/text-underline.32.disabled.png index 729a56f4bc3b646ffd454653608cf542ae1cc228..98542afd77b5c09e0e8d435db42ebdd8b44278b1 100644 GIT binary patch delta 391 zcmbQix{`H5S3QfUsI~52zQz^?21W@_7sn8f<8LSV`Zqg>xSpRKq?*KZ%=LEbEva7b zzyJRqTFNb&vq<$ATkKcn=Q|nJUdR+TQPbNoyK#Cozwz`&S=IgVZGzzp&%PyY%d`Fd z)|8>VaNDd|vE>(-q8zw?a5r514Q_*mQ$a) zIc!ScR9Glnz@qT^_t9-a#tfZ)%~dre5ecTZgOqNBFo+gcJ_~=eFHS>Y#+93Iybdec zGHje>boTj$yVpDHWEtkFbnd<>|I~k;KS!2?!H0&c@so8VuK%6;>w$Cry?d<-_L*>d5_4Z9Tn^mk_4H|BPD9;d3y!^ylzcC^ zF>K9T91|M9R>`lh2Jfp=Geu^Ms*Ez^h%d9TTjc=x+0WZx?;utYpfcI2FU`3~7H1VzE@#P1Dsuw)x;!rDB+Z`~e zfJLGAna?Xpo-)&C68sMFo6gLA)BnodUV+J!NAlN!N7t5c%+J}ME^hbb*V|Z*x0^i= z7th+a>TS8bq?@%&mI@>D0=Y|?t>%$__0=j2C(quWb@_Jgk8^Xsvifnm6~FJf@?!FK zMk^0PT_ej70|P5#Gb>XAZ6L$IK%sP{AOiz~YKdz^NlIc#s#R`&N@iLmgOP!ek*)z2 O4S^bhYbRSW6#xJ|!j>!m diff --git a/app/ui/style/olive-light/png/text-underline.32.png b/app/ui/style/olive-light/png/text-underline.32.png index 04bec5131b097df7ab9a052627ae0546459eba29..c6f100182ef491d1f52fecc87c03b3e1be4f056d 100644 GIT binary patch delta 445 zcmV;u0Yd)c1cC*Sy#cV1z7~H8$xa$Y1oHp}|61Qbh(%gUd$F;zurZAaL45;lEF$_2 zDYMxPh?szo2nuGMYqN=)knCm=qs5-?&YU^tD~4f!KNbz!FbrcAz*%P<s3(SsNuZ zolYl}QYFt)-m2E0lhyWsh2p|H80RAt45aP3MX(B{!k9U7SRxkiFzj|lK zai&86%=FF8&;UxQx_2g``BB@Md7d^Cxs-C5h_W7-J3qfKfKuv$h}aF%gb*jGR7(1kre*v6c0D3_2JAi^^S^JGf!wCcpGI%AWoCC1M z%vmCm0A}5-7iKmAJZPGB<9F*L^@{*NO1a0(c>u97^|p!Vv|2H(9(CS<+!)K@cIANY nho}gkJw|}GQmQz{zTx@;QYwtY_4DaR00000NkvXXu0mjffsM>J delta 414 zcmV;P0b%}v1>*#ey#bMtz7~I3HnTxcL@*Cv@UQg^EG%q&2eGlYF_kvz8)#z@(RWB^ zmf3)a2?&XxAnRP4By2*mlSR~kd%8Pw=9~|9UTZx%j7s`bN&!-U6d(mi0aAeR1rS1f_AN~$$nEhC$TEKeF!O744#RLd z0l-Y(+)NChwXR2JB3c-=otYQ=&ORpw2!h}VKo^3D))D}0M9w`{tJV52ujvwYpHW1# z?z--hsoe9t6(TA|U~c35u>e}@b0Xq)kR^mT$>nlhOnHu(kC~a;&{_y_8P_rNQQDD| z@({pI_W;owGhYC>3B!M|1^}5%#$o0y0J{LDI$mZz3xeS2TL6yZOxm_x04^ zv)Sx^rBeBb^I4{#R;v{j3Wcj?vuOiZ24EYC-vN}AQU{GjBQ%1V3{iQWHwR#wnTtf^ z0hn!Xy)d&6;NG&V>$qE=s$bntAfT zqLndTe;VnBJ+JZ0O!IpbZF7o4uYd)x02aUkSO5!P0W5$8uzvs+zyeqR3!n`^W~kb3 zg^?E7R_Yi5xKeALk5n2)MgZ(=kCYRD3nl<0xp}eOsSSXN2>?8)mE-~tKczW&&=;|U zTX@I?@Nr5Ra(08VZvL=>>>ikZnC1cia4%U~(A6_(ImRlh8bBU;9J38H=UK$x(EQ?(4dWD7`=Axsf2od=Pj=aQK^mR zrj>3_IX0+HC?2nlV?Oz-$yZutJ><6`KLSwi5c#S92;g_9tNM8O14^jtcMdV_e^0*v ztqP7WViqPflZOI2NHi@nF;p@!IyE^uG&ULDYZc#^PYWk0Y@NEj zmD%ae&;Raq4h!2aNhz*arS@d8$Rvx81syE+TyFOCvNWBm-kA3H-I>j=zpl%9u&{gE z{Y_$f=Y0H=rQ=_H>52Hx4{Dyu9hDSY2Es zv+{B;7h}N&+h9+Ibs~%k$IqUA>u1Oy<;oyn85qTNpr-hkh@)N-`}R+JMGpLye0svN z=k=vu+Zz8!MZ}!(Vr1A+zQ)$$>y?>(o#$V%7wne1A;5IB|3aaZ+fv3e4L`z!)C$UcYW=hx_#fiI9@*~Ue9`n?`zX9?RB{&vy)te zXXytqwXc}fF?)8j=-tn^Ret+2Jh&P6ZIbKjdf&{7XSeGa!-QlE54#rUSP3mR-eh?% z_MMJC6T`90YzM(rtgrevf95Y1Tv6k(Jl1Z?oKBPH{hsl2wjEeekfIf9lX!pT2hr`l z|031=B6$*2qZilSbMIZ1qrp(&DS6&t>F$J0)fZQWy#BS5Ka*w7#LU?n^~C}XagAr1`4Gs1t;?|OJS1>)DT=d I*^apY00_tfT>t<8 diff --git a/app/ui/style/olive-light/png/text-underline.64.png b/app/ui/style/olive-light/png/text-underline.64.png index 372aac28698878d3e9154e26b5a5fd4cff1fd2c6..5e5601379e5dce21448327882fe3fc7a5969a239 100644 GIT binary patch delta 959 zcmbQl@s4A{-ugM7E{-7;bKcJK&yWd~Illk?O`T;oyNrVkx3E0RT@>LOWWd!_@#Vtg z`U_nguKrEz3p>OG9sT84ULSPcqcQKuX{D|Q7wxZ9bzE?ED46WC!HXxhOpJGl*}3c9 zyVsZ+OW*hTG-coU%m?4^eXsq#JOBQlHrWHk$ufQPnG13cm{QK%%I@%K*)CJ}8Ec|1XfaHR zcHL@If1dyLZOPNRs$1{pu;i8>Sg^w3Q=0eLjUHN;&*hk8^E+HxJ8f37V&#&QyH5V8 zH`oHEeY2f5t2%Mtl55)qw{R(NG|6{msrVoGbai&&X)i6F1vhj4WvFHuXQrk;RiCu? zZq}qjDxQ6}UrbBvnaLhda)58w-FN5Bc7^6Oi*va)KbTq1wafL*uOKmo34g>Ia$Huk ze2DdYE12vP;rKgW#j{A{z{yF9@wc*~*#%e*E?4<~XRX>xfs^66TmSD2`JmR2=J>a0 z@x>p9!uBLuZ@m9L-!-sAy}_ERO@{yQhoWhz-rKSn9CqKWbG)>2lH%N}SFfJW{i?n7 z(4>31w^+j~Z%TZ&dQ;!TH%X<^_0r5qhSm&Xx?9>K-ZLim*RNl0u}!}(Z9aeQoSp8=qr1wOPx5-^FU|bLsbjs*>8;gKx0y3% zT3*R9o6qv0Wyx;cR6T|tJFaGxPMbdcfBlM!_a@YGCx|5XC|2%YQq8EMlCHAVLynEX zbN}Q!lS%{~ygvPQTU@xW&-vWrj}@mR;Q|7@SL z#Sb%Bc$D3#u&i*ie{IlU(RY4Q49kX>N3I^+;8|qY_qaSp`s1JQAKX7&|8fdxo?v7E N0#8>zmvv4FO#t!j)*b)= delta 866 zcmaFIF^OZs-g*a57srr_Id5kb~KT`GReh?U)Q62C?F`!`bo`k6yy1TpC)*Sh{XUe8q zXL4$czxtp2efQA+v+rwbX6~t-z$)}x`k2j=z4hz|UdFaQSuHJHFa2D4>8b_y-_M^? zvMlLOB*(+O|6i5x8sGiAglP?P#AL1wdl_D%hEiNrV32J56I)F@oC6!k297ud7;E0cUp?KJyBzgyYQzA1s&1pWJ^?duq`0xV#5zldkKhGBTX(u4fQY z&J8*MG`RTQ?=_9TMs6Zj5!u9o3$*Uz(l z%RiT{*(3b>L4n1cbD#eRGVq7%SWZj5dG=z)m)JLQ3>V&ikDpw!D(&Q{U%!5ZZ~W&L zp6Dqbx|el(#pUY%dXKuwTm$#0zU-Z4YF*D@*H>^~?H4aY!^Mme+tZtz8Tzj4L<0?- zxpU{v__o6jkHzh|_j~zgoBsk|>%S}f^yENcO;X z75#~KZr!}O(=ljL5kvdjVt+5IM%$QW9_zfS3|l_9PyVwuCSuyOX?@dDf9_mz&F`P) zA1h#x6@xW^xpN`4NuNb@@p4xlHTW*en92%#~)SGQlIC= zw)Ss%`d3{1)TWx$;^N}fx({P_Zr0b++o$sK>$ZDrlcFctaVXYwo{)}Ty4&}r3O6@5 z`>wn1xEbb6{}Qp}8CQdT)!uujUcGuXU-#JVv$5I - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + - + y="-62.000004" + transform="rotate(90)" + inkscape:path-effect="#path-effect2895" + d="m 43,-62.000004 c 1.656881,0 3,1.343146 3,3 V -5 c 0,1.6568542 -1.343146,3 -3,3 -1.656881,0 -3,-1.3431458 -3,-3 v -54.000004 c 0,-1.656854 1.343146,-3 3,-3 z" + sodipodi:type="rect" /> From 27cb53cc44394395e481b5da2b90f7300b19e7e6 Mon Sep 17 00:00:00 2001 From: Pablo Gil Date: Mon, 25 Apr 2022 21:16:16 +0200 Subject: [PATCH 102/114] Icon track tool (#1901) * initial icon design * Dark SVG and all PNGs --- .../png/track-tool.128.disabled.png | Bin 0 -> 900 bytes .../style/olive-dark/png/track-tool.128.png | Bin 0 -> 895 bytes .../olive-dark/png/track-tool.16.disabled.png | Bin 0 -> 515 bytes app/ui/style/olive-dark/png/track-tool.16.png | Bin 0 -> 360 bytes .../olive-dark/png/track-tool.32.disabled.png | Bin 0 -> 534 bytes app/ui/style/olive-dark/png/track-tool.32.png | Bin 0 -> 375 bytes .../olive-dark/png/track-tool.64.disabled.png | Bin 0 -> 620 bytes app/ui/style/olive-dark/png/track-tool.64.png | Bin 0 -> 525 bytes app/ui/style/olive-dark/svg/track-tool.svg | 208 ++++++++++++++++++ .../png/track-tool.128.disabled.png | Bin 0 -> 969 bytes .../style/olive-light/png/track-tool.128.png | Bin 0 -> 985 bytes .../png/track-tool.16.disabled.png | Bin 0 -> 520 bytes .../style/olive-light/png/track-tool.16.png | Bin 0 -> 374 bytes .../png/track-tool.32.disabled.png | Bin 0 -> 538 bytes .../style/olive-light/png/track-tool.32.png | Bin 0 -> 376 bytes .../png/track-tool.64.disabled.png | Bin 0 -> 643 bytes .../style/olive-light/png/track-tool.64.png | Bin 0 -> 564 bytes app/ui/style/olive-light/svg/track-tool.svg | 208 ++++++++++++++++++ 18 files changed, 416 insertions(+) create mode 100644 app/ui/style/olive-dark/png/track-tool.128.disabled.png create mode 100644 app/ui/style/olive-dark/png/track-tool.128.png create mode 100644 app/ui/style/olive-dark/png/track-tool.16.disabled.png create mode 100644 app/ui/style/olive-dark/png/track-tool.16.png create mode 100644 app/ui/style/olive-dark/png/track-tool.32.disabled.png create mode 100644 app/ui/style/olive-dark/png/track-tool.32.png create mode 100644 app/ui/style/olive-dark/png/track-tool.64.disabled.png create mode 100644 app/ui/style/olive-dark/png/track-tool.64.png create mode 100644 app/ui/style/olive-dark/svg/track-tool.svg create mode 100644 app/ui/style/olive-light/png/track-tool.128.disabled.png create mode 100644 app/ui/style/olive-light/png/track-tool.128.png create mode 100644 app/ui/style/olive-light/png/track-tool.16.disabled.png create mode 100644 app/ui/style/olive-light/png/track-tool.16.png create mode 100644 app/ui/style/olive-light/png/track-tool.32.disabled.png create mode 100644 app/ui/style/olive-light/png/track-tool.32.png create mode 100644 app/ui/style/olive-light/png/track-tool.64.disabled.png create mode 100644 app/ui/style/olive-light/png/track-tool.64.png create mode 100644 app/ui/style/olive-light/svg/track-tool.svg diff --git a/app/ui/style/olive-dark/png/track-tool.128.disabled.png b/app/ui/style/olive-dark/png/track-tool.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..b1e9aad3a709566f6b59ef63d8239691fbd35f05 GIT binary patch literal 900 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_Gc`jqPo_iPK`_q42+*WT^vIyZoQpzFpJ4ifVKL& zKu37<{s;f-`}S{mQOex7!?GoVgR%4OlALX?mP~)>`*wrE=QkXJk;aF=>z|g`edCy# zo7FYmbB4z?mpzQpN~r9r&3Uo+Z=)sO;pno7r#HtPOS|2F<4B$7{Hw2-cBkF`AF^S! z@CT>&&-AvHGR=Fr_m1nYD}DQGUb#H9PFSkZz~``-!HS`m=>>xc*8=7XSOtnj0}4(v zeTY*}SoXb0e0?dC-KH3iRe8_l^J}V)ThwRFF7NrwGz(71{XJW+TzdXTD^|-foHtqg!k*+g z;uluO{5-l8!~pYvgxH0>$$R#_F0?+T1Oh@=UamT1Py!az_hE-3Pp`_0H8B_Yhb;sYn={mvufpKn0 z+79MLS9F0XLZrksqQtSZBqP6w!8fs}Br{JTsI)jczij*IGc$qmsv!B4#FA92rSNz6;nkIzib&x@O{F#)KZ!PC{xWt~$(6971{Rxbbm literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/track-tool.128.png b/app/ui/style/olive-dark/png/track-tool.128.png new file mode 100644 index 0000000000000000000000000000000000000000..f3901941e76a0649e0b13b216bd2f21d6437088c GIT binary patch literal 895 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSoCO|{#S9Fx?I6t9|MX)jP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IXpdt~FBFEB_jQk=7-^8Ml%shpl z(&Fs=vhAnO%mm6CLkuY`N={|SC@Cqh($`PU&&|!xE7mK|%+AbBP036I8K)28>4zld zrRT?ICgxt zCX6!oLaqA+WiIQTJf0f)ugC7mw(E!G)BeA^_4-Xbzx+R;!}agfPF{ager@o`yKc0^sRaSZi}ytD?^^J{M~0}A3reMQG2)Sj@rD3D-*VN{?^#una*(_ z_fg%f+((j31+#a|Pn%uQ#!z!*&HQKCw$2PvCm0^^Fq|Wj$ZG?czWk=zJVgee;hEde z4DTOqAekp{%C16|i>9;Ynv=}axs{`);>=YH9{ouZ|E*d2kiRuchsa0( zN7fE(X5HR<7U%#`hSc5L@0?qj$<&bZJrC%BJKw5)tjztsYp%BEq>>NfL3#E6^Zq;J Q0@FQ%r>mdKI;Vst012>m?*IS* literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/track-tool.16.disabled.png b/app/ui/style/olive-dark/png/track-tool.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..bd3c9bf7e7d8ce17d71f7394d7d733b5627c86de GIT binary patch literal 515 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlG5f#<7{O$8V4=7aR>EaloalUtgBUgg~4~zOz z4%=??`w#xxKjuENxuT0*bz$y-cPlw}zcgATZ0xi;`rP-4kr6MK*0hN%VZ5(qVsgW* zSmEH*?!d?}bFU8<=jCW5?op|G(zaq6-;}9rTNTUrOtYNd$Yy!SZW1eH-{*RFYaPSl zYZ7MDCd*m?Z5JtVjVN&}Ey>6)V(?8YD#^@K2r4bk&M(`3`pitAyeddOC9x#cD!C{X zNHG{07#ZmrnCKcAh8P)InV4Fcnrj;vSQ!|E?KeAwq9HdwB{QuOw+8h`eRV($k{}y` z^V3So6N^$A%FE03GV`*FlM@S4_413-XTP(N0xB|wC@L*VPG!g_DJihh*H6yR&CSm% u)+^7<&dg0s$xH+(*9Y~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesC}BJi(`mI@6t(zTug={F85vbHgDCbkn&Gbop(BHPuGSU6@4Fc zw?vpFKG)}4BKgn9>0hwRn?~V)4^`f~{CQoENbXQM#1ML^FiRw1GSB7Nx(=~{7tZ80 zN^kfryZm|A>7q+_Iy%@5R5pq3_!c&u^YC|P{+W06SA`p>Z5FNg`mdKI;Vst03xi0Y5)KL literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/track-tool.32.disabled.png b/app/ui/style/olive-dark/png/track-tool.32.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..4600502574fbc0f0d42ce5df494505a35a4266f1 GIT binary patch literal 534 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yZDynOho>zjC2i5bd3x{j0~+zOs!1KwG9lc3=G2dn;k;Y zkei>9nO2EggZiVsI-mwgkPX54X(i=}MX3zs<>h*rdD+Fui3O>8`9~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesC}uYi(^Pc>)UA?c@G=#u=KM{N;C>9J0T{iIPdiCh}JtUYkzKV zxnc05cNTl;)rSwCNI0zh%DkuX_<`H3GtRzQ&7jk4pC5Vl&DQW4|MHJKXYgNdP}%xI z#erGF@q4&v0$+p1f&33=&-|DX-f?XUlfbIXqs$9u?d$0fO3+_8D~uuN@^`=UTGPVT za}|VafA{L^rQKb3udZgAGmYg%?9q3xLK*vBe3P@f%bNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$fPL`8M2l3X`V0Sevrba4#Hxc7F3HD9xV0PFFN zI}IWe7v1?Ex4`5f%R&WKSF5tr&r53VU0MD0M(g*?hxauZvX4(~ynJx4c-pZ|X)Jj$ zF5-Kp7w%ucoFE{}|9nM)u*I*B_gm&#-@NFllfcLwksutA@^`*vW2Blu**nG=4n}?Q zKATocem0)6!eQ==WX8gzzVt>5!{bbkj{H%)e1S=9Lj&tK0rh7Q4s&Mw-f*V#ri7vH z?nhVjEYt($*Bp*5aCyDX;tuO`mRJ9GK9m2%y=)2G`bRqQj+n<6Ey5haeLB^mie48Dm)C7F2&L8Zmn`DNQrpP31iR|UzZB$lLF zB^RXvDF!10BO_e{6I~<25FanMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq~K5)5S5QV$R!H8-1M}1zgf~yZIJ~uWC@!Xy{PlFi;G=5gWk0 zjHSt+>5}WVqjUa5%$WX%+i&$x{oPkR9@YonZ%>WXQ@QKCYhp>Os#WjaC3BZ7U-hei zt(Qqo%<_j(ivJGh>8;%G4nPXmlKqKKfAM=e}%-0TAe*U^QwEy{suuI0WDlGy|>92lF zJzR2M?YzK+s@XQq4zF`R^&Ah_K7V@KnM&SEj2Wng9%zwVyZxjw%a(g;>-q0mP0X3> z%%Nz~`ijf{^{-tQViR}2e(hA=`gYxV?z^JL%uiu6p+Ifh?y~FGTi + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/png/track-tool.128.disabled.png b/app/ui/style/olive-light/png/track-tool.128.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..b96770b4cf68e6c5e3521b386c390b5b3b1c55c5 GIT binary patch literal 969 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDy)vIg-4nJ$hLzpWB=2SsX#&Y5>H=O_Gc`jqPiA6-WPTNHCcGNIEGZ*dOK%t7E_{t>+{d* z0=hg>IXag(6yN{X;fzoX%VX{>m}H2B;9 z8QWfM?Dblod2u6O%RQ5+wO^i}pB=!+Z~pXR)t3Tym-Vx5-roLw%D4CZnX4;Lne3Zc zdOBfKjLAOdZQ|9oerEe-n(obdW1C#Q{r=_0bCx8Cs4cj2>F^wuwv+CxxkpA(!l4S3{*1fuJ^@;^*Ri% z4H$i0&lhn$)%Izqy>NKW5hEXm`nXH6%uA)t?M=_w&#O0Ucc^5J@sQEepkXha_oPQN#*eyKr(j!m7M)R!&oQ5 z47<;^8N|F|CPUG?_BP0Sowqxl+^vL zZamClFgN~x+yetfpXbx_r5+=K25u?#&~tt-dW<{!LtG+QbHMZKd&Mn$7%u+oy}|v4 z^^Ug8W+3-~rS<+-Z@3ioTIGZ8&f9kDCR-pdS&5XmMwB>~mSp4?G597Hm1O2A1eF$N z=a+3ieP$+5UKJ#tl30>zm0Xkxq!^40jEr;*OmvM5LyQcqOiZmz&9n^+tPBi3oUkoJ z(U6;;l9^VCTSMd2)>A+Yk{}y`^V3So6N^$A%FE03GV`*FlM@S4_413-XTP(N0xB|w zC@L*VPG!g_DJihh*H6yR&CSm%)+^7<&dg0s$xH+(*9Y4zld zrRT?ICgEaktG3V`_jaeaqBCQYiiU_7VBx7DF~>n}Wh1$+IJ5B$|GPFd=-c(z zU%TH}S24OAar~_9Gc{;l>irAc4wq~m3%E~`O9!$SOffoXapa=!kErYSm=anT&ImSG zG8wotJmWYZ!#G2kp_nD152xVHTh0q#_c;5^O_vX-*7y>AOtDX;_WZtu-^2>;{Nak9 zznT99tHE5qeidD#zCxu;!`Wx;mfR1lF3it=zi>(U(kXwhv0Lu=!C1XFMz22Ye$no4 zk8a+)`SaYlbH~@cuJf!?cv0)ULhE?4U=qmmz_331q>_d&s6K+)&F~x!re;9K-D+xjebT%m3#m zu-ra!dt2u09lJ#DNZmeiy+1bz=5T?H57##)-+s6ERoS}PSq#bd-`(9Z_w_RIhSO#5 zF93z^2|McD-s^mOXI@r+%gvnc*R~bk{lZjm>)qPi=eu6AKG<^i^_QJ|p7mN1JBf)X zq$pi&EAnc~-P^a%l?GR9TuIx#eH+l;Z(=|bL1LG=52Wrc&#=Dk`*pta@qKr9X9Ag} l+7&&w_vSojVqp05oj)j7AY*;bN>`9qJYD@<);T3K0RYKLvBv-a literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/track-tool.16.disabled.png b/app/ui/style/olive-light/png/track-tool.16.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..7cbeecef8f572b859d36b9e216d3508120cf6409 GIT binary patch literal 520 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4O z;1OBOz`(o#gc;S3@UI05vX^-Jy0SlG5f#-n%l`a#KTxRL)5S4F<9zRgy<80jJT1iw zIp!WcyU_o^@BKZ^n@hx&7Yj(=5_#o&a^n2Q&a(`JFLivMcwZ~wp_ZT5$#~Y6Ct_Hu znV+%EWBQ>z{ZHsk-`OtzIjS{czuab7+!uGlL0xRc;|(hUr5_zy=$6}YcBMk)2i`3H zeXehV>_r_^6KZoy?g5=3QsNp>;#gXekzd5%n^;tmnWqp`TAZC08-nxGO3D+9QW?t2%k?tzvWt@w3sUv+i_&MmvylQSGKMHBElN&h$S5f(u+rC0 z&d<%w&nwm|&&~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesC|j2i(`mI@6t(*Tuz1p&XYI(=hI{VXtmC!vqEpX{CcI102}vC z?${Uqml`KbyR0I6%f0;mBpVMSmPudMY&~~>v(qPymm;l<2hK<}%x9XsH*?waUAB`qHDK2k*ieej9k0O?rOGlKb$1-;Szp5AE;2qP-)%NoDp- z+kdePG7IlGm#k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5n0T@z@7-gj8hNq*aj42FY)wsWq-yZDynNP^X052P^i<>#WBR=_|qvHc^eFPSnlUc zY-;-3zG%S-34ce|97{vT6GHJ(=S~Ls@%y+nfCZs(^iZoU0uZO)br zj0I2McFnzbgq`91o^?~}wCfdLbGjI5X`EcnNW}ZS& zX>oRb+4j?CW&-6^LGmeyC8<`)MX5lF!N|bKNY}tb*T^u$$k58f)XLOE+rYrez#u(b zCmuyZZhlH;S|x4`Vq8-m12ss3YzWRzD=AMbN@XZ7FW1Y=%Pvk%EJ)SMFG`>N&PEET z$QYuiv?w{1A)}~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesC}8Ii(^Pc>)UA?c^eFPSnhjla1Tpn-eAggR=ZUzY%_J*%_qf<2x&+QjCTYJDDW&uaa z;=kLy8afs=x}-f@{n>B1y$Wx{@hv~vt{JX9$#{9jKVN~J4!oCVh_Tu%TfTg$=<2BT zF5cQ@YBly3TD#A&%lzgctX07)2y`)nr>mdKI;Vst E0Ha%pGynhq literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/track-tool.64.disabled.png b/app/ui/style/olive-light/png/track-tool.64.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..425f6805356d084a775a2b717e1efe382b740736 GIT binary patch literal 643 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Sk?NMQuI$fPL`8MYWxkx%1PXofba4#Hxc7F3A=e=X5tnrH z2v+Id)&=Sx{vH1y!j>D?ds#V-AruQDa`Od;Jvj;gvhGB^bP`Cxvy&9{eXss4ZFyE1qC%#;{8Jsg-8 zJG|faKU4U{o^$*q#VifGjvjp|_NyRnYutXdBmV_%G?XVTi@afN_<8#QOT%Ku=STji zu3yNaqQJ=M^Kj0LoejlF%b2{*I8{u(EINBvf}3A>&Z{QLnX!iNn{t_6o;0^M{(m4_ z187l#9Mj90{bdKu8lOBly*pvDL(-?vO}dA;e@(D{*?nf_KcMeLN?apK97{_w@{1UJ z6N^eR^Av(gi?j2~wx2#T6DY3=l21u2NwrEYN(E93Mg~Skx&|h?Mus6qhE^t~R;H%f z1_o9J1_u??U!!Qq%}>cptHiBgL+$)Bu8ABA67A2=LWR#Q?Sn2C0=jZ0;=N0RfXJ%*Srlw>jf|Tonc={oUdFlD_ YnaTNiaq~4M0JSrCy85}Sb4q9e0G4#)`Tzg` literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/track-tool.64.png b/app/ui/style/olive-light/png/track-tool.64.png new file mode 100644 index 0000000000000000000000000000000000000000..672e0fab25bff475a46488de1ac8fb1e7ab962db GIT binary patch literal 564 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq^l})5S5QV$R!HhFOOlL|oEy=cHM8?hv$WJSC%Yu>1of&rbIb zvUhGT_Yf}O6AaB_VQPGODs8pK6Md^I;Y#$y)I*jV^~u; zt|cxoFl?;n?aiOfY|{z#tpn1IGHmt^yd&eKwV?^<_0$JmKOG3cmo{U_U%+fSbElvnfI>)Thz zt#ViGIETVZv&icT$Yw*Vb71LRa{Gw{BT&)o^^RLl0*$!Tx>dAq+t;m!ZgIKa{uQ+_ zuQfTRcI}4khrYOBH{wIumfg?Rt`~h3W^wG=b*^mfHDzIUIK_iLX4ZQ~Ki>$9ECx?k KKbLh*2~7Z$0^<$< literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/svg/track-tool.svg b/app/ui/style/olive-light/svg/track-tool.svg new file mode 100644 index 000000000..68fb8ec52 --- /dev/null +++ b/app/ui/style/olive-light/svg/track-tool.svg @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + From fe7444e762b6635c253a1f4d16f03c2ce78b5b8c Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 25 Apr 2022 12:40:55 -0700 Subject: [PATCH 103/114] implemented underline, strikethrough, trackselect, and smallcaps icons --- app/ui/icons/icons.cpp | 6 ++++++ app/ui/icons/icons.h | 3 +++ app/widget/toolbar/toolbar.cpp | 2 +- app/widget/viewer/viewertexteditor.cpp | 5 +++-- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/ui/icons/icons.cpp b/app/ui/icons/icons.cpp index 5c16000a5..cc79d834a 100644 --- a/app/ui/icons/icons.cpp +++ b/app/ui/icons/icons.cpp @@ -55,6 +55,7 @@ QIcon icon::ToolSlip; QIcon icon::ToolSlide; QIcon icon::ToolHand; QIcon icon::ToolTransition; +QIcon icon::ToolTrackSelect; QIcon icon::Folder; QIcon icon::Sequence; QIcon icon::Video; @@ -68,6 +69,8 @@ QIcon icon::TriRight; QIcon icon::TextBold; QIcon icon::TextItalic; QIcon icon::TextUnderline; +QIcon icon::TextStrikethrough; +QIcon icon::TextSmallCaps; QIcon icon::TextAlignLeft; QIcon icon::TextAlignRight; QIcon icon::TextAlignCenter; @@ -116,6 +119,7 @@ void icon::LoadAll(const QString& theme) ToolSlide = Create(theme, "slide"); ToolHand = Create(theme, "hand"); ToolTransition = Create(theme, "transition-tool"); + ToolTrackSelect = Create(theme, "track-tool"); Folder = Create(theme, "folder"); Sequence = Create(theme, "sequence"); @@ -133,6 +137,8 @@ void icon::LoadAll(const QString& theme) TextBold = Create(theme, "text-bold"); TextItalic = Create(theme, "text-italic"); TextUnderline = Create(theme, "text-underline"); + TextStrikethrough = Create(theme, "text-strikethrough"); + TextSmallCaps = Create(theme, "text-small-caps"); TextAlignLeft = Create(theme, "align-left"); TextAlignRight = Create(theme, "align-right"); TextAlignCenter = Create(theme, "align-center"); diff --git a/app/ui/icons/icons.h b/app/ui/icons/icons.h index c3e330685..987ab2b3b 100644 --- a/app/ui/icons/icons.h +++ b/app/ui/icons/icons.h @@ -57,6 +57,7 @@ extern QIcon ToolSlip; extern QIcon ToolSlide; extern QIcon ToolHand; extern QIcon ToolTransition; +extern QIcon ToolTrackSelect; // Project Icons extern QIcon Folder; @@ -78,6 +79,8 @@ extern QIcon TriRight; extern QIcon TextBold; extern QIcon TextItalic; extern QIcon TextUnderline; +extern QIcon TextStrikethrough; +extern QIcon TextSmallCaps; extern QIcon TextAlignLeft; extern QIcon TextAlignRight; extern QIcon TextAlignCenter; diff --git a/app/widget/toolbar/toolbar.cpp b/app/widget/toolbar/toolbar.cpp index dd30d4372..ddce86c7a 100644 --- a/app/widget/toolbar/toolbar.cpp +++ b/app/widget/toolbar/toolbar.cpp @@ -126,7 +126,7 @@ void Toolbar::Retranslate() void Toolbar::UpdateIcons() { btn_pointer_tool_->setIcon(icon::ToolPointer); - btn_trackselect_tool_->setIcon(icon::TriRight); // FIXME: Procure real icon + btn_trackselect_tool_->setIcon(icon::ToolTrackSelect); btn_edit_tool_->setIcon(icon::ToolEdit); btn_ripple_tool_->setIcon(icon::ToolRipple); btn_rolling_tool_->setIcon(icon::ToolRolling); diff --git a/app/widget/viewer/viewertexteditor.cpp b/app/widget/viewer/viewertexteditor.cpp index a3480a67c..cdcc769ee 100644 --- a/app/widget/viewer/viewertexteditor.cpp +++ b/app/widget/viewer/viewertexteditor.cpp @@ -359,7 +359,7 @@ ViewerTextEditorToolBar::ViewerTextEditorToolBar(QWidget *parent) : strikethrough_btn_ = new QPushButton(); connect(strikethrough_btn_, &QPushButton::clicked, this, &ViewerTextEditorToolBar::StrikethroughChanged); strikethrough_btn_->setCheckable(true); - strikethrough_btn_->setText(tr("S")); // FIXME: Source icon + strikethrough_btn_->setIcon(icon::TextStrikethrough); basic_layout->addWidget(strikethrough_btn_); basic_layout->addWidget(QtUtils::CreateVerticalLine()); @@ -441,7 +441,8 @@ ViewerTextEditorToolBar::ViewerTextEditorToolBar(QWidget *parent) : connect(line_height_slider_, &FloatSlider::ValueChanged, this, &ViewerTextEditorToolBar::LineHeightChanged); advanced_layout->addWidget(line_height_slider_); - small_caps_btn_ = new QPushButton(tr("Small Caps")); // FIXME: Procure icon + small_caps_btn_ = new QPushButton(); + small_caps_btn_->setIcon(icon::TextSmallCaps); small_caps_btn_->setCheckable(true); connect(small_caps_btn_, &QPushButton::clicked, this, &ViewerTextEditorToolBar::SmallCapsChanged); advanced_layout->addWidget(small_caps_btn_); From fb53931f6816bfb1a4ee536fcf6dcf0c2f5cb1a4 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 25 Apr 2022 13:16:27 -0700 Subject: [PATCH 104/114] implement "type" for xml node data --- app/node/nodecopypaste.cpp | 4 ++-- app/node/nodecopypaste.h | 7 ++++++- app/node/project/serializer/serializer.cpp | 18 +++++++++--------- app/node/project/serializer/serializer.h | 8 ++++---- app/task/project/load/load.cpp | 2 +- app/task/project/save/save.cpp | 2 +- app/widget/nodeview/nodeview.cpp | 1 + app/widget/timelinewidget/timelinewidget.cpp | 1 + 8 files changed, 25 insertions(+), 18 deletions(-) diff --git a/app/node/nodecopypaste.cpp b/app/node/nodecopypaste.cpp index 9b4aec472..7741f9940 100644 --- a/app/node/nodecopypaste.cpp +++ b/app/node/nodecopypaste.cpp @@ -51,7 +51,7 @@ void NodeCopyPasteService::CopyNodesToClipboard(QVector nodes, void *use CopyNodesToClipboardCallback(nodes, &data, userdata); - ProjectSerializer::Save(&writer, data); + ProjectSerializer::Save(&writer, data, type_); Core::CopyStringToClipboard(copy_str); } @@ -66,7 +66,7 @@ void NodeCopyPasteService::PasteNodesFromClipboard(void *userdata) QXmlStreamReader reader(clipboard); Project temp; - ProjectSerializer::Result res = ProjectSerializer::Load(&temp, &reader); + ProjectSerializer::Result res = ProjectSerializer::Load(&temp, &reader, type_); if (res.code() != ProjectSerializer::kSuccess) { return; diff --git a/app/node/nodecopypaste.h b/app/node/nodecopypaste.h index 28c53bed9..eaf3c2b86 100644 --- a/app/node/nodecopypaste.h +++ b/app/node/nodecopypaste.h @@ -34,7 +34,9 @@ namespace olive { class NodeCopyPasteService { public: - NodeCopyPasteService() = default; + NodeCopyPasteService(const QString &type) : + type_(type) + {} protected: void CopyNodesToClipboard(QVector nodes, void* userdata = nullptr); @@ -45,6 +47,9 @@ protected: virtual void PasteNodesToClipboardCallback(const QVector &nodes, const ProjectSerializer::LoadData &load_data, void *userdata){} +private: + QString type_; + }; } diff --git a/app/node/project/serializer/serializer.cpp b/app/node/project/serializer/serializer.cpp index 91164db0e..ca2bee88e 100644 --- a/app/node/project/serializer/serializer.cpp +++ b/app/node/project/serializer/serializer.cpp @@ -55,14 +55,14 @@ void ProjectSerializer::Destroy() instances_.clear(); } -ProjectSerializer::Result ProjectSerializer::Load(Project *project, const QString &filename) +ProjectSerializer::Result ProjectSerializer::Load(Project *project, const QString &filename, const QString &type) { QFile project_file(filename); if (project_file.open(QFile::ReadOnly | QFile::Text)) { QXmlStreamReader reader(&project_file); - Result inner_result = Load(project, &reader); + Result inner_result = Load(project, &reader, type); project_file.close(); @@ -82,13 +82,13 @@ ProjectSerializer::Result ProjectSerializer::Load(Project *project, const QStrin } } -ProjectSerializer::Result ProjectSerializer::Load(Project *project, QXmlStreamReader *reader) +ProjectSerializer::Result ProjectSerializer::Load(Project *project, QXmlStreamReader *reader, const QString &type) { // Determine project version uint version = 0; while (!version && XMLReadNextStartElement(reader)) { - if (reader->name() == QStringLiteral("olive") || reader->name() == QStringLiteral("project")) { + if (reader->name() == QStringLiteral("olive") || reader->name() == type) { while(!version && XMLReadNextStartElement(reader)) { if (reader->name() == QStringLiteral("version")) { version = reader->readElementText().toUInt(); @@ -135,7 +135,7 @@ ProjectSerializer::Result ProjectSerializer::Load(Project *project, QXmlStreamRe } } -ProjectSerializer::Result ProjectSerializer::Save(const SaveData &data) +ProjectSerializer::Result ProjectSerializer::Save(const SaveData &data, const QString &type) { QString temp_save = FileFunctions::GetSafeTemporaryFilename(data.GetFilename()); @@ -144,7 +144,7 @@ ProjectSerializer::Result ProjectSerializer::Save(const SaveData &data) if (project_file.open(QFile::WriteOnly | QFile::Text)) { QXmlStreamWriter writer(&project_file); - Result inner_result = Save(&writer, data); + Result inner_result = Save(&writer, data, type); project_file.close(); @@ -167,7 +167,7 @@ ProjectSerializer::Result ProjectSerializer::Save(const SaveData &data) } } -ProjectSerializer::Result ProjectSerializer::Save(QXmlStreamWriter *writer, const SaveData &data) +ProjectSerializer::Result ProjectSerializer::Save(QXmlStreamWriter *writer, const SaveData &data, const QString &type) { writer->setAutoFormatting(true); @@ -187,11 +187,11 @@ ProjectSerializer::Result ProjectSerializer::Save(QXmlStreamWriter *writer, cons writer->writeTextElement("url", data.GetFilename()); } - writer->writeStartElement(QStringLiteral("project")); + writer->writeStartElement(type); serializer->Save(writer, data, nullptr); - writer->writeEndElement(); // project + writer->writeEndElement(); // [type] writer->writeEndElement(); // olive diff --git a/app/node/project/serializer/serializer.h b/app/node/project/serializer/serializer.h index 0417f440c..58f9505cc 100644 --- a/app/node/project/serializer/serializer.h +++ b/app/node/project/serializer/serializer.h @@ -137,11 +137,11 @@ public: static void Destroy(); - static Result Load(Project *project, const QString &filename); - static Result Load(Project *project, QXmlStreamReader *read_device); + static Result Load(Project *project, const QString &filename, const QString &type); + static Result Load(Project *project, QXmlStreamReader *read_device, const QString &type); - static Result Save(const SaveData &data); - static Result Save(QXmlStreamWriter *write_device, const SaveData &data); + static Result Save(const SaveData &data, const QString &type); + static Result Save(QXmlStreamWriter *write_device, const SaveData &data, const QString &type); protected: virtual LoadData Load(Project *project, QXmlStreamReader *reader, void *reserved) const = 0; diff --git a/app/task/project/load/load.cpp b/app/task/project/load/load.cpp index 606f53e37..f1878dec9 100644 --- a/app/task/project/load/load.cpp +++ b/app/task/project/load/load.cpp @@ -37,7 +37,7 @@ bool ProjectLoadTask::Run() project_->set_filename(GetFilename()); - ProjectSerializer::Result result = ProjectSerializer::Load(project_, GetFilename()); + ProjectSerializer::Result result = ProjectSerializer::Load(project_, GetFilename(), QStringLiteral("project")); switch (result.code()) { case ProjectSerializer::kSuccess: diff --git a/app/task/project/save/save.cpp b/app/task/project/save/save.cpp index 1f5742bcf..3d4c5f6e5 100644 --- a/app/task/project/save/save.cpp +++ b/app/task/project/save/save.cpp @@ -42,7 +42,7 @@ bool ProjectSaveTask::Run() ProjectSerializer::SaveData data(project_, using_filename); - ProjectSerializer::Result result = ProjectSerializer::Save(data); + ProjectSerializer::Result result = ProjectSerializer::Save(data, QStringLiteral("project")); bool success = false; diff --git a/app/widget/nodeview/nodeview.cpp b/app/widget/nodeview/nodeview.cpp index 9105d8cb1..2f4041123 100644 --- a/app/widget/nodeview/nodeview.cpp +++ b/app/widget/nodeview/nodeview.cpp @@ -45,6 +45,7 @@ const double NodeView::kMinimumScale = 0.1; NodeView::NodeView(QWidget *parent) : HandMovableView(parent), + NodeCopyPasteService(QStringLiteral("nodes")), drop_edge_(nullptr), create_edge_(nullptr), create_edge_output_item_(nullptr), diff --git a/app/widget/timelinewidget/timelinewidget.cpp b/app/widget/timelinewidget/timelinewidget.cpp index 547f11cc9..42da36118 100644 --- a/app/widget/timelinewidget/timelinewidget.cpp +++ b/app/widget/timelinewidget/timelinewidget.cpp @@ -60,6 +60,7 @@ namespace olive { TimelineWidget::TimelineWidget(QWidget *parent) : super(true, true, parent), + NodeCopyPasteService(QStringLiteral("timeline")), rubberband_(QRubberBand::Rectangle, this), active_tool_(nullptr), use_audio_time_units_(false), From 4536ed87a58890773f9aa5667c3356159f272ac6 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 25 Apr 2022 14:00:21 -0700 Subject: [PATCH 105/114] nodeparamview: fixed crash caused by closing contexts --- app/widget/nodeparamview/nodeparamview.cpp | 35 ++++++++-------------- app/widget/nodeparamview/nodeparamview.h | 2 -- 2 files changed, 13 insertions(+), 24 deletions(-) diff --git a/app/widget/nodeparamview/nodeparamview.cpp b/app/widget/nodeparamview/nodeparamview.cpp index 2aba90ed7..c299b882b 100644 --- a/app/widget/nodeparamview/nodeparamview.cpp +++ b/app/widget/nodeparamview/nodeparamview.cpp @@ -283,6 +283,16 @@ void NodeParamView::UpdateContexts() void NodeParamView::ItemAboutToBeRemoved(NodeParamViewItem *item) { + if (keyframe_view_) { + for (auto it=item->GetKeyframeConnections().begin(); it!=item->GetKeyframeConnections().end(); it++) { + for (auto jt=it->begin(); jt!=it->end(); jt++) { + for (auto kt=jt->begin(); kt!=jt->end(); kt++) { + keyframe_view_->RemoveKeyframesOfTrack(*kt); + } + } + } + } + if (focused_node_ == item) { focused_node_ = nullptr; emit FocusedNodeChanged(nullptr); @@ -455,27 +465,6 @@ void NodeParamView::AddNode(Node *n, Node *ctx, NodeParamViewContext *context) } } -void NodeParamView::RemoveNode(Node *n, Node *ctx) -{ - foreach (NodeParamViewContext *ctx_item, context_items_) { - NodeParamViewItem *item = ctx_item->GetItem(n, ctx); - - if (item) { - if (keyframe_view_) { - for (auto it=item->GetKeyframeConnections().begin(); it!=item->GetKeyframeConnections().end(); it++) { - for (auto jt=it->begin(); jt!=it->end(); jt++) { - for (auto kt=jt->begin(); kt!=jt->end(); kt++) { - keyframe_view_->RemoveKeyframesOfTrack(*kt); - } - } - } - } - } - - ctx_item->RemoveNode(n, ctx); - } -} - int GetDistanceBetweenNodes(Node *start, Node *end) { if (start == end) { @@ -675,7 +664,9 @@ void NodeParamView::NodeRemovedFromContext(Node *n) { Node *ctx = static_cast(sender()); - RemoveNode(n, ctx); + foreach (NodeParamViewContext *ctx_item, context_items_) { + ctx_item->RemoveNode(n, ctx); + } if (keyframe_view_) { QueueKeyframePositionUpdate(); diff --git a/app/widget/nodeparamview/nodeparamview.h b/app/widget/nodeparamview/nodeparamview.h index 9a9207cb7..8061d5b1a 100644 --- a/app/widget/nodeparamview/nodeparamview.h +++ b/app/widget/nodeparamview/nodeparamview.h @@ -99,8 +99,6 @@ private: void AddNode(Node* n, Node *ctx, NodeParamViewContext *context); - void RemoveNode(Node *n, Node *ctx); - void SortItemsInContext(NodeParamViewContext *context); NodeParamViewContext *GetContextItemFromContext(Node *context); From abb84aa2ca061763bf15f822f918981f888b5c29 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 25 Apr 2022 14:26:07 -0700 Subject: [PATCH 106/114] rational: assert when limits are used for calculations These will necessarily result in overflows or underflows so I've attempted to weed this behavior out while adding asserts in case there are still usages I haven't found --- app/common/rational.cpp | 8 ++++++++ app/common/rational.h | 2 +- app/common/timerange.cpp | 7 ++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/app/common/rational.cpp b/app/common/rational.cpp index 34d627572..e7020f92b 100644 --- a/app/common/rational.cpp +++ b/app/common/rational.cpp @@ -186,6 +186,8 @@ const rational& rational::operator=(const rational &rhs) const rational& rational::operator+=(const rational &rhs) { + Q_ASSERT(*this != RATIONAL_MIN && *this != RATIONAL_MAX && rhs != RATIONAL_MIN && rhs != RATIONAL_MAX); + if (!isNaN()) { if (rhs.isNaN()) { // Set to NaN @@ -209,6 +211,8 @@ const rational& rational::operator+=(const rational &rhs) const rational& rational::operator-=(const rational &rhs) { + Q_ASSERT(*this != RATIONAL_MIN && *this != RATIONAL_MAX && rhs != RATIONAL_MIN && rhs != RATIONAL_MAX); + if (!isNaN()) { if (rhs.isNaN()) { // Set to NaN @@ -232,6 +236,8 @@ const rational& rational::operator-=(const rational &rhs) const rational& rational::operator/=(const rational &rhs) { + Q_ASSERT(*this != RATIONAL_MIN && *this != RATIONAL_MAX && rhs != RATIONAL_MIN && rhs != RATIONAL_MAX); + if (!isNaN()) { if (rhs.isNaN()) { // Set to NaN @@ -250,6 +256,8 @@ const rational& rational::operator/=(const rational &rhs) const rational& rational::operator*=(const rational &rhs) { + Q_ASSERT(*this != RATIONAL_MIN && *this != RATIONAL_MAX && rhs != RATIONAL_MIN && rhs != RATIONAL_MAX); + if (!isNaN()) { if (rhs.isNaN()) { denom_ = 0; diff --git a/app/common/rational.h b/app/common/rational.h index 074f1b864..26f625fc6 100644 --- a/app/common/rational.h +++ b/app/common/rational.h @@ -1,7 +1,7 @@ //Copyright 2015 Adam Quintero //This program is distributed under the terms of the GNU General Public License. -// Adapted by MattKC for the Olive Video Editor (2019) +// Adapted by MattKC for the Olive Video Editor (2019-2022) #ifndef RATIONAL_H #define RATIONAL_H diff --git a/app/common/timerange.cpp b/app/common/timerange.cpp index c352e476d..c4337a7aa 100644 --- a/app/common/timerange.cpp +++ b/app/common/timerange.cpp @@ -44,6 +44,7 @@ const rational &TimeRange::out() const const rational &TimeRange::length() const { + Q_ASSERT(!length_.isNaN()); return length_; } @@ -173,7 +174,11 @@ void TimeRange::normalize() } // Calculate length - length_ = out_ - in_; + if (out_ == RATIONAL_MIN || out_ == RATIONAL_MAX || in_ == RATIONAL_MIN || in_ == RATIONAL_MAX) { + length_ = rational::NaN; + } else { + length_ = out_ - in_; + } } void TimeRangeList::insert(const TimeRangeList &list_to_add) From 45b18f6df2335c20d7503c407587730147b6e0c6 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Tue, 26 Apr 2022 09:04:34 -0700 Subject: [PATCH 107/114] fixed deserializer issue introduced by copy/paste fix --- app/node/project/serializer/serializer.cpp | 89 ++++--- app/node/project/serializer/serializer.h | 2 + .../project/serializer/serializer210528.cpp | 188 +++++++------- .../project/serializer/serializer210907.cpp | 188 +++++++------- .../project/serializer/serializer211228.cpp | 236 +++++++++--------- .../project/serializer/serializer220403.cpp | 236 +++++++++--------- 6 files changed, 464 insertions(+), 475 deletions(-) diff --git a/app/node/project/serializer/serializer.cpp b/app/node/project/serializer/serializer.cpp index ca2bee88e..5f3a3507e 100644 --- a/app/node/project/serializer/serializer.cpp +++ b/app/node/project/serializer/serializer.cpp @@ -86,53 +86,36 @@ ProjectSerializer::Result ProjectSerializer::Load(Project *project, QXmlStreamRe { // Determine project version uint version = 0; + Result res = kUnknownVersion; - while (!version && XMLReadNextStartElement(reader)) { - if (reader->name() == QStringLiteral("olive") || reader->name() == type) { - while(!version && XMLReadNextStartElement(reader)) { + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("olive") + || reader->name() == QStringLiteral("project")) { // 0.1 projects only + + while (XMLReadNextStartElement(reader)) { if (reader->name() == QStringLiteral("version")) { version = reader->readElementText().toUInt(); + } else if (reader->name() == QStringLiteral("url")) { + project->SetSavedURL(reader->readElementText()); + + // HACK for 0.1 projects + if (version == 190219) { + res = LoadWithSerializerVersion(version, project, reader); + } + } else if (reader->name() == type) { + // Found our data + res = LoadWithSerializerVersion(version, project, reader); } else { reader->skipCurrentElement(); } } + } else { reader->skipCurrentElement(); } } - // Failed to find version in file - if (version == 0) { - return kUnknownVersion; - } - - // We should now have the version, if we have a serializer for it, use it to load the project - ProjectSerializer *serializer = nullptr; - - foreach (ProjectSerializer *s, instances_) { - if (version == s->Version()) { - serializer = s; - break; - } else if (version < s->Version()) { - // Assuming the instance list is in order, if the project version is less than any version - // we find, we must not support it anymore - return kProjectTooOld; - } - } - - if (serializer) { - LoadData ld = serializer->Load(project, reader, nullptr); - Result r(kSuccess); - if (reader->hasError()) { - r = Result(kXmlError); - r.SetDetails(reader->errorString()); - } - r.SetLoadData(ld); - return r; - } else { - // Reached the end of the list with no serializer, assume too new - return kProjectTooNew; - } + return res; } ProjectSerializer::Result ProjectSerializer::Save(const SaveData &data, const QString &type) @@ -209,4 +192,40 @@ bool ProjectSerializer::IsCancelled() const return false; } +ProjectSerializer::Result ProjectSerializer::LoadWithSerializerVersion(uint version, Project *project, QXmlStreamReader *reader) +{ + // Failed to find version in file + if (version == 0) { + return kUnknownVersion; + } + + // We should now have the version, if we have a serializer for it, use it to load the project + ProjectSerializer *serializer = nullptr; + + foreach (ProjectSerializer *s, instances_) { + if (version == s->Version()) { + serializer = s; + break; + } else if (version < s->Version()) { + // Assuming the instance list is in order, if the project version is less than any version + // we find, we must not support it anymore + return kProjectTooOld; + } + } + + if (serializer) { + LoadData ld = serializer->Load(project, reader, nullptr); + Result r(kSuccess); + if (reader->hasError()) { + r = Result(kXmlError); + r.SetDetails(reader->errorString()); + } + r.SetLoadData(ld); + return r; + } else { + // Reached the end of the list with no serializer, assume too new + return kProjectTooNew; + } +} + } diff --git a/app/node/project/serializer/serializer.h b/app/node/project/serializer/serializer.h index 58f9505cc..79968ea43 100644 --- a/app/node/project/serializer/serializer.h +++ b/app/node/project/serializer/serializer.h @@ -153,6 +153,8 @@ protected: bool IsCancelled() const; private: + static Result LoadWithSerializerVersion(uint version, Project *project, QXmlStreamReader *reader); + static QVector instances_; }; diff --git a/app/node/project/serializer/serializer210528.cpp b/app/node/project/serializer/serializer210528.cpp index 6c9ec058f..73ca85a4e 100644 --- a/app/node/project/serializer/serializer210528.cpp +++ b/app/node/project/serializer/serializer210528.cpp @@ -29,133 +29,125 @@ ProjectSerializer210528::LoadData ProjectSerializer210528::Load(Project *project XMLNodeData xml_node_data; while (XMLReadNextStartElement(reader)) { - if (reader->name() == QStringLiteral("url")) { - project->SetSavedURL(reader->readElementText()); - } else if (reader->name() == QStringLiteral("project")) { + if (reader->name() == QStringLiteral("layout")) { + + // Since the main window's functions have to occur in the GUI thread (and we're likely + // loading in a secondary thread), we load all necessary data into a separate struct so we + // can continue loading and queue it with the main window so it can handle the data + // appropriately in its own thread. + + project->SetLayoutInfo(MainWindowLayoutInfo::fromXml(reader, xml_node_data.node_ptrs)); + + } else if (reader->name() == QStringLiteral("uuid")) { + + project->SetUuid(QUuid::fromString(reader->readElementText())); + + } else if (reader->name() == QStringLiteral("nodes")) { + while (XMLReadNextStartElement(reader)) { - if (reader->name() == QStringLiteral("layout")) { + if (reader->name() == QStringLiteral("node")) { + bool is_root = false; + bool is_cm = false; + bool is_settings = false; + QString id; - // Since the main window's functions have to occur in the GUI thread (and we're likely - // loading in a secondary thread), we load all necessary data into a separate struct so we - // can continue loading and queue it with the main window so it can handle the data - // appropriately in its own thread. - - project->SetLayoutInfo(MainWindowLayoutInfo::fromXml(reader, xml_node_data.node_ptrs)); - - } else if (reader->name() == QStringLiteral("uuid")) { - - project->SetUuid(QUuid::fromString(reader->readElementText())); - - } else if (reader->name() == QStringLiteral("nodes")) { - - while (XMLReadNextStartElement(reader)) { - if (reader->name() == QStringLiteral("node")) { - bool is_root = false; - bool is_cm = false; - bool is_settings = false; - QString id; - - { - XMLAttributeLoop(reader, attr) { - if (attr.name() == QStringLiteral("id")) { - id = attr.value().toString(); - } else if (attr.name() == QStringLiteral("root") && attr.value() == QStringLiteral("1")) { - is_root = true; - } else if (attr.name() == QStringLiteral("cm") && attr.value() == QStringLiteral("1")) { - is_cm = true; - } else if (attr.name() == QStringLiteral("settings") && attr.value() == QStringLiteral("1")) { - is_settings = true; - } - } + { + XMLAttributeLoop(reader, attr) { + if (attr.name() == QStringLiteral("id")) { + id = attr.value().toString(); + } else if (attr.name() == QStringLiteral("root") && attr.value() == QStringLiteral("1")) { + is_root = true; + } else if (attr.name() == QStringLiteral("cm") && attr.value() == QStringLiteral("1")) { + is_cm = true; + } else if (attr.name() == QStringLiteral("settings") && attr.value() == QStringLiteral("1")) { + is_settings = true; } - - if (id.isEmpty()) { - qWarning() << "Failed to load node with empty ID"; - reader->skipCurrentElement(); - } else { - Node* node; - - if (is_root) { - node = project->root(); - } else if (is_cm) { - node = project->color_manager(); - } else if (is_settings) { - node = project->settings(); - } else { - node = NodeFactory::CreateFromID(id); - } - - if (!node) { - qWarning() << "Failed to find node with ID" << id; - reader->skipCurrentElement(); - } else { - LoadNode(node, xml_node_data, reader); - node->setParent(project); - } - } - } else { - reader->skipCurrentElement(); } } - } else if (reader->name() == QStringLiteral("positions")) { + if (id.isEmpty()) { + qWarning() << "Failed to load node with empty ID"; + reader->skipCurrentElement(); + } else { + Node* node; - while (XMLReadNextStartElement(reader)) { + if (is_root) { + node = project->root(); + } else if (is_cm) { + node = project->color_manager(); + } else if (is_settings) { + node = project->settings(); + } else { + node = NodeFactory::CreateFromID(id); + } - if (reader->name() == QStringLiteral("context")) { + if (!node) { + qWarning() << "Failed to find node with ID" << id; + reader->skipCurrentElement(); + } else { + LoadNode(node, xml_node_data, reader); + node->setParent(project); + } + } + } else { + reader->skipCurrentElement(); + } + } - quintptr context_ptr = 0; - XMLAttributeLoop(reader, attr) { - if (attr.name() == QStringLiteral("ptr")) { - context_ptr = attr.value().toULongLong(); - break; - } - } + } else if (reader->name() == QStringLiteral("positions")) { - Node *context = xml_node_data.node_ptrs.value(context_ptr); + while (XMLReadNextStartElement(reader)) { - if (!context) { - qWarning() << "Failed to find pointer for context"; - reader->skipCurrentElement(); - } else { - while (XMLReadNextStartElement(reader)) { - if (reader->name() == QStringLiteral("node")) { - quintptr node_ptr; - Node::Position node_pos; + if (reader->name() == QStringLiteral("context")) { - if (LoadPosition(reader, &node_ptr, &node_pos)) { - Node *node = xml_node_data.node_ptrs.value(node_ptr); + quintptr context_ptr = 0; + XMLAttributeLoop(reader, attr) { + if (attr.name() == QStringLiteral("ptr")) { + context_ptr = attr.value().toULongLong(); + break; + } + } - if (node) { - context->SetNodePositionInContext(node, node_pos); - } else { - qWarning() << "Failed to find pointer for node position"; - reader->skipCurrentElement(); - } - } + Node *context = xml_node_data.node_ptrs.value(context_ptr); + + if (!context) { + qWarning() << "Failed to find pointer for context"; + reader->skipCurrentElement(); + } else { + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("node")) { + quintptr node_ptr; + Node::Position node_pos; + + if (LoadPosition(reader, &node_ptr, &node_pos)) { + Node *node = xml_node_data.node_ptrs.value(node_ptr); + + if (node) { + context->SetNodePositionInContext(node, node_pos); } else { + qWarning() << "Failed to find pointer for node position"; reader->skipCurrentElement(); } } + } else { + reader->skipCurrentElement(); } - - } else { - - reader->skipCurrentElement(); - } - } } else { - // Skip this reader->skipCurrentElement(); } + } + } else { + + // Skip this reader->skipCurrentElement(); + } } diff --git a/app/node/project/serializer/serializer210907.cpp b/app/node/project/serializer/serializer210907.cpp index 870fa0b30..cd23aaea9 100644 --- a/app/node/project/serializer/serializer210907.cpp +++ b/app/node/project/serializer/serializer210907.cpp @@ -29,133 +29,125 @@ ProjectSerializer210907::LoadData ProjectSerializer210907::Load(Project *project XMLNodeData xml_node_data; while (XMLReadNextStartElement(reader)) { - if (reader->name() == QStringLiteral("url")) { - project->SetSavedURL(reader->readElementText()); - } else if (reader->name() == QStringLiteral("project")) { + if (reader->name() == QStringLiteral("layout")) { + + // Since the main window's functions have to occur in the GUI thread (and we're likely + // loading in a secondary thread), we load all necessary data into a separate struct so we + // can continue loading and queue it with the main window so it can handle the data + // appropriately in its own thread. + + project->SetLayoutInfo(MainWindowLayoutInfo::fromXml(reader, xml_node_data.node_ptrs)); + + } else if (reader->name() == QStringLiteral("uuid")) { + + project->SetUuid(QUuid::fromString(reader->readElementText())); + + } else if (reader->name() == QStringLiteral("nodes")) { + while (XMLReadNextStartElement(reader)) { - if (reader->name() == QStringLiteral("layout")) { + if (reader->name() == QStringLiteral("node")) { + bool is_root = false; + bool is_cm = false; + bool is_settings = false; + QString id; - // Since the main window's functions have to occur in the GUI thread (and we're likely - // loading in a secondary thread), we load all necessary data into a separate struct so we - // can continue loading and queue it with the main window so it can handle the data - // appropriately in its own thread. - - project->SetLayoutInfo(MainWindowLayoutInfo::fromXml(reader, xml_node_data.node_ptrs)); - - } else if (reader->name() == QStringLiteral("uuid")) { - - project->SetUuid(QUuid::fromString(reader->readElementText())); - - } else if (reader->name() == QStringLiteral("nodes")) { - - while (XMLReadNextStartElement(reader)) { - if (reader->name() == QStringLiteral("node")) { - bool is_root = false; - bool is_cm = false; - bool is_settings = false; - QString id; - - { - XMLAttributeLoop(reader, attr) { - if (attr.name() == QStringLiteral("id")) { - id = attr.value().toString(); - } else if (attr.name() == QStringLiteral("root") && attr.value() == QStringLiteral("1")) { - is_root = true; - } else if (attr.name() == QStringLiteral("cm") && attr.value() == QStringLiteral("1")) { - is_cm = true; - } else if (attr.name() == QStringLiteral("settings") && attr.value() == QStringLiteral("1")) { - is_settings = true; - } - } + { + XMLAttributeLoop(reader, attr) { + if (attr.name() == QStringLiteral("id")) { + id = attr.value().toString(); + } else if (attr.name() == QStringLiteral("root") && attr.value() == QStringLiteral("1")) { + is_root = true; + } else if (attr.name() == QStringLiteral("cm") && attr.value() == QStringLiteral("1")) { + is_cm = true; + } else if (attr.name() == QStringLiteral("settings") && attr.value() == QStringLiteral("1")) { + is_settings = true; } - - if (id.isEmpty()) { - qWarning() << "Failed to load node with empty ID"; - reader->skipCurrentElement(); - } else { - Node* node; - - if (is_root) { - node = project->root(); - } else if (is_cm) { - node = project->color_manager(); - } else if (is_settings) { - node = project->settings(); - } else { - node = NodeFactory::CreateFromID(id); - } - - if (!node) { - qWarning() << "Failed to find node with ID" << id; - reader->skipCurrentElement(); - } else { - LoadNode(node, xml_node_data, reader); - node->setParent(project); - } - } - } else { - reader->skipCurrentElement(); } } - } else if (reader->name() == QStringLiteral("positions")) { + if (id.isEmpty()) { + qWarning() << "Failed to load node with empty ID"; + reader->skipCurrentElement(); + } else { + Node* node; - while (XMLReadNextStartElement(reader)) { + if (is_root) { + node = project->root(); + } else if (is_cm) { + node = project->color_manager(); + } else if (is_settings) { + node = project->settings(); + } else { + node = NodeFactory::CreateFromID(id); + } - if (reader->name() == QStringLiteral("context")) { + if (!node) { + qWarning() << "Failed to find node with ID" << id; + reader->skipCurrentElement(); + } else { + LoadNode(node, xml_node_data, reader); + node->setParent(project); + } + } + } else { + reader->skipCurrentElement(); + } + } - quintptr context_ptr = 0; - XMLAttributeLoop(reader, attr) { - if (attr.name() == QStringLiteral("ptr")) { - context_ptr = attr.value().toULongLong(); - break; - } - } + } else if (reader->name() == QStringLiteral("positions")) { - Node *context = xml_node_data.node_ptrs.value(context_ptr); + while (XMLReadNextStartElement(reader)) { - if (!context) { - qWarning() << "Failed to find pointer for context"; - reader->skipCurrentElement(); - } else { - while (XMLReadNextStartElement(reader)) { - if (reader->name() == QStringLiteral("node")) { - quintptr node_ptr; - Node::Position node_pos; + if (reader->name() == QStringLiteral("context")) { - if (LoadPosition(reader, &node_ptr, &node_pos)) { - Node *node = xml_node_data.node_ptrs.value(node_ptr); + quintptr context_ptr = 0; + XMLAttributeLoop(reader, attr) { + if (attr.name() == QStringLiteral("ptr")) { + context_ptr = attr.value().toULongLong(); + break; + } + } - if (node) { - context->SetNodePositionInContext(node, node_pos); - } else { - qWarning() << "Failed to find pointer for node position"; - reader->skipCurrentElement(); - } - } + Node *context = xml_node_data.node_ptrs.value(context_ptr); + + if (!context) { + qWarning() << "Failed to find pointer for context"; + reader->skipCurrentElement(); + } else { + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("node")) { + quintptr node_ptr; + Node::Position node_pos; + + if (LoadPosition(reader, &node_ptr, &node_pos)) { + Node *node = xml_node_data.node_ptrs.value(node_ptr); + + if (node) { + context->SetNodePositionInContext(node, node_pos); } else { + qWarning() << "Failed to find pointer for node position"; reader->skipCurrentElement(); } } + } else { + reader->skipCurrentElement(); } - - } else { - - reader->skipCurrentElement(); - } - } } else { - // Skip this reader->skipCurrentElement(); } + } + } else { + + // Skip this reader->skipCurrentElement(); + } } diff --git a/app/node/project/serializer/serializer211228.cpp b/app/node/project/serializer/serializer211228.cpp index fb7c507d3..2faea0a0d 100644 --- a/app/node/project/serializer/serializer211228.cpp +++ b/app/node/project/serializer/serializer211228.cpp @@ -31,157 +31,149 @@ ProjectSerializer211228::LoadData ProjectSerializer211228::Load(Project *project XMLNodeData xml_node_data; while (XMLReadNextStartElement(reader)) { - if (reader->name() == QStringLiteral("url")) { - project->SetSavedURL(reader->readElementText()); - } else if (reader->name() == QStringLiteral("project")) { + if (reader->name() == QStringLiteral("layout")) { + + // Since the main window's functions have to occur in the GUI thread (and we're likely + // loading in a secondary thread), we load all necessary data into a separate struct so we + // can continue loading and queue it with the main window so it can handle the data + // appropriately in its own thread. + + project->SetLayoutInfo(MainWindowLayoutInfo::fromXml(reader, xml_node_data.node_ptrs)); + + } else if (reader->name() == QStringLiteral("uuid")) { + + project->SetUuid(QUuid::fromString(reader->readElementText())); + + } else if (reader->name() == QStringLiteral("nodes")) { + while (XMLReadNextStartElement(reader)) { - if (reader->name() == QStringLiteral("layout")) { + if (reader->name() == QStringLiteral("node")) { + bool is_root = false; + bool is_cm = false; + bool is_settings = false; + QString id; - // Since the main window's functions have to occur in the GUI thread (and we're likely - // loading in a secondary thread), we load all necessary data into a separate struct so we - // can continue loading and queue it with the main window so it can handle the data - // appropriately in its own thread. - - project->SetLayoutInfo(MainWindowLayoutInfo::fromXml(reader, xml_node_data.node_ptrs)); - - } else if (reader->name() == QStringLiteral("uuid")) { - - project->SetUuid(QUuid::fromString(reader->readElementText())); - - } else if (reader->name() == QStringLiteral("nodes")) { - - while (XMLReadNextStartElement(reader)) { - if (reader->name() == QStringLiteral("node")) { - bool is_root = false; - bool is_cm = false; - bool is_settings = false; - QString id; - - { - XMLAttributeLoop(reader, attr) { - if (attr.name() == QStringLiteral("id")) { - id = attr.value().toString(); - } else if (attr.name() == QStringLiteral("root") && attr.value() == QStringLiteral("1")) { - is_root = true; - } else if (attr.name() == QStringLiteral("cm") && attr.value() == QStringLiteral("1")) { - is_cm = true; - } else if (attr.name() == QStringLiteral("settings") && attr.value() == QStringLiteral("1")) { - is_settings = true; - } - } + { + XMLAttributeLoop(reader, attr) { + if (attr.name() == QStringLiteral("id")) { + id = attr.value().toString(); + } else if (attr.name() == QStringLiteral("root") && attr.value() == QStringLiteral("1")) { + is_root = true; + } else if (attr.name() == QStringLiteral("cm") && attr.value() == QStringLiteral("1")) { + is_cm = true; + } else if (attr.name() == QStringLiteral("settings") && attr.value() == QStringLiteral("1")) { + is_settings = true; } - - if (id.isEmpty()) { - qWarning() << "Failed to load node with empty ID"; - reader->skipCurrentElement(); - } else { - Node* node; - - if (is_root) { - node = project->root(); - } else if (is_cm) { - node = project->color_manager(); - } else if (is_settings) { - node = project->settings(); - } else { - node = NodeFactory::CreateFromID(id); - } - - if (!node) { - qWarning() << "Failed to find node with ID" << id; - reader->skipCurrentElement(); - } else { - LoadNode(node, xml_node_data, reader); - node->setParent(project); - } - } - } else { - reader->skipCurrentElement(); } } - } else if (reader->name() == QStringLiteral("positions")) { + if (id.isEmpty()) { + qWarning() << "Failed to load node with empty ID"; + reader->skipCurrentElement(); + } else { + Node* node; - while (XMLReadNextStartElement(reader)) { + if (is_root) { + node = project->root(); + } else if (is_cm) { + node = project->color_manager(); + } else if (is_settings) { + node = project->settings(); + } else { + node = NodeFactory::CreateFromID(id); + } - if (reader->name() == QStringLiteral("context")) { + if (!node) { + qWarning() << "Failed to find node with ID" << id; + reader->skipCurrentElement(); + } else { + LoadNode(node, xml_node_data, reader); + node->setParent(project); + } + } + } else { + reader->skipCurrentElement(); + } + } - quintptr context_ptr = 0; - XMLAttributeLoop(reader, attr) { - if (attr.name() == QStringLiteral("ptr")) { - context_ptr = attr.value().toULongLong(); - break; - } - } + } else if (reader->name() == QStringLiteral("positions")) { - if (context_ptr) { - while (XMLReadNextStartElement(reader)) { - if (reader->name() == QStringLiteral("node")) { - quintptr node_ptr; - Node::Position node_pos; + while (XMLReadNextStartElement(reader)) { - if (LoadPosition(reader, &node_ptr, &node_pos)) { - if (node_ptr) { - positions[context_ptr].insert(node_ptr, node_pos); - } else { - qWarning() << "Failed to find pointer for node position"; - reader->skipCurrentElement(); - } - } + if (reader->name() == QStringLiteral("context")) { + + quintptr context_ptr = 0; + XMLAttributeLoop(reader, attr) { + if (attr.name() == QStringLiteral("ptr")) { + context_ptr = attr.value().toULongLong(); + break; + } + } + + if (context_ptr) { + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("node")) { + quintptr node_ptr; + Node::Position node_pos; + + if (LoadPosition(reader, &node_ptr, &node_pos)) { + if (node_ptr) { + positions[context_ptr].insert(node_ptr, node_pos); } else { + qWarning() << "Failed to find pointer for node position"; reader->skipCurrentElement(); } } } else { - qWarning() << "Attempted to load context with no pointer"; reader->skipCurrentElement(); } - - } else { - - reader->skipCurrentElement(); - - } - - } - - - } else if (reader->name() == QStringLiteral("properties")) { - - while (XMLReadNextStartElement(reader)) { - if (reader->name() == QStringLiteral("node")) { - quintptr ptr = 0; - - XMLAttributeLoop(reader, attr) { - if (attr.name() == QStringLiteral("ptr")) { - ptr = attr.value().toULongLong(); - - // Only attribute we're looking for right now - break; - } - } - - if (ptr) { - QMap properties_for_node; - while (XMLReadNextStartElement(reader)) { - properties_for_node.insert(reader->name().toString(), reader->readElementText()); - } - properties.insert(ptr, properties_for_node); - } - } else { - reader->skipCurrentElement(); } + } else { + qWarning() << "Attempted to load context with no pointer"; + reader->skipCurrentElement(); } } else { - // Skip this reader->skipCurrentElement(); } + } + + + } else if (reader->name() == QStringLiteral("properties")) { + + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("node")) { + quintptr ptr = 0; + + XMLAttributeLoop(reader, attr) { + if (attr.name() == QStringLiteral("ptr")) { + ptr = attr.value().toULongLong(); + + // Only attribute we're looking for right now + break; + } + } + + if (ptr) { + QMap properties_for_node; + while (XMLReadNextStartElement(reader)) { + properties_for_node.insert(reader->name().toString(), reader->readElementText()); + } + properties.insert(ptr, properties_for_node); + } + } else { + reader->skipCurrentElement(); + } + } + } else { + + // Skip this reader->skipCurrentElement(); + } } diff --git a/app/node/project/serializer/serializer220403.cpp b/app/node/project/serializer/serializer220403.cpp index 3515e7706..b5d8d85b7 100644 --- a/app/node/project/serializer/serializer220403.cpp +++ b/app/node/project/serializer/serializer220403.cpp @@ -31,157 +31,149 @@ ProjectSerializer220403::LoadData ProjectSerializer220403::Load(Project *project XMLNodeData xml_node_data; while (XMLReadNextStartElement(reader)) { - if (reader->name() == QStringLiteral("url")) { - project->SetSavedURL(reader->readElementText()); - } else if (reader->name() == QStringLiteral("project")) { + if (reader->name() == QStringLiteral("layout")) { + + // Since the main window's functions have to occur in the GUI thread (and we're likely + // loading in a secondary thread), we load all necessary data into a separate struct so we + // can continue loading and queue it with the main window so it can handle the data + // appropriately in its own thread. + + project->SetLayoutInfo(MainWindowLayoutInfo::fromXml(reader, xml_node_data.node_ptrs)); + + } else if (reader->name() == QStringLiteral("uuid")) { + + project->SetUuid(QUuid::fromString(reader->readElementText())); + + } else if (reader->name() == QStringLiteral("nodes")) { + while (XMLReadNextStartElement(reader)) { - if (reader->name() == QStringLiteral("layout")) { + if (reader->name() == QStringLiteral("node")) { + bool is_root = false; + bool is_cm = false; + bool is_settings = false; + QString id; - // Since the main window's functions have to occur in the GUI thread (and we're likely - // loading in a secondary thread), we load all necessary data into a separate struct so we - // can continue loading and queue it with the main window so it can handle the data - // appropriately in its own thread. - - project->SetLayoutInfo(MainWindowLayoutInfo::fromXml(reader, xml_node_data.node_ptrs)); - - } else if (reader->name() == QStringLiteral("uuid")) { - - project->SetUuid(QUuid::fromString(reader->readElementText())); - - } else if (reader->name() == QStringLiteral("nodes")) { - - while (XMLReadNextStartElement(reader)) { - if (reader->name() == QStringLiteral("node")) { - bool is_root = false; - bool is_cm = false; - bool is_settings = false; - QString id; - - { - XMLAttributeLoop(reader, attr) { - if (attr.name() == QStringLiteral("id")) { - id = attr.value().toString(); - } else if (attr.name() == QStringLiteral("root") && attr.value() == QStringLiteral("1")) { - is_root = true; - } else if (attr.name() == QStringLiteral("cm") && attr.value() == QStringLiteral("1")) { - is_cm = true; - } else if (attr.name() == QStringLiteral("settings") && attr.value() == QStringLiteral("1")) { - is_settings = true; - } - } + { + XMLAttributeLoop(reader, attr) { + if (attr.name() == QStringLiteral("id")) { + id = attr.value().toString(); + } else if (attr.name() == QStringLiteral("root") && attr.value() == QStringLiteral("1")) { + is_root = true; + } else if (attr.name() == QStringLiteral("cm") && attr.value() == QStringLiteral("1")) { + is_cm = true; + } else if (attr.name() == QStringLiteral("settings") && attr.value() == QStringLiteral("1")) { + is_settings = true; } - - if (id.isEmpty()) { - qWarning() << "Failed to load node with empty ID"; - reader->skipCurrentElement(); - } else { - Node* node; - - if (is_root) { - node = project->root(); - } else if (is_cm) { - node = project->color_manager(); - } else if (is_settings) { - node = project->settings(); - } else { - node = NodeFactory::CreateFromID(id); - } - - if (!node) { - qWarning() << "Failed to find node with ID" << id; - reader->skipCurrentElement(); - } else { - LoadNode(node, xml_node_data, reader); - node->setParent(project); - } - } - } else { - reader->skipCurrentElement(); } } - } else if (reader->name() == QStringLiteral("positions")) { + if (id.isEmpty()) { + qWarning() << "Failed to load node with empty ID"; + reader->skipCurrentElement(); + } else { + Node* node; - while (XMLReadNextStartElement(reader)) { + if (is_root) { + node = project->root(); + } else if (is_cm) { + node = project->color_manager(); + } else if (is_settings) { + node = project->settings(); + } else { + node = NodeFactory::CreateFromID(id); + } - if (reader->name() == QStringLiteral("context")) { + if (!node) { + qWarning() << "Failed to find node with ID" << id; + reader->skipCurrentElement(); + } else { + LoadNode(node, xml_node_data, reader); + node->setParent(project); + } + } + } else { + reader->skipCurrentElement(); + } + } - quintptr context_ptr = 0; - XMLAttributeLoop(reader, attr) { - if (attr.name() == QStringLiteral("ptr")) { - context_ptr = attr.value().toULongLong(); - break; - } - } + } else if (reader->name() == QStringLiteral("positions")) { - if (context_ptr) { - while (XMLReadNextStartElement(reader)) { - if (reader->name() == QStringLiteral("node")) { - quintptr node_ptr; - Node::Position node_pos; + while (XMLReadNextStartElement(reader)) { - if (LoadPosition(reader, &node_ptr, &node_pos)) { - if (node_ptr) { - positions[context_ptr].insert(node_ptr, node_pos); - } else { - qWarning() << "Failed to find pointer for node position"; - reader->skipCurrentElement(); - } - } + if (reader->name() == QStringLiteral("context")) { + + quintptr context_ptr = 0; + XMLAttributeLoop(reader, attr) { + if (attr.name() == QStringLiteral("ptr")) { + context_ptr = attr.value().toULongLong(); + break; + } + } + + if (context_ptr) { + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("node")) { + quintptr node_ptr; + Node::Position node_pos; + + if (LoadPosition(reader, &node_ptr, &node_pos)) { + if (node_ptr) { + positions[context_ptr].insert(node_ptr, node_pos); } else { + qWarning() << "Failed to find pointer for node position"; reader->skipCurrentElement(); } } } else { - qWarning() << "Attempted to load context with no pointer"; reader->skipCurrentElement(); } - - } else { - - reader->skipCurrentElement(); - - } - - } - - - } else if (reader->name() == QStringLiteral("properties")) { - - while (XMLReadNextStartElement(reader)) { - if (reader->name() == QStringLiteral("node")) { - quintptr ptr = 0; - - XMLAttributeLoop(reader, attr) { - if (attr.name() == QStringLiteral("ptr")) { - ptr = attr.value().toULongLong(); - - // Only attribute we're looking for right now - break; - } - } - - if (ptr) { - QMap properties_for_node; - while (XMLReadNextStartElement(reader)) { - properties_for_node.insert(reader->name().toString(), reader->readElementText()); - } - properties.insert(ptr, properties_for_node); - } - } else { - reader->skipCurrentElement(); } + } else { + qWarning() << "Attempted to load context with no pointer"; + reader->skipCurrentElement(); } } else { - // Skip this reader->skipCurrentElement(); } + } + + + } else if (reader->name() == QStringLiteral("properties")) { + + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("node")) { + quintptr ptr = 0; + + XMLAttributeLoop(reader, attr) { + if (attr.name() == QStringLiteral("ptr")) { + ptr = attr.value().toULongLong(); + + // Only attribute we're looking for right now + break; + } + } + + if (ptr) { + QMap properties_for_node; + while (XMLReadNextStartElement(reader)) { + properties_for_node.insert(reader->name().toString(), reader->readElementText()); + } + properties.insert(ptr, properties_for_node); + } + } else { + reader->skipCurrentElement(); + } + } + } else { + + // Skip this reader->skipCurrentElement(); + } } From d1bb9318547366db89eae148a684687f47b03da2 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Tue, 26 Apr 2022 14:23:19 -0700 Subject: [PATCH 108/114] nodeparamview: implemented add button --- app/node/audio/pan/pan.cpp | 3 ++ app/node/audio/volume/volume.cpp | 3 ++ app/node/block/clip/clip.cpp | 2 + .../cornerpin/cornerpindistortnode.cpp | 3 ++ app/node/distort/crop/cropdistortnode.cpp | 3 ++ app/node/distort/flip/flipdistortnode.cpp | 3 ++ .../transform/transformdistortnode.cpp | 3 ++ app/node/effect/opacity/opacityeffect.cpp | 3 ++ app/node/factory.cpp | 6 ++- app/node/factory.h | 2 +- app/node/filter/blur/blur.cpp | 3 ++ app/node/filter/mosaic/mosaicfilternode.cpp | 3 ++ app/node/filter/stroke/stroke.cpp | 3 ++ .../colordifferencekey/colordifferencekey.cpp | 6 ++- app/node/keying/despill/despill.cpp | 3 ++ app/node/node.cpp | 4 +- app/node/node.h | 23 +++++++++- .../nodeparamview/nodeparamviewcontext.cpp | 42 ++++++++++++++++++- .../nodeparamview/nodeparamviewcontext.h | 2 + 19 files changed, 114 insertions(+), 6 deletions(-) diff --git a/app/node/audio/pan/pan.cpp b/app/node/audio/pan/pan.cpp index 9eb8e0766..e6458bfaa 100644 --- a/app/node/audio/pan/pan.cpp +++ b/app/node/audio/pan/pan.cpp @@ -35,6 +35,9 @@ PanNode::PanNode() SetInputProperty(kPanningInput, QStringLiteral("min"), -1.0); SetInputProperty(kPanningInput, QStringLiteral("max"), 1.0); SetInputProperty(kPanningInput, QStringLiteral("view"), FloatSlider::kPercentage); + + SetFlags(kAudioEffect); + SetEffectInput(kSamplesInput); } Node *PanNode::copy() const diff --git a/app/node/audio/volume/volume.cpp b/app/node/audio/volume/volume.cpp index e6c26b50e..6617dcae3 100644 --- a/app/node/audio/volume/volume.cpp +++ b/app/node/audio/volume/volume.cpp @@ -34,6 +34,9 @@ VolumeNode::VolumeNode() AddInput(kVolumeInput, NodeValue::kFloat, 1.0); SetInputProperty(kVolumeInput, QStringLiteral("min"), 0.0); SetInputProperty(kVolumeInput, QStringLiteral("view"), FloatSlider::kDecibel); + + SetFlags(kAudioEffect); + SetEffectInput(kSamplesInput); } Node *VolumeNode::copy() const diff --git a/app/node/block/clip/clip.cpp b/app/node/block/clip/clip.cpp index 4e5cfdb81..f5afb79fa 100644 --- a/app/node/block/clip/clip.cpp +++ b/app/node/block/clip/clip.cpp @@ -57,6 +57,8 @@ ClipBlock::ClipBlock() : PrependInput(kBufferIn, NodeValue::kNone, InputFlags(kInputFlagNotKeyframable)); SetValueHintForInput(kBufferIn, ValueHint(NodeValue::kBuffer)); + + SetEffectInput(kBufferIn); } Node *ClipBlock::copy() const diff --git a/app/node/distort/cornerpin/cornerpindistortnode.cpp b/app/node/distort/cornerpin/cornerpindistortnode.cpp index e4429ede7..54c5870da 100644 --- a/app/node/distort/cornerpin/cornerpindistortnode.cpp +++ b/app/node/distort/cornerpin/cornerpindistortnode.cpp @@ -48,6 +48,9 @@ CornerPinDistortNode::CornerPinDistortNode() gizmo_resize_handle_[1] = AddDraggableGizmo({NodeKeyframeTrackReference(NodeInput(this, kTopRightInput), 0), NodeKeyframeTrackReference(NodeInput(this, kTopRightInput), 1)}); gizmo_resize_handle_[2] = AddDraggableGizmo({NodeKeyframeTrackReference(NodeInput(this, kBottomRightInput), 0), NodeKeyframeTrackReference(NodeInput(this, kBottomRightInput), 1)}); gizmo_resize_handle_[3] = AddDraggableGizmo({NodeKeyframeTrackReference(NodeInput(this, kBottomLeftInput), 0), NodeKeyframeTrackReference(NodeInput(this, kBottomLeftInput), 1)}); + + SetFlags(kVideoEffect); + SetEffectInput(kTextureInput); } void CornerPinDistortNode::Retranslate() diff --git a/app/node/distort/crop/cropdistortnode.cpp b/app/node/distort/crop/cropdistortnode.cpp index b204c7eda..e60b9afe3 100644 --- a/app/node/distort/crop/cropdistortnode.cpp +++ b/app/node/distort/crop/cropdistortnode.cpp @@ -56,6 +56,9 @@ CropDistortNode::CropDistortNode() point_gizmo_[kGizmoScaleBottomRight] = AddDraggableGizmo({kRightInput, kBottomInput}); point_gizmo_[kGizmoScaleCenterLeft] = AddDraggableGizmo({kLeftInput}); point_gizmo_[kGizmoScaleCenterRight] = AddDraggableGizmo({kRightInput}); + + SetFlags(kVideoEffect); + SetEffectInput(kTextureInput); } void CropDistortNode::Retranslate() diff --git a/app/node/distort/flip/flipdistortnode.cpp b/app/node/distort/flip/flipdistortnode.cpp index 577437fe5..3bc78536d 100644 --- a/app/node/distort/flip/flipdistortnode.cpp +++ b/app/node/distort/flip/flipdistortnode.cpp @@ -33,6 +33,9 @@ FlipDistortNode::FlipDistortNode() AddInput(kHorizontalInput, NodeValue::kBoolean, false); AddInput(kVerticalInput, NodeValue::kBoolean, false); + + SetFlags(kVideoEffect); + SetEffectInput(kTextureInput); } Node* FlipDistortNode::copy() const diff --git a/app/node/distort/transform/transformdistortnode.cpp b/app/node/distort/transform/transformdistortnode.cpp index 59ec09bc2..0f2bcfac2 100644 --- a/app/node/distort/transform/transformdistortnode.cpp +++ b/app/node/distort/transform/transformdistortnode.cpp @@ -64,6 +64,9 @@ TransformDistortNode::TransformDistortNode() point_gizmo_[i]->AddInput(NodeKeyframeTrackReference(NodeInput(this, kScaleInput), 1)); point_gizmo_[i]->SetDragValueBehavior(PointGizmo::kAbsolute); } + + SetFlags(kVideoEffect); + SetEffectInput(kTextureInput); } void TransformDistortNode::Retranslate() diff --git a/app/node/effect/opacity/opacityeffect.cpp b/app/node/effect/opacity/opacityeffect.cpp index b8ac2d017..b4dcba646 100644 --- a/app/node/effect/opacity/opacityeffect.cpp +++ b/app/node/effect/opacity/opacityeffect.cpp @@ -24,6 +24,9 @@ OpacityEffect::OpacityEffect() SetInputProperty(kValueInput, QStringLiteral("view"), FloatSlider::kPercentage); SetInputProperty(kValueInput, QStringLiteral("min"), 0.0); SetInputProperty(kValueInput, QStringLiteral("max"), 1.0); + + SetFlags(kVideoEffect); + SetEffectInput(kTextureInput); } void OpacityEffect::Retranslate() diff --git a/app/node/factory.cpp b/app/node/factory.cpp index 3f32fe17a..cf5e3b0c4 100644 --- a/app/node/factory.cpp +++ b/app/node/factory.cpp @@ -86,7 +86,7 @@ void NodeFactory::Destroy() library_.clear(); } -Menu *NodeFactory::CreateMenu(QWidget* parent, bool create_none_item, Node::CategoryID restrict_to) +Menu *NodeFactory::CreateMenu(QWidget* parent, bool create_none_item, Node::CategoryID restrict_to, uint64_t restrict_flags) { Menu* menu = new Menu(parent); menu->setToolTipsVisible(true); @@ -99,6 +99,10 @@ Menu *NodeFactory::CreateMenu(QWidget* parent, bool create_none_item, Node::Cate continue; } + if (restrict_flags && !(n->GetFlags() & restrict_flags)) { + continue; + } + if (hidden_.contains(i)) { // Skip this node continue; diff --git a/app/node/factory.h b/app/node/factory.h index 0a461892f..56192cc7b 100644 --- a/app/node/factory.h +++ b/app/node/factory.h @@ -81,7 +81,7 @@ public: static void Destroy(); - static Menu* CreateMenu(QWidget *parent, bool create_none_item = false, Node::CategoryID restrict_to = Node::kCategoryUnknown); + static Menu* CreateMenu(QWidget *parent, bool create_none_item = false, Node::CategoryID restrict_to = Node::kCategoryUnknown, uint64_t restrict_flags = 0); static Node* CreateFromMenuAction(QAction* action); diff --git a/app/node/filter/blur/blur.cpp b/app/node/filter/blur/blur.cpp index c488b8008..aa159dcce 100644 --- a/app/node/filter/blur/blur.cpp +++ b/app/node/filter/blur/blur.cpp @@ -43,6 +43,9 @@ BlurFilterNode::BlurFilterNode() AddInput(kVertInput, NodeValue::kBoolean, true); AddInput(kRepeatEdgePixelsInput, NodeValue::kBoolean, true); + + SetFlags(kVideoEffect); + SetEffectInput(kTextureInput); } Node *BlurFilterNode::copy() const diff --git a/app/node/filter/mosaic/mosaicfilternode.cpp b/app/node/filter/mosaic/mosaicfilternode.cpp index 242d5682f..0dc562218 100644 --- a/app/node/filter/mosaic/mosaicfilternode.cpp +++ b/app/node/filter/mosaic/mosaicfilternode.cpp @@ -35,6 +35,9 @@ MosaicFilterNode::MosaicFilterNode() AddInput(kVertInput, NodeValue::kFloat, 18.0); SetInputProperty(kVertInput, QStringLiteral("min"), 1.0); + + SetFlags(kVideoEffect); + SetEffectInput(kTextureInput); } void MosaicFilterNode::Retranslate() diff --git a/app/node/filter/stroke/stroke.cpp b/app/node/filter/stroke/stroke.cpp index 7818d7e46..d6e784146 100644 --- a/app/node/filter/stroke/stroke.cpp +++ b/app/node/filter/stroke/stroke.cpp @@ -46,6 +46,9 @@ StrokeFilterNode::StrokeFilterNode() SetInputProperty(kOpacityInput, QStringLiteral("max"), 1.0f); AddInput(kInnerInput, NodeValue::kBoolean, false); + + SetFlags(kVideoEffect); + SetEffectInput(kTextureInput); } Node *StrokeFilterNode::copy() const diff --git a/app/node/keying/colordifferencekey/colordifferencekey.cpp b/app/node/keying/colordifferencekey/colordifferencekey.cpp index 1f2ca4d1c..a805ab550 100644 --- a/app/node/keying/colordifferencekey/colordifferencekey.cpp +++ b/app/node/keying/colordifferencekey/colordifferencekey.cpp @@ -25,7 +25,8 @@ const QString ColorDifferenceKeyNode::kShadowsInput = QStringLiteral("shadows_in const QString ColorDifferenceKeyNode::kHighlightsInput = QStringLiteral("highlights_in"); const QString ColorDifferenceKeyNode::kMaskOnlyInput = QStringLiteral("mask_only_in"); -ColorDifferenceKeyNode::ColorDifferenceKeyNode() { +ColorDifferenceKeyNode::ColorDifferenceKeyNode() +{ AddInput(kTextureInput, NodeValue::kTexture, InputFlags(kInputFlagNotKeyframable)); AddInput(kGarbageMatteInput, NodeValue::kTexture, InputFlags(kInputFlagNotKeyframable)); @@ -41,6 +42,9 @@ ColorDifferenceKeyNode::ColorDifferenceKeyNode() { SetInputProperty(kShadowsInput, QStringLiteral("min"), 0.0); AddInput(kMaskOnlyInput, NodeValue::kBoolean, false); + + SetFlags(kVideoEffect); + SetEffectInput(kTextureInput); } Node *ColorDifferenceKeyNode::copy() const diff --git a/app/node/keying/despill/despill.cpp b/app/node/keying/despill/despill.cpp index 147ee60df..09a8f2f45 100644 --- a/app/node/keying/despill/despill.cpp +++ b/app/node/keying/despill/despill.cpp @@ -33,6 +33,9 @@ DespillNode::DespillNode() AddInput(kMethodInput, NodeValue::kCombo, 0); AddInput(kPreserveLuminanceInput, NodeValue::kBoolean, false); + + SetFlags(kVideoEffect); + SetEffectInput(kTextureInput); } Node* DespillNode::copy() const diff --git a/app/node/node.cpp b/app/node/node.cpp index c8afb1f12..b0a7ec8aa 100644 --- a/app/node/node.cpp +++ b/app/node/node.cpp @@ -48,7 +48,9 @@ Node::Node() : folder_(nullptr), operation_stack_(0), cache_result_(false), - flags_(kNone) + flags_(kNone), + effect_element_(-1), + bypass_(false) { } diff --git a/app/node/node.h b/app/node/node.h index 6d2c27144..66b5497fe 100644 --- a/app/node/node.h +++ b/app/node/node.h @@ -95,7 +95,9 @@ public: enum Flag { kNone = 0, - kDontShowInParamView = 0x1 + kDontShowInParamView = 0x1, + kVideoEffect = 0x2, + kAudioEffect = 0x4 }; Node(); @@ -539,6 +541,11 @@ public: int InputArraySize(const QString& id) const; + NodeInput GetEffectInput() + { + return effect_input_.isEmpty() ? NodeInput() : NodeInput(this, effect_input_, effect_element_); + } + class ValueHint { public: explicit ValueHint(const QVector &types = QVector(), int index = -1, const QString &tag = QString()) : @@ -889,6 +896,9 @@ public: cache_result_ = e; } + bool IsBypassed() const { return bypass_; } + void SetBypassed(bool e) { bypass_ = e; } + class ArrayRemoveCommand : public UndoCommand { public: @@ -1027,6 +1037,12 @@ protected: virtual void childEvent(QChildEvent *event) override; + void SetEffectInput(const QString &input, int element = -1) + { + effect_input_ = input; + effect_element_ = element; + } + void SetToolTip(const QString& s) { tooltip_ = s; @@ -1342,6 +1358,11 @@ private: QVector gizmos_; + QString effect_input_; + int effect_element_; + + bool bypass_; + private slots: /** * @brief Slot when a keyframe's time changes to keep the keyframes correctly sorted by time diff --git a/app/widget/nodeparamview/nodeparamviewcontext.cpp b/app/widget/nodeparamview/nodeparamviewcontext.cpp index a07c3975b..8fe70ca7a 100644 --- a/app/widget/nodeparamview/nodeparamviewcontext.cpp +++ b/app/widget/nodeparamview/nodeparamviewcontext.cpp @@ -23,6 +23,8 @@ #include #include "node/block/clip/clip.h" +#include "node/factory.h" +#include "widget/nodeview/nodeviewundo.h" namespace olive { @@ -130,7 +132,45 @@ void NodeParamViewContext::Retranslate() void NodeParamViewContext::AddEffectButtonClicked() { - QMessageBox::information(this, tr("STUB"), tr("This feature is coming soon. Thanks for testing development builds of Olive :)")); + Menu *m = NodeFactory::CreateMenu(this, false, Node::kCategoryUnknown, Node::kVideoEffect); + connect(m, &Menu::triggered, this, &NodeParamViewContext::AddEffectMenuItemTriggered); + m->exec(QCursor::pos()); + delete m; +} + +void NodeParamViewContext::AddEffectMenuItemTriggered(QAction *a) +{ + Node *n = NodeFactory::CreateFromMenuAction(a); + + if (n) { + NodeInput new_node_input = n->GetEffectInput(); + MultiUndoCommand *command = new MultiUndoCommand(); + + QVector graphs_added_to; + + foreach (Node *ctx, contexts_) { + NodeInput ctx_input = ctx->GetEffectInput(); + + if (!graphs_added_to.contains(ctx->parent())) { + command->add_child(new NodeAddCommand(ctx->parent(), n)); + graphs_added_to.append(ctx->parent()); + } + + command->add_child(new NodeSetPositionCommand(n, ctx, ctx->GetNodePositionInContext(ctx))); + command->add_child(new NodeSetPositionCommand(ctx, ctx, ctx->GetNodePositionInContext(ctx) + QPointF(1, 0))); + + if (ctx_input.IsConnected()) { + Node *prev_output = ctx_input.GetConnectedOutput(); + + command->add_child(new NodeEdgeRemoveCommand(prev_output, ctx_input)); + command->add_child(new NodeEdgeAddCommand(prev_output, new_node_input)); + } + + command->add_child(new NodeEdgeAddCommand(n, ctx_input)); + } + + Core::instance()->undo_stack()->pushIfHasChildren(command); + } } } diff --git a/app/widget/nodeparamview/nodeparamviewcontext.h b/app/widget/nodeparamview/nodeparamviewcontext.h index 5652277e9..29be6dd58 100644 --- a/app/widget/nodeparamview/nodeparamviewcontext.h +++ b/app/widget/nodeparamview/nodeparamviewcontext.h @@ -91,6 +91,8 @@ private: private slots: void AddEffectButtonClicked(); + void AddEffectMenuItemTriggered(QAction *a); + }; } From 001834cbfa0015bf7126ac9e8f7139e616a47070 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Tue, 26 Apr 2022 15:07:01 -0700 Subject: [PATCH 109/114] node: implemented bypassing --- app/node/audio/pan/pan.cpp | 4 +++ app/node/audio/volume/volume.cpp | 4 +++ app/node/block/block.cpp | 3 -- app/node/block/block.h | 1 - app/node/color/colormanager/colormanager.cpp | 4 +++ .../cornerpin/cornerpindistortnode.cpp | 4 +++ app/node/distort/crop/cropdistortnode.cpp | 4 +++ app/node/distort/flip/flipdistortnode.cpp | 4 +++ .../transform/transformdistortnode.cpp | 6 ++-- app/node/filter/blur/blur.cpp | 4 +++ app/node/filter/mosaic/mosaicfilternode.cpp | 4 +++ app/node/filter/stroke/stroke.cpp | 4 +++ app/node/generator/matrix/matrix.cpp | 4 +++ app/node/generator/noise/noise.cpp | 4 +++ app/node/generator/polygon/polygon.cpp | 4 +++ app/node/generator/solid/solid.cpp | 4 +++ app/node/generator/text/textv1.cpp | 4 +++ app/node/group/group.cpp | 2 ++ app/node/input/value/valuenode.cpp | 2 ++ .../colordifferencekey/colordifferencekey.cpp | 4 +++ app/node/keying/despill/despill.cpp | 5 ++- app/node/math/math/math.cpp | 4 ++- app/node/math/merge/merge.cpp | 4 +++ app/node/math/trigonometry/trigonometry.cpp | 4 +++ app/node/node.cpp | 7 +++-- app/node/node.h | 7 ++--- app/node/output/track/track.cpp | 2 +- .../projectsettings/projectsettings.cpp | 4 +++ app/node/time/timeoffset/timeoffsetnode.cpp | 2 ++ app/node/time/timeremap/timeremap.cpp | 2 ++ app/node/traverser.cpp | 31 +++++++++++++------ .../nodeparamview/nodeparamviewitem.cpp | 5 +++ .../nodeparamviewitemtitlebar.cpp | 5 +++ .../nodeparamview/nodeparamviewitemtitlebar.h | 15 +++++++++ 34 files changed, 145 insertions(+), 26 deletions(-) diff --git a/app/node/audio/pan/pan.cpp b/app/node/audio/pan/pan.cpp index e6458bfaa..5e6d87a39 100644 --- a/app/node/audio/pan/pan.cpp +++ b/app/node/audio/pan/pan.cpp @@ -27,6 +27,8 @@ namespace olive { const QString PanNode::kSamplesInput = QStringLiteral("samples_in"); const QString PanNode::kPanningInput = QStringLiteral("panning_in"); +#define super Node + PanNode::PanNode() { AddInput(kSamplesInput, NodeValue::kSamples, InputFlags(kInputFlagNotKeyframable)); @@ -118,6 +120,8 @@ void PanNode::ProcessSamples(const NodeValueRow &values, const SampleBufferPtr i void PanNode::Retranslate() { + super::Retranslate(); + SetInputName(kSamplesInput, tr("Samples")); SetInputName(kPanningInput, tr("Pan")); } diff --git a/app/node/audio/volume/volume.cpp b/app/node/audio/volume/volume.cpp index 6617dcae3..79feef607 100644 --- a/app/node/audio/volume/volume.cpp +++ b/app/node/audio/volume/volume.cpp @@ -27,6 +27,8 @@ namespace olive { const QString VolumeNode::kSamplesInput = QStringLiteral("samples_in"); const QString VolumeNode::kVolumeInput = QStringLiteral("volume_in"); +#define super MathNodeBase + VolumeNode::VolumeNode() { AddInput(kSamplesInput, NodeValue::kSamples, InputFlags(kInputFlagNotKeyframable)); @@ -83,6 +85,8 @@ void VolumeNode::ProcessSamples(const NodeValueRow &values, const SampleBufferPt void VolumeNode::Retranslate() { + super::Retranslate(); + SetInputName(kSamplesInput, tr("Samples")); SetInputName(kVolumeInput, tr("Volume")); } diff --git a/app/node/block/block.cpp b/app/node/block/block.cpp index a726d6b0f..68ee09863 100644 --- a/app/node/block/block.cpp +++ b/app/node/block/block.cpp @@ -32,7 +32,6 @@ namespace olive { #define super Node const QString Block::kLengthInput = QStringLiteral("length_in"); -const QString Block::kEnabledInput = QStringLiteral("enabled_in"); Block::Block() : previous_(nullptr), @@ -46,8 +45,6 @@ Block::Block() : SetInputProperty(kLengthInput, QStringLiteral("viewlock"), true); IgnoreHashingFrom(kLengthInput); - AddInput(kEnabledInput, NodeValue::kBoolean, true, InputFlags(kInputFlagNotConnectable | kInputFlagNotKeyframable)); - SetFlags(kDontShowInParamView); } diff --git a/app/node/block/block.h b/app/node/block/block.h index 7f03ec805..a555cb065 100644 --- a/app/node/block/block.h +++ b/app/node/block/block.h @@ -118,7 +118,6 @@ public: virtual void InvalidateCache(const TimeRange& range, const QString& from, int element = -1, InvalidateCacheOptions options = InvalidateCacheOptions()) override; static const QString kLengthInput; - static const QString kEnabledInput; public slots: diff --git a/app/node/color/colormanager/colormanager.cpp b/app/node/color/colormanager/colormanager.cpp index 4f946a513..895a522b4 100644 --- a/app/node/color/colormanager/colormanager.cpp +++ b/app/node/color/colormanager/colormanager.cpp @@ -34,6 +34,8 @@ const QString ColorManager::kConfigFilenameIn = QStringLiteral("config"); const QString ColorManager::kDefaultColorspaceIn = QStringLiteral("default_input"); const QString ColorManager::kReferenceSpaceIn = QStringLiteral("reference_space"); +#define super Node + OCIO::ConstConfigRcPtr ColorManager::default_config_ = nullptr; ColorManager::ColorManager() : @@ -253,6 +255,8 @@ void ColorManager::GetDefaultLumaCoefs(double *rgb) const void ColorManager::Retranslate() { + super::Retranslate(); + SetInputName(kConfigFilenameIn, tr("Configuration")); SetInputName(kDefaultColorspaceIn, tr("Default Input")); SetInputName(kReferenceSpaceIn, tr("Reference Space")); diff --git a/app/node/distort/cornerpin/cornerpindistortnode.cpp b/app/node/distort/cornerpin/cornerpindistortnode.cpp index 54c5870da..febb41061 100644 --- a/app/node/distort/cornerpin/cornerpindistortnode.cpp +++ b/app/node/distort/cornerpin/cornerpindistortnode.cpp @@ -33,6 +33,8 @@ const QString CornerPinDistortNode::kBottomRightInput = QStringLiteral("bottom_r const QString CornerPinDistortNode::kBottomLeftInput = QStringLiteral("bottom_left_in"); const QString CornerPinDistortNode::kPerspectiveInput = QStringLiteral("perspective_in"); +#define super Node + CornerPinDistortNode::CornerPinDistortNode() { AddInput(kTextureInput, NodeValue::kTexture, InputFlags(kInputFlagNotKeyframable)); @@ -55,6 +57,8 @@ CornerPinDistortNode::CornerPinDistortNode() void CornerPinDistortNode::Retranslate() { + super::Retranslate(); + SetInputName(kTextureInput, tr("Texture")); SetInputName(kPerspectiveInput, tr("Perspective")); SetInputName(kTopLeftInput, tr("Top Left")); diff --git a/app/node/distort/crop/cropdistortnode.cpp b/app/node/distort/crop/cropdistortnode.cpp index e60b9afe3..18274109d 100644 --- a/app/node/distort/crop/cropdistortnode.cpp +++ b/app/node/distort/crop/cropdistortnode.cpp @@ -33,6 +33,8 @@ const QString CropDistortNode::kRightInput = QStringLiteral("right_in"); const QString CropDistortNode::kBottomInput = QStringLiteral("bottom_in"); const QString CropDistortNode::kFeatherInput = QStringLiteral("feather_in"); +#define super Node + CropDistortNode::CropDistortNode() { AddInput(kTextureInput, NodeValue::kTexture, InputFlags(kInputFlagNotKeyframable)); @@ -63,6 +65,8 @@ CropDistortNode::CropDistortNode() void CropDistortNode::Retranslate() { + super::Retranslate(); + SetInputName(kTextureInput, tr("Texture")); SetInputName(kLeftInput, tr("Left")); SetInputName(kTopInput, tr("Top")); diff --git a/app/node/distort/flip/flipdistortnode.cpp b/app/node/distort/flip/flipdistortnode.cpp index 3bc78536d..21a835e0c 100644 --- a/app/node/distort/flip/flipdistortnode.cpp +++ b/app/node/distort/flip/flipdistortnode.cpp @@ -26,6 +26,8 @@ const QString FlipDistortNode::kTextureInput = QStringLiteral("tex_in"); const QString FlipDistortNode::kHorizontalInput = QStringLiteral("horiz_in"); const QString FlipDistortNode::kVerticalInput = QStringLiteral("vert_in"); +#define super Node + FlipDistortNode::FlipDistortNode() { AddInput(kTextureInput, NodeValue::kTexture, InputFlags(kInputFlagNotKeyframable)); @@ -65,6 +67,8 @@ QString FlipDistortNode::Description() const void FlipDistortNode::Retranslate() { + super::Retranslate(); + SetInputName(kTextureInput, tr("Input")); SetInputName(kHorizontalInput, tr("Horizontal")); SetInputName(kVerticalInput, tr("Vertical")); diff --git a/app/node/distort/transform/transformdistortnode.cpp b/app/node/distort/transform/transformdistortnode.cpp index 0f2bcfac2..e60d901f2 100644 --- a/app/node/distort/transform/transformdistortnode.cpp +++ b/app/node/distort/transform/transformdistortnode.cpp @@ -32,7 +32,7 @@ const QString TransformDistortNode::kTextureInput = QStringLiteral("tex_in"); const QString TransformDistortNode::kAutoscaleInput = QStringLiteral("autoscale_in"); const QString TransformDistortNode::kInterpolationInput = QStringLiteral("interpolation_in"); -#define super Node +#define super MatrixGenerator TransformDistortNode::TransformDistortNode() { @@ -71,7 +71,7 @@ TransformDistortNode::TransformDistortNode() void TransformDistortNode::Retranslate() { - MatrixGenerator::Retranslate(); + super::Retranslate(); SetInputName(kAutoscaleInput, tr("Auto-Scale")); SetInputName(kTextureInput, tr("Texture")); @@ -153,7 +153,7 @@ void TransformDistortNode::Hash(QCryptographicHash &hash, const NodeGlobals &glo } } - Node::Hash(out, GetValueHintForInput(kTextureInput), hash, globals, video_params); + super::Hash(out, GetValueHintForInput(kTextureInput), hash, globals, video_params); } void TransformDistortNode::GizmoDragStart(const NodeValueRow &row, double x, double y, const rational &time) diff --git a/app/node/filter/blur/blur.cpp b/app/node/filter/blur/blur.cpp index aa159dcce..1865afbca 100644 --- a/app/node/filter/blur/blur.cpp +++ b/app/node/filter/blur/blur.cpp @@ -29,6 +29,8 @@ const QString BlurFilterNode::kHorizInput = QStringLiteral("horiz_in"); const QString BlurFilterNode::kVertInput = QStringLiteral("vert_in"); const QString BlurFilterNode::kRepeatEdgePixelsInput = QStringLiteral("repeat_edge_pixels_in"); +#define super Node + BlurFilterNode::BlurFilterNode() { AddInput(kTextureInput, NodeValue::kTexture, InputFlags(kInputFlagNotKeyframable)); @@ -75,6 +77,8 @@ QString BlurFilterNode::Description() const void BlurFilterNode::Retranslate() { + super::Retranslate(); + SetInputName(kTextureInput, tr("Input")); SetInputName(kMethodInput, tr("Method")); SetComboBoxStrings(kMethodInput, { tr("Box"), tr("Gaussian") }); diff --git a/app/node/filter/mosaic/mosaicfilternode.cpp b/app/node/filter/mosaic/mosaicfilternode.cpp index 0dc562218..e6f5f0545 100644 --- a/app/node/filter/mosaic/mosaicfilternode.cpp +++ b/app/node/filter/mosaic/mosaicfilternode.cpp @@ -26,6 +26,8 @@ const QString MosaicFilterNode::kTextureInput = QStringLiteral("tex_in"); const QString MosaicFilterNode::kHorizInput = QStringLiteral("horiz_in"); const QString MosaicFilterNode::kVertInput = QStringLiteral("vert_in"); +#define super Node + MosaicFilterNode::MosaicFilterNode() { AddInput(kTextureInput, NodeValue::kTexture, InputFlags(kInputFlagNotKeyframable)); @@ -42,6 +44,8 @@ MosaicFilterNode::MosaicFilterNode() void MosaicFilterNode::Retranslate() { + super::Retranslate(); + SetInputName(kTextureInput, tr("Texture")); SetInputName(kHorizInput, tr("Horizontal")); SetInputName(kVertInput, tr("Vertical")); diff --git a/app/node/filter/stroke/stroke.cpp b/app/node/filter/stroke/stroke.cpp index d6e784146..8883a9047 100644 --- a/app/node/filter/stroke/stroke.cpp +++ b/app/node/filter/stroke/stroke.cpp @@ -31,6 +31,8 @@ const QString StrokeFilterNode::kRadiusInput = QStringLiteral("radius_in"); const QString StrokeFilterNode::kOpacityInput = QStringLiteral("opacity_in"); const QString StrokeFilterNode::kInnerInput = QStringLiteral("inner_in"); +#define super Node + StrokeFilterNode::StrokeFilterNode() { AddInput(kTextureInput, NodeValue::kTexture, InputFlags(kInputFlagNotKeyframable)); @@ -78,6 +80,8 @@ QString StrokeFilterNode::Description() const void StrokeFilterNode::Retranslate() { + super::Retranslate(); + SetInputName(kTextureInput, tr("Input")); SetInputName(kColorInput, tr("Color")); SetInputName(kRadiusInput, tr("Radius")); diff --git a/app/node/generator/matrix/matrix.cpp b/app/node/generator/matrix/matrix.cpp index 461d2ca3f..bbd5c9ba6 100644 --- a/app/node/generator/matrix/matrix.cpp +++ b/app/node/generator/matrix/matrix.cpp @@ -33,6 +33,8 @@ const QString MatrixGenerator::kScaleInput = QStringLiteral("scale_in"); const QString MatrixGenerator::kUniformScaleInput = QStringLiteral("uniform_scale_in"); const QString MatrixGenerator::kAnchorInput = QStringLiteral("anchor_in"); +#define super Node + MatrixGenerator::MatrixGenerator() { AddInput(kPositionInput, NodeValue::kVec2, QVector2D(0.0, 0.0)); @@ -81,6 +83,8 @@ QString MatrixGenerator::Description() const void MatrixGenerator::Retranslate() { + super::Retranslate(); + SetInputName(kPositionInput, tr("Position")); SetInputName(kRotationInput, tr("Rotation")); SetInputName(kScaleInput, tr("Scale")); diff --git a/app/node/generator/noise/noise.cpp b/app/node/generator/noise/noise.cpp index 21eaa215e..7ed7eb2b9 100644 --- a/app/node/generator/noise/noise.cpp +++ b/app/node/generator/noise/noise.cpp @@ -25,6 +25,8 @@ namespace olive { const QString NoiseGeneratorNode::kColorInput = QStringLiteral("color_in"); const QString NoiseGeneratorNode::kStrengthInput = QStringLiteral("strength_in"); +#define super Node + NoiseGeneratorNode::NoiseGeneratorNode() { AddInput(kStrengthInput, NodeValue::kFloat, 20); @@ -59,6 +61,8 @@ QString NoiseGeneratorNode::Description() const void NoiseGeneratorNode::Retranslate() { + super::Retranslate(); + SetInputName(kStrengthInput, tr("Strength")); SetInputName(kColorInput, tr("Color")); } diff --git a/app/node/generator/polygon/polygon.cpp b/app/node/generator/polygon/polygon.cpp index bd3ae07cf..c96d5b932 100644 --- a/app/node/generator/polygon/polygon.cpp +++ b/app/node/generator/polygon/polygon.cpp @@ -30,6 +30,8 @@ namespace olive { const QString PolygonGenerator::kPointsInput = QStringLiteral("points_in"); const QString PolygonGenerator::kColorInput = QStringLiteral("color_in"); +#define super Node + PolygonGenerator::PolygonGenerator() { AddInput(kPointsInput, NodeValue::kBezier, QVector2D(0, 0), InputFlags(kInputFlagArray)); @@ -86,6 +88,8 @@ QString PolygonGenerator::Description() const void PolygonGenerator::Retranslate() { + super::Retranslate(); + SetInputName(kPointsInput, tr("Points")); SetInputName(kColorInput, tr("Color")); } diff --git a/app/node/generator/solid/solid.cpp b/app/node/generator/solid/solid.cpp index 76b2340df..0327af098 100644 --- a/app/node/generator/solid/solid.cpp +++ b/app/node/generator/solid/solid.cpp @@ -26,6 +26,8 @@ namespace olive { const QString SolidGenerator::kColorInput = QStringLiteral("color_in"); +#define super Node + SolidGenerator::SolidGenerator() { // Default to a color that isn't black @@ -59,6 +61,8 @@ QString SolidGenerator::Description() const void SolidGenerator::Retranslate() { + super::Retranslate(); + SetInputName(kColorInput, tr("Color")); } diff --git a/app/node/generator/text/textv1.cpp b/app/node/generator/text/textv1.cpp index d6c4c8588..45dd1fad7 100644 --- a/app/node/generator/text/textv1.cpp +++ b/app/node/generator/text/textv1.cpp @@ -38,6 +38,8 @@ const QString TextGeneratorV1::kVAlignInput = QStringLiteral("valign_in"); const QString TextGeneratorV1::kFontInput = QStringLiteral("font_in"); const QString TextGeneratorV1::kFontSizeInput = QStringLiteral("font_size_in"); +#define super Node + TextGeneratorV1::TextGeneratorV1() { AddInput(kTextInput, NodeValue::kText, tr("Sample Text")); @@ -75,6 +77,8 @@ QString TextGeneratorV1::Description() const void TextGeneratorV1::Retranslate() { + super::Retranslate(); + SetInputName(kTextInput, tr("Text")); SetInputName(kHtmlInput, tr("Enable HTML")); SetInputName(kFontInput, tr("Font")); diff --git a/app/node/group/group.cpp b/app/node/group/group.cpp index 793140c8a..a3089478d 100644 --- a/app/node/group/group.cpp +++ b/app/node/group/group.cpp @@ -53,6 +53,8 @@ QString NodeGroup::Description() const void NodeGroup::Retranslate() { + super::Retranslate(); + for (auto it=GetContextPositions().cbegin(); it!=GetContextPositions().cend(); it++) { it.key()->Retranslate(); } diff --git a/app/node/input/value/valuenode.cpp b/app/node/input/value/valuenode.cpp index 215e7a08c..00b3d0c5c 100644 --- a/app/node/input/value/valuenode.cpp +++ b/app/node/input/value/valuenode.cpp @@ -48,6 +48,8 @@ ValueNode::ValueNode() void ValueNode::Retranslate() { + super::Retranslate(); + SetInputName(kTypeInput, QStringLiteral("Type")); SetInputName(kValueInput, QStringLiteral("Value")); diff --git a/app/node/keying/colordifferencekey/colordifferencekey.cpp b/app/node/keying/colordifferencekey/colordifferencekey.cpp index a805ab550..5770d0f55 100644 --- a/app/node/keying/colordifferencekey/colordifferencekey.cpp +++ b/app/node/keying/colordifferencekey/colordifferencekey.cpp @@ -25,6 +25,8 @@ const QString ColorDifferenceKeyNode::kShadowsInput = QStringLiteral("shadows_in const QString ColorDifferenceKeyNode::kHighlightsInput = QStringLiteral("highlights_in"); const QString ColorDifferenceKeyNode::kMaskOnlyInput = QStringLiteral("mask_only_in"); +#define super Node + ColorDifferenceKeyNode::ColorDifferenceKeyNode() { AddInput(kTextureInput, NodeValue::kTexture, InputFlags(kInputFlagNotKeyframable)); @@ -74,6 +76,8 @@ QString ColorDifferenceKeyNode::Description() const void ColorDifferenceKeyNode::Retranslate() { + super::Retranslate(); + SetInputName(kTextureInput, tr("Input")); SetInputName(kGarbageMatteInput, tr("Garbage Matte")); SetInputName(kCoreMatteInput, tr("Core Matte")); diff --git a/app/node/keying/despill/despill.cpp b/app/node/keying/despill/despill.cpp index 09a8f2f45..344b1f869 100644 --- a/app/node/keying/despill/despill.cpp +++ b/app/node/keying/despill/despill.cpp @@ -24,6 +24,8 @@ const QString DespillNode::kColorInput = QStringLiteral("color_in"); const QString DespillNode::kMethodInput = QStringLiteral("method_in"); const QString DespillNode::kPreserveLuminanceInput = QStringLiteral("preserve_luminance_input"); +#define super Node + DespillNode::DespillNode() { AddInput(kTextureInput, NodeValue::kTexture, InputFlags(kInputFlagNotKeyframable)); @@ -65,12 +67,13 @@ QString DespillNode::Description() const void DespillNode::Retranslate() { + super::Retranslate(); + SetInputName(kTextureInput, tr("Input")); SetInputName(kColorInput, tr("Key Color")); SetComboBoxStrings(kColorInput, {tr("Green"), tr("Blue")}); - SetInputName(kMethodInput, tr("Method")); SetComboBoxStrings(kMethodInput, {tr("Average"), tr("Double Red Average"), tr("Double Average"), tr("Limit")}); diff --git a/app/node/math/math/math.cpp b/app/node/math/math/math.cpp index d601c2a8d..932a963d1 100644 --- a/app/node/math/math/math.cpp +++ b/app/node/math/math/math.cpp @@ -27,6 +27,8 @@ const QString MathNode::kParamAIn = QStringLiteral("param_a_in"); const QString MathNode::kParamBIn = QStringLiteral("param_b_in"); const QString MathNode::kParamCIn = QStringLiteral("param_c_in"); +#define super MathNodeBase + MathNode::MathNode() { AddInput(kMethodIn, NodeValue::kCombo, InputFlags(kInputFlagNotConnectable | kInputFlagNotKeyframable)); @@ -67,7 +69,7 @@ QString MathNode::Description() const void MathNode::Retranslate() { - Node::Retranslate(); + super::Retranslate(); SetInputName(kMethodIn, tr("Method")); SetInputName(kParamAIn, tr("Value")); diff --git a/app/node/math/merge/merge.cpp b/app/node/math/merge/merge.cpp index 5b1582c84..5940358aa 100644 --- a/app/node/math/merge/merge.cpp +++ b/app/node/math/merge/merge.cpp @@ -27,6 +27,8 @@ namespace olive { const QString MergeNode::kBaseIn = QStringLiteral("base_in"); const QString MergeNode::kBlendIn = QStringLiteral("blend_in"); +#define super Node + MergeNode::MergeNode() { AddInput(kBaseIn, NodeValue::kTexture, InputFlags(kInputFlagNotKeyframable)); @@ -63,6 +65,8 @@ QString MergeNode::Description() const void MergeNode::Retranslate() { + super::Retranslate(); + SetInputName(kBaseIn, tr("Base")); SetInputName(kBlendIn, tr("Blend")); diff --git a/app/node/math/trigonometry/trigonometry.cpp b/app/node/math/trigonometry/trigonometry.cpp index 3899cc6e4..5c6e16663 100644 --- a/app/node/math/trigonometry/trigonometry.cpp +++ b/app/node/math/trigonometry/trigonometry.cpp @@ -25,6 +25,8 @@ namespace olive { const QString TrigonometryNode::kMethodIn = QStringLiteral("method_in"); const QString TrigonometryNode::kXIn = QStringLiteral("x_in"); +#define super Node + TrigonometryNode::TrigonometryNode() { AddInput(kMethodIn, NodeValue::kCombo, InputFlags(kInputFlagNotConnectable | kInputFlagNotKeyframable)); @@ -59,6 +61,8 @@ QString TrigonometryNode::Description() const void TrigonometryNode::Retranslate() { + super::Retranslate(); + QStringList strings = {tr("Sine"), tr("Cosine"), tr("Tangent"), diff --git a/app/node/node.cpp b/app/node/node.cpp index b0a7ec8aa..12b92d665 100644 --- a/app/node/node.cpp +++ b/app/node/node.cpp @@ -42,6 +42,8 @@ namespace olive { #define super QObject +const QString Node::kEnabledInput = QStringLiteral("enabled_in"); + Node::Node() : can_be_deleted_(true), override_color_(-1), @@ -49,9 +51,9 @@ Node::Node() : operation_stack_(0), cache_result_(false), flags_(kNone), - effect_element_(-1), - bypass_(false) + effect_element_(-1) { + AddInput(kEnabledInput, NodeValue::kBoolean, true); } Node::~Node() @@ -105,6 +107,7 @@ QString Node::Description() const void Node::Retranslate() { + SetInputName(kEnabledInput, tr("Enabled")); } QIcon Node::icon() const diff --git a/app/node/node.h b/app/node/node.h index 66b5497fe..106448c1c 100644 --- a/app/node/node.h +++ b/app/node/node.h @@ -896,9 +896,6 @@ public: cache_result_ = e; } - bool IsBypassed() const { return bypass_; } - void SetBypassed(bool e) { bypass_ = e; } - class ArrayRemoveCommand : public UndoCommand { public: @@ -959,6 +956,8 @@ public: static void SetValueAtTime(const NodeInput &input, const rational &time, const QVariant &value, int track, MultiUndoCommand *command, bool insert_on_all_tracks_if_no_key); + static const QString kEnabledInput; + protected: virtual void Hash(QCryptographicHash& hash, const NodeGlobals &globals, const VideoParams& video_params) const; @@ -1361,8 +1360,6 @@ private: QString effect_input_; int effect_element_; - bool bypass_; - private slots: /** * @brief Slot when a keyframe's time changes to keep the keyframes correctly sorted by time diff --git a/app/node/output/track/track.cpp b/app/node/output/track/track.cpp index 6325285d0..f4244804b 100644 --- a/app/node/output/track/track.cpp +++ b/app/node/output/track/track.cpp @@ -277,7 +277,7 @@ void Track::InputValueChangedEvent(const QString &input, int element) void Track::Retranslate() { - Node::Retranslate(); + super::Retranslate(); SetInputName(kBlockInput, tr("Blocks")); SetInputName(kMutedInput, tr("Muted")); diff --git a/app/node/project/projectsettings/projectsettings.cpp b/app/node/project/projectsettings/projectsettings.cpp index 2ed08b05b..59b3bedc0 100644 --- a/app/node/project/projectsettings/projectsettings.cpp +++ b/app/node/project/projectsettings/projectsettings.cpp @@ -25,6 +25,8 @@ namespace olive { const QString ProjectSettingsNode::kCacheSetting = QStringLiteral("cache_setting"); const QString ProjectSettingsNode::kCachePath = QStringLiteral("cache_path"); +#define super Node + ProjectSettingsNode::ProjectSettingsNode() { AddInput(kCacheSetting, NodeValue::kCombo, 0, InputFlags(kInputFlagNotConnectable | kInputFlagNotKeyframable)); @@ -36,6 +38,8 @@ ProjectSettingsNode::ProjectSettingsNode() void ProjectSettingsNode::Retranslate() { + super::Retranslate(); + SetInputName(kCacheSetting, tr("Disk Cache Location")); SetInputName(kCachePath, tr("Disk Cache Path")); SetComboBoxStrings(kCacheSetting, {tr("Use Default Location"), tr("Store Alongside Project"), tr("Use Custom Location")}); diff --git a/app/node/time/timeoffset/timeoffsetnode.cpp b/app/node/time/timeoffset/timeoffsetnode.cpp index d137847ee..0ef179393 100644 --- a/app/node/time/timeoffset/timeoffsetnode.cpp +++ b/app/node/time/timeoffset/timeoffsetnode.cpp @@ -41,6 +41,8 @@ TimeOffsetNode::TimeOffsetNode() void TimeOffsetNode::Retranslate() { + super::Retranslate(); + SetInputName(kTimeInput, QStringLiteral("Time")); SetInputName(kInputInput, QStringLiteral("Input")); } diff --git a/app/node/time/timeremap/timeremap.cpp b/app/node/time/timeremap/timeremap.cpp index 1f52a27c4..ff2b1ff77 100644 --- a/app/node/time/timeremap/timeremap.cpp +++ b/app/node/time/timeremap/timeremap.cpp @@ -87,6 +87,8 @@ TimeRange TimeRemapNode::OutputTimeAdjustment(const QString &input, int element, void TimeRemapNode::Retranslate() { + super::Retranslate(); + SetInputName(kTimeInput, QStringLiteral("Time")); SetInputName(kInputInput, QStringLiteral("Input")); } diff --git a/app/node/traverser.cpp b/app/node/traverser.cpp index 754995a5d..62dca9c79 100644 --- a/app/node/traverser.cpp +++ b/app/node/traverser.cpp @@ -246,20 +246,33 @@ NodeValueTable NodeTraverser::GenerateTable(const Node *n, const Node::ValueHint // Generate row for node NodeValueDatabase database = GenerateDatabase(n, range); - NodeValueRow row = GenerateRow(&database, n, range); - //qDebug() << "FIXME: Implement pre-process of row"; + // Check for bypass + bool is_enabled; + if (!database[Node::kEnabledInput].Has(NodeValue::kBoolean)) { + // Fallback if we couldn't find a bool value + is_enabled = true; + } else { + is_enabled = database[Node::kEnabledInput].Get(NodeValue::kBoolean).toBool(); + } - // Generate output table - NodeValueTable table = database.Merge(); + if (is_enabled) { + NodeValueRow row = GenerateRow(&database, n, range); + //qDebug() << "FIXME: Implement pre-process of row"; - // By this point, the node should have all the inputs it needs to render correctly - n->Value(row, GenerateGlobals(video_params_, range), &table); + // Generate output table + NodeValueTable table = database.Merge(); - // Post-process table - PostProcessTable(n, hint, range, table); + // By this point, the node should have all the inputs it needs to render correctly + n->Value(row, GenerateGlobals(video_params_, range), &table); - return table; + // Post-process table + PostProcessTable(n, hint, range, table); + + return table; + } else { + return database.Merge(); + } } NodeValueTable NodeTraverser::GenerateBlockTable(const Track *track, const TimeRange &range) diff --git a/app/widget/nodeparamview/nodeparamviewitem.cpp b/app/widget/nodeparamview/nodeparamviewitem.cpp index 7fedb2fea..9a61e0718 100644 --- a/app/widget/nodeparamview/nodeparamviewitem.cpp +++ b/app/widget/nodeparamview/nodeparamviewitem.cpp @@ -63,6 +63,11 @@ NodeParamViewItem::NodeParamViewItem(Node *node, NodeParamViewCheckBoxBehavior c setBackgroundRole(QPalette::Window); + // Connect title bar enabled checkbox + //title_bar()->SetEnabledCheckBoxVisible(true); + //title_bar()->SetEnabledCheckBoxChecked(node_->IsEnabled()); + //connect(title_bar(), &NodeParamViewItemTitleBar::EnabledCheckBoxClicked, node_, &Node::SetEnabled); + Retranslate(); } diff --git a/app/widget/nodeparamview/nodeparamviewitemtitlebar.cpp b/app/widget/nodeparamview/nodeparamviewitemtitlebar.cpp index 6d61bd1ba..1d79ff4d9 100644 --- a/app/widget/nodeparamview/nodeparamviewitemtitlebar.cpp +++ b/app/widget/nodeparamview/nodeparamviewitemtitlebar.cpp @@ -56,6 +56,11 @@ NodeParamViewItemTitleBar::NodeParamViewItemTitleBar(QWidget *parent) : pin_btn_->setVisible(false); layout->addWidget(pin_btn_); connect(pin_btn_, &QPushButton::clicked, this, &NodeParamViewItemTitleBar::PinToggled); + + enabled_checkbox_ = new QCheckBox(); + enabled_checkbox_->setVisible(false); + layout->addWidget(enabled_checkbox_); + connect(enabled_checkbox_, &QCheckBox::clicked, this, &NodeParamViewItemTitleBar::EnabledCheckBoxClicked); } void NodeParamViewItemTitleBar::SetExpanded(bool e) diff --git a/app/widget/nodeparamview/nodeparamviewitemtitlebar.h b/app/widget/nodeparamview/nodeparamviewitemtitlebar.h index 7ddaac1aa..9bea7f06f 100644 --- a/app/widget/nodeparamview/nodeparamviewitemtitlebar.h +++ b/app/widget/nodeparamview/nodeparamviewitemtitlebar.h @@ -21,6 +21,7 @@ #ifndef NODEPARAMVIEWITEMTITLEBAR_H #define NODEPARAMVIEWITEMTITLEBAR_H +#include #include #include @@ -59,6 +60,16 @@ public slots: add_fx_btn_->setVisible(e); } + void SetEnabledCheckBoxVisible(bool e) + { + enabled_checkbox_->setVisible(e); + } + + void SetEnabledCheckBoxChecked(bool e) + { + enabled_checkbox_->setChecked(e); + } + signals: void ExpandedStateChanged(bool e); @@ -66,6 +77,8 @@ signals: void AddEffectButtonClicked(); + void EnabledCheckBoxClicked(bool e); + protected: virtual void paintEvent(QPaintEvent *event) override; @@ -82,6 +95,8 @@ private: QPushButton *add_fx_btn_; + QCheckBox *enabled_checkbox_; + }; } From 827dd98d6cf1941698693d60e15633bcdbda9008 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Tue, 26 Apr 2022 15:19:04 -0700 Subject: [PATCH 110/114] nodeparamview: implement deleting node --- app/widget/nodeparamview/nodeparamview.cpp | 23 +++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/app/widget/nodeparamview/nodeparamview.cpp b/app/widget/nodeparamview/nodeparamview.cpp index c299b882b..8af158346 100644 --- a/app/widget/nodeparamview/nodeparamview.cpp +++ b/app/widget/nodeparamview/nodeparamview.cpp @@ -28,6 +28,7 @@ #include "common/functiontimer.h" #include "common/timecodefunctions.h" #include "node/output/viewer/viewer.h" +#include "widget/nodeview/nodeviewundo.h" namespace olive { @@ -369,8 +370,28 @@ Node *NodeParamView::GetTimeTarget() const void NodeParamView::DeleteSelected() { - if (keyframe_view_) { + if (keyframe_view_ && keyframe_view_->hasFocus()) { keyframe_view_->DeleteSelected(); + } else if (focused_node_) { + MultiUndoCommand *c = new MultiUndoCommand(); + Node *n = focused_node_->GetNode(); + + // Create command to delete node from context and/or graph + NodeViewDeleteCommand *dc = new NodeViewDeleteCommand(); + dc->AddNode(n, focused_node_->GetContext()); + c->add_child(dc); + + // Copy any outputs that were connected + if (n->GetEffectInput().IsValid()) { + if (Node *out = n->GetEffectInput().GetConnectedOutput()) { + for (auto it=n->output_connections().cbegin(); it!=n->output_connections().cend(); it++) { + c->add_child(new NodeEdgeAddCommand(out, it->second)); + } + } + } + + + Core::instance()->undo_stack()->push(c); } } From 7825d0e16d38c04188b021e160fea609da3cf7d0 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu, 28 Apr 2022 09:54:49 -0700 Subject: [PATCH 111/114] nodeview: improved drop functionality --- app/widget/nodeview/nodeview.cpp | 36 ++++++++++++++++---------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/app/widget/nodeview/nodeview.cpp b/app/widget/nodeview/nodeview.cpp index 2f4041123..f11703822 100644 --- a/app/widget/nodeview/nodeview.cpp +++ b/app/widget/nodeview/nodeview.cpp @@ -500,26 +500,26 @@ void NodeView::mouseMoveEvent(QMouseEvent *event) if (new_drop_edge) { drop_input_.Reset(); - NodeValue::Type drop_edge_data_type = NodeValue::kNone; + NodeValue::Type drop_edge_data_type = new_drop_edge->input().GetDataType(); - // Run the Node and determine what type is being used - NodeTraverser traverser; - NodeValue drop_edge_value = traverser.GenerateRow(new_drop_edge->output(), TimeRange(0, 0))[new_drop_edge->input().input()]; - drop_edge_data_type = drop_edge_value.type(); + // Determine best input to connect to our new node + if (attached_node->GetEffectInput().IsValid()) { + // If node specifies an effect input, use that immediately + drop_input_ = attached_node->GetEffectInput(); + } else { + // Otherwise, we may have to iterate to find a valid one + for (const QString& input : attached_node->inputs()) { + NodeInput i(attached_node, input); - // Iterate through the inputs of our dragging node and see if our node has any acceptable - // inputs to connect to for this type - for (const QString& input : attached_node->inputs()) { - NodeInput i(attached_node, input); - - if (attached_node->IsInputConnectable(input)) { - if (attached_node->GetInputDataType(input) == drop_edge_data_type) { - // Found exactly the type we're looking for, set and break this loop - drop_input_ = i; - break; - } else if (!drop_input_.IsValid()) { - // Default to first connectable input - drop_input_ = i; + if (attached_node->IsInputConnectable(input)) { + if (attached_node->GetInputDataType(input) == drop_edge_data_type) { + // Found exactly the type we're looking for, set and break this loop + drop_input_ = i; + break; + } else if (!drop_input_.IsValid()) { + // Default to first connectable input + drop_input_ = i; + } } } } From 6e08b61ecc4e1f2b31e05c0f82ffd3efe628dcbe Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Thu, 28 Apr 2022 10:44:02 -0700 Subject: [PATCH 112/114] nodeview: prevent default behavior when items are attached Fixes buggy behavior when dropping attached nodes and moving the cursor --- app/widget/nodeview/nodeview.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/app/widget/nodeview/nodeview.cpp b/app/widget/nodeview/nodeview.cpp index f11703822..c5bcb355a 100644 --- a/app/widget/nodeview/nodeview.cpp +++ b/app/widget/nodeview/nodeview.cpp @@ -451,8 +451,10 @@ void NodeView::mousePressEvent(QMouseEvent *event) } } - // Default QGraphicsView functionality (selecting, dragging, etc.) - super::mousePressEvent(event); + if (attached_items_.isEmpty()) { + // Default QGraphicsView functionality (selecting, dragging, etc.) + super::mousePressEvent(event); + } // For any selected item, store its position in case the user is dragging it somewhere else auto selected_items = scene_.GetSelectedItems(); @@ -473,7 +475,9 @@ void NodeView::mouseMoveEvent(QMouseEvent *event) return; } - super::mouseMoveEvent(event); + if (attached_items_.isEmpty()) { + super::mouseMoveEvent(event); + } // See if there are any items attached if (!attached_items_.isEmpty()) { @@ -560,6 +564,8 @@ void NodeView::mouseReleaseEvent(QMouseEvent *event) Node *select_context = nullptr; QVector select_nodes; + bool had_attached_items = !attached_items_.isEmpty(); + if (!attached_items_.isEmpty()) { select_context = nullptr; @@ -643,7 +649,9 @@ void NodeView::mouseReleaseEvent(QMouseEvent *event) Core::instance()->undo_stack()->pushIfHasChildren(command); - super::mouseReleaseEvent(event); + if (!had_attached_items) { + super::mouseReleaseEvent(event); + } if (select_context) { scene_.context_map().value(select_context)->Select(select_nodes); From 67f1a1ad0cf00680020820a8dc862c9ef9aa751f Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun, 1 May 2022 10:27:15 -0700 Subject: [PATCH 113/114] viewer: improve safe margins rendering --- app/widget/viewer/viewerdisplay.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/widget/viewer/viewerdisplay.cpp b/app/widget/viewer/viewerdisplay.cpp index 7914763a9..4a41a4c43 100644 --- a/app/widget/viewer/viewerdisplay.cpp +++ b/app/widget/viewer/viewerdisplay.cpp @@ -514,7 +514,7 @@ void ViewerDisplayWidget::OnPaint() QPainter p(inner_widget()); p.setWorldTransform(GenerateWorldTransform()); - p.setPen(Qt::lightGray); + p.setPen(QPen(Qt::lightGray, 0)); p.setBrush(Qt::NoBrush); int x = 0, y = 0, w = width(), h = height(); From 004c66a073d93f897d50809914548ccbec0ebbb5 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun, 1 May 2022 10:47:58 -0700 Subject: [PATCH 114/114] node: implement find path utility function --- app/node/node.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ app/node/node.h | 2 ++ 2 files changed, 46 insertions(+) diff --git a/app/node/node.cpp b/app/node/node.cpp index 12b92d665..6e02dc68e 100644 --- a/app/node/node.cpp +++ b/app/node/node.cpp @@ -2002,6 +2002,50 @@ void Node::SetValueAtTime(const NodeInput &input, const rational &time, const QV } } +void FindPathInternal(std::list &vec, Node *to, int &path_index) +{ + Node *from = vec.back(); + + for (auto it=from->input_connections().cbegin(); it!=from->input_connections().cend(); it++) { + vec.push_back(it->second); + if (it->second == to) { + // Found a path, determine if it's the one we want + if (path_index == 0) { + // It is! + break; + } else { + path_index--; + } + } + + // Recurse to see if we can find it here + FindPathInternal(vec, to, path_index); + if (vec.back() == to) { + // Found through recursion + break; + } else { + // Must not be available through this path + vec.pop_back(); + } + } +} + +std::list Node::FindPath(Node *from, Node *to, int path_index) +{ + std::list v; + + v.push_back(from); + + FindPathInternal(v, to, path_index); + + if (v.size() == 1) { + // Failed to find path, return empty list + v.pop_back(); + } + + return v; +} + Project *Node::ArrayInsertCommand::GetRelevantProject() const { return node_->project(); diff --git a/app/node/node.h b/app/node/node.h index 106448c1c..98fcd8e27 100644 --- a/app/node/node.h +++ b/app/node/node.h @@ -956,6 +956,8 @@ public: static void SetValueAtTime(const NodeInput &input, const rational &time, const QVariant &value, int track, MultiUndoCommand *command, bool insert_on_all_tracks_if_no_key); + static std::list FindPath(Node *from, Node *to, int path_index = 0); + static const QString kEnabledInput; protected: