diff --git a/Spotlight/SpotlightPanel.xib b/Spotlight/SpotlightPanel.xib
index eb8486f34..1aea4ecbf 100644
--- a/Spotlight/SpotlightPanel.xib
+++ b/Spotlight/SpotlightPanel.xib
@@ -8,8 +8,8 @@
352.00
6
- System
+ System
headerTextColor
3
@@ -131,12 +131,12 @@
337772096
2048
- Text Cell
+ Text Cell
6
-
+
controlBackgroundColor
3
@@ -145,7 +145,7 @@
6
-
+
controlTextColor
@@ -166,7 +166,7 @@
6
-
+
headerColor
3
@@ -178,7 +178,7 @@
337772096
2048
-
+
@@ -204,7 +204,7 @@
337772096
2048
-
+
@@ -311,7 +311,7 @@
337772096
67110912
-
+
@@ -327,7 +327,7 @@
6
-
+
gridColor
3
@@ -418,7 +418,7 @@
1
6
-
+
textBackgroundColor
@@ -471,19 +471,19 @@
289
- {{88, 14}, {96, 17}}
+ {{88, 13}, {96, 17}}
YES
67239488
272630784
- Search Path:
+ Search Folder:
6
-
+
controlColor
@@ -501,7 +501,7 @@
NSFilenamesPboardType
- {{189, 10}, {271, 26}}
+ {{189, 9}, {271, 26}}
YES
@@ -553,17 +553,21 @@
1048576
2147483647
- NSImage
+ NSImage
NSMenuCheckmark
-
+
NSMenuMixedState
+
+ YES
+ spotlightSearchPath
+
YES
@@ -758,26 +762,6 @@
154
-
-
- value: spotlightSearchPath
-
-
-
-
-
-
-
- spotlightSearchPath
-
- NSValueTransformerName
- StringToURLTransformer
-
- 2
-
-
- 157
-
pathControl
@@ -846,7 +830,7 @@
contentArray
query.results
-
+ NSValueTransformerName
PausingQueryTransformer
2
@@ -862,6 +846,26 @@
184
+
+
+ value: values.spotlightSearchPath
+
+
+
+
+
+
+ value
+ values.spotlightSearchPath
+
+ NSValueTransformerName
+ StringToURLTransformer
+
+ 2
+
+
+ 193
+
@@ -1291,14 +1295,159 @@
- 190
+ 193
YES
+
+ DNDArrayController
+ NSArrayController
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+ tableView
+ NSTableView
+
+
+ IBProjectSource
+ Playlist/DNDArrayController.h
+
+
+
+ NSObject
+
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+
+ ThirdParty/GCWindowMenu/GCOneShotEffectTimer.h
+
+
+
+
+
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+
+ ThirdParty/NDHotKeys/NDHotKeyEvent.h
+
+
+
+
+
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+
+ ThirdParty/AppleRemote/AppleRemote.h
+
+
+
+ PlaylistController
+ DNDArrayController
+
+ YES
+
+ YES
+ clear:
+ clearFilterPredicate:
+ searchByAlbum:
+ searchByArtist:
+ showEntryInFinder:
+ takeRepeatFromObject:
+ takeShuffleFromObject:
+
+
+ YES
+ id
+
+
+
+
+
+
+
+
+
+ YES
+
+ YES
+ entriesController
+ playlistLoader
+ spotlightWindowController
+
+
+ YES
+ EntriesController
+ PlaylistLoader
+ SpotlightWindowController
+
+
+
+
+ Playlist/PlaylistController.h
+
+
PlaybackController
- NSObject
+
YES
@@ -1324,24 +1473,24 @@
YES
- id
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1368,59 +1517,13 @@
- IBProjectSource
+
Application/PlaybackController.h
- PlaylistController
- DNDArrayController
-
- YES
-
- YES
- clear:
- clearFilterPredicate:
- searchByAlbum:
- searchByArtist:
- showEntryInFinder:
- takeRepeatFromObject:
- takeShuffleFromObject:
-
-
- YES
-
-
-
-
-
-
-
-
-
-
- YES
-
- YES
- entriesController
- playlistLoader
- spotlightWindowController
-
-
- YES
- EntriesController
- PlaylistLoader
- SpotlightWindowController
-
-
-
-
- Playlist/PlaylistController.h
-
-
-
- SpotlightPlaylistController
- PlaylistController
+ PlaylistLoader
+
YES
@@ -1431,17 +1534,12 @@
- YES
-
- YES
-
-
- YES
-
+ playlistController
+ PlaylistController
-
- Spotlight/SpotlightPlaylistController.h
+
+ Playlist/PlaylistLoader.h
@@ -1466,10 +1564,103 @@
-
+
Utils/TrackingSlider.h
+
+ SpotlightPlaylistController
+ PlaylistController
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+
+ Spotlight/SpotlightPlaylistController.h
+
+
+
+ SpotlightWindowController
+ NSWindowController
+
+ addToPlaylist:
+
+
+
+ YES
+
+ YES
+ pathControl
+ playlistController
+ playlistLoader
+ searchField
+
+
+ YES
+ NSPathControl
+ NSArrayController
+ PlaylistLoader
+ NSSearchField
+
+
+
+
+ Spotlight/SpotlightWindowController.h
+
+
+
+ PlaylistView
+ NSTableView
+
+ YES
+
+ YES
+ scrollToCurrentEntry:
+ shufflePlaylist:
+ sortByPath:
+ toggleColumn:
+
+
+ YES
+
+
+
+
+
+
+
+ YES
+
+ YES
+ playbackController
+ playlistController
+
+
+ YES
+ PlaybackController
+ PlaylistController
+
+
+
+
+ Playlist/PlaylistView.h
+
+
EntriesController
@@ -1492,197 +1683,10 @@
-
+
Playlist/EntriesController.h
-
- PlaylistView
- NSTableView
-
- YES
-
- YES
- scrollToCurrentEntry:
- shufflePlaylist:
- sortByPath:
- toggleColumn:
-
-
- YES
-
-
-
-
-
-
-
- YES
-
- YES
- playbackController
- playlistController
-
-
- YES
- PlaybackController
- PlaylistController
-
-
-
-
- Playlist/PlaylistView.h
-
-
-
- DNDArrayController
- NSArrayController
-
- YES
-
- YES
-
-
- YES
-
-
-
- tableView
- NSTableView
-
-
-
- Playlist/DNDArrayController.h
-
-
-
-
-
-
- YES
-
- YES
-
-
- YES
-
-
-
- YES
-
- YES
-
-
- YES
-
-
-
-
- ThirdParty/AppleRemote/AppleRemote.h
-
-
-
-
-
-
- YES
-
- YES
-
-
- YES
-
-
-
- YES
-
- YES
-
-
- YES
-
-
-
-
- ThirdParty/NDHotKeys/NDHotKeyEvent.h
-
-
-
-
-
-
- YES
-
- YES
-
-
- YES
-
-
-
- YES
-
- YES
-
-
- YES
-
-
-
-
- ThirdParty/GCWindowMenu/GCOneShotEffectTimer.h
-
-
-
- SpotlightWindowController
- NSWindowController
-
- addToPlaylist:
-
-
-
- YES
-
- YES
- pathControl
- playlistController
- playlistLoader
- searchField
-
-
- YES
- NSPathControl
- NSArrayController
- PlaylistLoader
- NSSearchField
-
-
-
-
- Spotlight/SpotlightWindowController.h
-
-
-
- PlaylistLoader
-
-
- YES
-
- YES
-
-
- YES
-
-
-
- playlistController
- PlaylistController
-
-
-
- Playlist/PlaylistLoader.h
-
-
0
@@ -1690,267 +1694,268 @@
3
YnBsaXN0MDDUAAEAAgADAAQABQAGAAkAClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIA
-AYag0QAHAAhdSUIub2JqZWN0ZGF0YYABXxAPTlNLZXllZEFyY2hpdmVyrxEBZwALAAwAMQA1ADYAPAA9
-AEEARQBeAGYAdgB7AHwAfQCCAIMAhACHAIsAjACPAJ4AnwCgAKoAqwCsAK0ArgCvALAAsQC1ALYAuAC6
-AL0AvgDCAMcA8wD0APUBBwALAQgBEAEbARwBIQEnAT0BPgFBAUsBXgFqAWsBcwF0AXcBfAF/AYcBiAGJ
-AYwBkgGcAZ0BogGnAagBqwGwAbEBswG2Ab8BxgHHAcwBzQHQAdcB4AHmAecB7gH5AgACAQGcAgkCEwIZ
-AhoCIQIqAjACMQI4AkACRgJHAk4CUwJUAlcCWAJZAl0CXwJgAmMCaAJpAm4CbwJ0AnUCegKTApQClQKW
-ApcCngKmAq8CsALCAsMCxALHAssC0wLXAtgC2wLnAugC6QLsAvYC9wEbAvsC/AL/AwgDCQMbAyADIQMs
-Ay0DLgM3AzgDPANFA0YDRwDmA0gDTANNA1ADVANdA14DZwNoA20DbgNwA3oDfwOAA4EDggONA5ADkwOW
-AAsDlwOZA5oDmwOeA58DpAOlA6oDqwOwA7EDtgO3A7wDwQPCA84DzwPQA9ED1wPYA9oD3QPlA+YD5wPt
-A+4D7wP3A/gD+QP/BAYEBwQIBBAEEQQSBBgEIAQhBCIEKAQwBDEEMgQzBDkEOgRCBEMERARKBFIEUwRU
-BFoEYgRjBGQEagSPBJIEkwSXBJsEnQTCBOgFDgUPBRAFEQUSBRMFFAUVBRYFFwUYBRkFGgUbBRwFHQUe
-BR8FIAUhBSIFIwUkBSUFJgUnBSgFKQUqBSsFLAUtBS4FLwUwBTEFNgU7BXcFswW0BbUFtgW3BbgFuQW6
-BbsFvAKQBb0BhAW+Bb8FwAXBBcIFwwXEArkFxQXGBccFyAXJBcoFywXMBc0FzgXPBdAF0QXSBdMF1AXV
-BdYF1wXYBdkF2gXbBdwF3QXeBd8F4AXhBeIF4wXkBeUBMgD/BeYF6QXsBe9VJG51bGzfEBIADQAOAA8A
-EAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0A
-LgAvADBWTlNSb290ViRjbGFzc11OU09iamVjdHNLZXlzXxAPTlNDbGFzc2VzVmFsdWVzXxAZTlNBY2Nl
-c3NpYmlsaXR5T2lkc1ZhbHVlc11OU0Nvbm5lY3Rpb25zW05TTmFtZXNLZXlzW05TRnJhbWV3b3JrXU5T
-Q2xhc3Nlc0tleXNaTlNPaWRzS2V5c11OU05hbWVzVmFsdWVzXxAZTlNBY2Nlc3NpYmlsaXR5Q29ubmVj
-dG9yc11OU0ZvbnRNYW5hZ2VyXxAQTlNWaXNpYmxlV2luZG93c18QD05TT2JqZWN0c1ZhbHVlc18QF05T
-QWNjZXNzaWJpbGl0eU9pZHNLZXlzWU5TTmV4dE9pZFxOU09pZHNWYWx1ZXOAAoEBZoD7gQEogQFlgAiB
-AQKABYEBJ4EBKYEBA4EBY4AAgAaBAQGBAWQQwIEBKtIADgAyADMANFtOU0NsYXNzTmFtZYAEgANfEBlT
-cG90bGlnaHRXaW5kb3dDb250cm9sbGVy0gA3ADgAOQA6WCRjbGFzc2VzWiRjbGFzc25hbWWiADoAO15O
-U0N1c3RvbU9iamVjdFhOU09iamVjdF8QEElCQ29jb2FGcmFtZXdvcmvSAA4APgA/AEBaTlMub2JqZWN0
-c4AHoNIANwA4AEIAQ6MAQwBEADtcTlNNdXRhYmxlU2V0VU5TU2V00gAOAD4ARgBHgCCvEBYASABJAEoA
-SwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXYAJgCeAc4B1gHeAeYDBgMOAxYDHgMmA
-yoDMgNSA2oDegOGA5YDpgO+A84D31AAOAF8AYABhAGIAYwBkAGVdTlNEZXN0aW5hdGlvblhOU1NvdXJj
-ZVdOU0xhYmVsgCaAFYAKgCXYAA4AZwBoAGkAagBrAGwAbQBuAG8AcABxAHIAcwB0AHVXTlNUaXRsZV8Q
-EU5TS2V5RXF1aXZNb2RNYXNrWk5TS2V5RXF1aXZdTlNNbmVtb25pY0xvY1lOU09uSW1hZ2VcTlNNaXhl
-ZEltYWdlVk5TTWVudYAUgAwSABAAAIANEn////+ADoASgAvTAA4AZwB3AHgAeQB6W05TTWVudUl0ZW1z
-gHCAboBvXlNob3cgaW4gRmluZGVyUNMADgAyAH4AfwCAAIFeTlNSZXNvdXJjZU5hbWWAEYAPgBBXTlNJ
-bWFnZV8QD05TTWVudUNoZWNrbWFya9IANwA4AIUAhqIAhgA7XxAQTlNDdXN0b21SZXNvdXJjZdMADgAy
-AH4AfwCAAIqAEYAPgBNfEBBOU01lbnVNaXhlZFN0YXRl0gA3ADgAjQCOogCOADtaTlNNZW51SXRlbdgA
-kAAOAJEAkgCTAJQAlQAyAJYAlwCYAJYAmgCbAJwAnV8QGk5TRmlsdGVyUmVzdHJpY3RzSW5zZXJ0aW9u
-XxATTlNPcmlnaW5hbENsYXNzTmFtZVpOU0VkaXRhYmxlXxAPX05TTWFuYWdlZFByb3h5XxARTlNPYmpl
-Y3RDbGFzc05hbWVeTlNEZWNsYXJlZEtleXMJgCSAFwmAIoAhgBiAFl8QG1Nwb3RsaWdodFBsYXlsaXN0
-Q29udHJvbGxlcl8QEU5TQXJyYXlDb250cm9sbGVy0gAOAD4ARgCigCCnAKMApAClAKYApwCoAKmAGYAa
-gBuAHIAdgB6AH1V0aXRsZVR5ZWFyVmFydGlzdFVhbGJ1bVVnZW5yZVZsZW5ndGhVdHJhY2vSADcAOACy
-ALOjALMAtAA7Xk5TTXV0YWJsZUFycmF5V05TQXJyYXldUGxheWxpc3RFbnRyedEADgC3gCPSADcAOAC5
-AJOiAJMAO9IANwA4ALsAvKIAvAA7Xk5TQ2xhc3NTd2FwcGVyXxASc2hvd0VudHJ5SW5GaW5kZXI60gA3
-ADgAvwDAowDAAMEAO18QFU5TTmliQ29udHJvbENvbm5lY3Rvcl5OU05pYkNvbm5lY3RvctQADgBfAGAA
-YQDDAHUAxQDGgHKAC4AogHHfEBcAyADJAA4AygCRAMsAzADNAM4AzwDQANEA0gDTANQA1QDWADIA1wDY
-ANkA2gDbANwA3QCXAN8A4ADhAOIAlgDkAOUA5gDnAOgA6QCWAOsA7ADtAO4A7wDcAPEA8l8QD05TTmV4
-dFJlc3BvbmRlcl8QH05TRHJhZ2dpbmdTb3VyY2VNYXNrRm9yTm9uTG9jYWxZTlNUdkZsYWdzXE5TSGVh
-ZGVyVmlld18QEU5TQmFja2dyb3VuZENvbG9yXxASTlNBbGxvd3NUeXBlU2VsZWN0XE5TQ29ybmVyVmll
-d18QF05TSW50ZXJjZWxsU3BhY2luZ1dpZHRoXxAZTlNDb2x1bW5BdXRvcmVzaXppbmdTdHlsZV8QGE5T
-SW50ZXJjZWxsU3BhY2luZ0hlaWdodFhOU3ZGbGFnc1tOU0ZyYW1lU2l6ZVlOU0VuYWJsZWReTlNBdXRv
-c2F2ZU5hbWVYTlNXaW5kb3dbTlNHcmlkQ29sb3JfEBxOU0RyYWdnaW5nU291cmNlTWFza0ZvckxvY2Fs
-W05TU3VwZXJ2aWV3Xk5TVGFibGVDb2x1bW5zW05TUm93SGVpZ2h0gCsQAIAkE//////bwIAAgCqALoBH
-CYAyI0AIAAAAAAAAEAEjQAAAAAAAAAARERKALAmAbYAtgCmAahAPgCuANiNAMQAAAAAAAFxQbGF5bGlz
-dFZpZXdbTlNUYWJsZVZpZXfbAMgADgD2APcA+ADSAPkA1gD6ANkA+wD8AP0A/gD/AQABAQDFAOwA4gD8
-AMVXTlNGcmFtZVlOU2N2RmxhZ3NaTlNTdWJ2aWV3c1lOU0RvY1ZpZXdZTlNCR0NvbG9yXU5TTmV4dEtl
-eVZpZXeAM4CLgIoQAoCJEQkAgCiALYBHgDOAKFp7NDI1LCAyMTF91wDIAA4A0gDTANYA2QD0AQkBCgEL
-AQwA7AEJAMWAL4AxEQEAgDCALYAvgCjbAMgADgD3APgA0gDTAPkA1gD6ANkA+wD8AP0BEwEUAQEBFQDh
-AOwA4gD8AOGAM4CLEASAkoCTgC6ALYBHgDOALll7NDI1LCAxN33SADcAOAEdAR6kAR4BHwEgADtfEBFO
-U1RhYmxlSGVhZGVyVmlld1ZOU1ZpZXdbTlNSZXNwb25kZXLWAMgADgD2ANIA1gDZAPwBIwEkAQsA7AD8
-gDOANYA0gC2AM98QDwDIASgADgD2ASkAzgEqAPgBKwDSANYA2QEsAPsBLQEuAS8BMAExATIA5AEJATUB
-NgE3AOwBLgE6ANwA3FtOU0hTY3JvbGxlclhOU3NGbGFnc18QEE5TSGVhZGVyQ2xpcFZpZXdcTlNTY3Jv
-bGxBbXRzW05TVlNjcm9sbGVyXU5TQ29udGVudFZpZXeAf4CQgJWAlBAQgDKAL4CITxAQAAAAAAAAAABB
-mAAAQZgAABEBEoAtgH+AjIArgCtfEBR7ezQyNSwgMH0sIHsxNiwgMTd9fdIANwA4AT8BQKQBQAEfASAA
-O11fTlNDb3JuZXJWaWV30gAOAD4ARgFDgCCnAUQBRQFGAUcBSAFJAUqAN4BOgFWAWYBegGKAZtoBTAAO
-AU0BTgFPAVABUQFSAVMA9ACWAVUBVgCjAVgBWQFaAVsBXADFXk5TSXNSZXNpemVhYmxlXE5TSGVhZGVy
-Q2VsbFxOU0lkZW50aWZpZXJXTlNXaWR0aFpOU0RhdGFDZWxsXk5TUmVzaXppbmdNYXNrWk5TTWluV2lk
-dGhaTlNNYXhXaWR0aAmATYA4gBkjQF9AAAAAAACARBADI0BEgAAAAAAAI0CPQAAAAAAAgCjXAV8ADgDM
-AWABYQFiAWMBZAFlAWYBZwFoAN0BaVtOU0NlbGxGbGFnc1pOU0NvbnRlbnRzWU5TU3VwcG9ydFxOU0Nl
-bGxGbGFnczJbTlNUZXh0Q29sb3ISBIH+AIBDgD2AOYA6gD9VVGl0bGXUAA4BbAFtAW4BbwFwAXEBclZO
-U1NpemVWTlNOYW1lWE5TZkZsYWdzgDwjQCYAAAAAAACAOxEMHFxMdWNpZGFHcmFuZGXSADcAOAF1AXai
-AXYAO1ZOU0ZvbnTTAA4BeAF5AXoBWgF7XE5TQ29sb3JTcGFjZVdOU1doaXRlgD5LMC4zMzMzMzI5OQDS
-ADcAOAF9AX6iAX4AO1dOU0NvbG9y1QAOAX4BeAGAAYEBegGDAYQBhQGGW05TQ29sb3JOYW1lXU5TQ2F0
-YWxvZ05hbWWAPoBCEAaAQYBAVlN5c3RlbV8QD2hlYWRlclRleHRDb2xvctMADgF4AXkBegFaAYuAPkIw
-ANIANwA4AY0BjqUBjgGPAZABkQA7XxARTlNUYWJsZUhlYWRlckNlbGxfEA9OU1RleHRGaWVsZENlbGxc
-TlNBY3Rpb25DZWxsVk5TQ2VsbNgBXwAOAMwBYAFhAZMBYgFjAZQBlQDiAZcBmADFAZoBm11OU0NvbnRy
-b2xWaWV3EhQh/kCATIBHgEWARoAoEQgAgEpZVGV4dCBDZWxs1AAOAWwBbQFuAW8BnwFxAaGAPCNAKgAA
-AAAAAIA7EQQU1QAOAX4BeAGAAYEBegGkAYQBpQGGgD6ASYBIgEBfEBZjb250cm9sQmFja2dyb3VuZENv
-bG9y0wAOAXgBeQF6AVoBqoA+SzAuNjY2NjY2NjkA1QAOAX4BeAGAAYEBegGDAYQBrgGGgD6AQoBLgEBf
-EBBjb250cm9sVGV4dENvbG9y0gA3ADgBsgGPpAGPAZABkQA70gA3ADgBtAG1ogG1ADtdTlNUYWJsZUNv
-bHVtbtoBTAAOAU0BTgFPAVABUQFSAVMA9ACWAVUBuQClAbsBvAFaAb0BXADFCYBNgE+AGyNAXgAAAAAA
-AIBUI0BCAAAAAAAAgCjXAV8ADgDMAWABYQFiAWMBwAFlAcIBwwFoAN0BaRIEAf4AgEOAUYBQgDqAP1ZB
-cnRpc3TVAA4BfgF4AYABgQF6AckBhAHKAYaAPoBTgFKAQFtoZWFkZXJDb2xvctMADgF4AXkBegFaAc+A
-PkIxANgBXwAOAMwBYAFhAZMBYgFjAZQBlQDiAZcBmADFAZoBm4BMgEeARYBGgCiAStoBTAAOAU0BTgFP
-AVABUQFSAVMA9ACWAVUB2gCmAdwB3QFaAd4BXADFCYBNgFaAHCNAXoAAAAAAAIBYI0BDgAAAAAAAgCjX
-AV8ADgDMAWABYQFiAWMBwAFlAcIB4wFoAN0BaYBDgFGAV4A6gD9VQWxidW3YAV8ADgDMAWABYQGTAWIB
-YwGUAZUA4gGXAZgAxQGaAZuATIBHgEWARoAogErbAUwB7wFNAU4ADgFPAVABUQFSAVMA9ACWAJYB8gCo
-AVUB9QH2AVoB9wFcAMVYTlNIaWRkZW4JCYBagB6ATSNASQAAAAAAAIBcI0BET2AgAAAAgCjXAV8ADgDM
-AWABYQFiAWMBwAFlAcIB/AFoAf4BaYBDgFGAW4A6EgQAAACAP1ZMZW5ndGjYAV8ADgDMAWABYQGTAWIB
-YwGUAZUA4gIEAZgAxQIHAZuATIBHgF2ARoAoEgQACACAStsBTAHvAU0BTgAOAU8BUAFRAVIBUwD0AJYA
-lgIMAKQBVQIPAhABWgIRAVwAxQkJgF+AGoBNI0BHgAAAAAAAgGEjQCQAAAAAAACAKNcBXwAOAMwBYAFh
-AWIBYwHAAWUBwgIWAWgB/gFpgEOAUYBggDqAP1RZZWFy2AFfAA4AzAFgAWEBkwFiAWMBlAGVAOICBAGY
-AMUCBwGbgEyAR4BdgEaAKIBK2wFMAe8BTQFOAA4BTwFQAVEBUgFTAPQAlgCWAiQApwFVAicCKAFaAhEB
-XADFCQmAY4AdgE0jQEcAAAAAAACAZYAo1wFfAA4AzAFgAWEBYgFjAcABZQHCAi0BaADdAWmAQ4BRgGSA
-OoA/VUdlbnJl2AFfAA4AzAFgAWEBkwFiAWMBlAGVAOICBAGYAMUBmgGbgEyAR4BdgEaAKIBK2gFMAA4B
-TQFOAU8BUAFRAVIBUwD0AJYBVQI7AKkCJwI9AVoCPgInAMUJgE2AZ4AfgGkjQCAAAAAAAACAKNcBXwAO
-AMwBYAFhAWIBYwHAAWUBwgJDAWgB/gFpgEOAUYBogDqAP1VUcmFja9gBXwAOAMwBYAFhAZMBYgFjAZQB
-lQDiAZcBmADFAgcBm4BMgEeARYBGgCiAStUADgF+AXgBgAGBAXoCUAGEAlEBhoA+gGyAa4BAWWdyaWRD
-b2xvctMADgF4AXkBegFaAlaAPkQwLjUAXxAUQ29nU3BvdGxpZ2h0UGxheWxpc3ReQ29udGV4dHVhbE1l
-bnXSAA4APgBGAluAIKEAZIAK0gA3ADgCXgBtogBtADtUbWVuddIANwA4AmECYqMCYgDBADtfEBROU05p
-Yk91dGxldENvbm5lY3RvctQADgBfAGAAYQDDAB8AYwJngHKAAoAVgHRfEBlzcG90bGlnaHRXaW5kb3dD
-b250cm9sbGVy1AAOAF8AYABhAMMAYwDFAm2AcoAVgCiAdlpkYXRhU291cmNl1AAOAF8AYABhAMMAxQBj
-AnOAcoAogBWAeFl0YWJsZVZpZXfUAA4AXwBgAGEAwwJ3AB8CeYBygHqAAoDA3QJ7AA4CfAJ9An4CfwKA
-AoECggKDAoQChQKGAS4CiAKJAooCigKMAo0CjgKPAP8CkAKRACtcTlNXaW5kb3dWaWV3XE5TU2NyZWVu
-UmVjdF8QE05TRnJhbWVBdXRvc2F2ZU5hbWVdTlNXaW5kb3dUaXRsZVlOU1dURmxhZ3NdTlNXaW5kb3dD
-bGFzc18QFk5TV2luZG93Q29udGVudE1pblNpemVcTlNXaW5kb3dSZWN0XxAPTlNXaW5kb3dCYWNraW5n
-XxARTlNXaW5kb3dTdHlsZU1hc2tZTlNNaW5TaXplW05TVmlld0NsYXNzgH+Av4C9gHyAfBP/////oAAA
-AIB9gH6AexAfgL6AAF8QGHt7MTk2LCAxOTJ9LCB7NDgwLCAzMjB9fVlTcG90bGlnaHRXTlNQYW5lbFp7
-NDAwLCAyNjB91wDIAA4A+ADSANMA1gDZAOwCmQKaAQsCmwDsAp2ALYC8gICAuoAtgLvSAA4APgBGAqCA
-IKUCoQD8AqMCpAKlgIGAM4CWgKqAsdgAyAAOAPYBkQDSANQA1gDZAS4CqAKpAqoCqwCWAOwBLoB/gIeA
-goCDEQEJCYAtgH9fEBd7ezMzNSwgMjc1fSwgezEzMSwgMzJ9fdwBXwAOArECsgKzArQBYAFhAZMCtQFi
-ArYBwAK3AHECuQK6ArsCvAGYAqECvwLAAsFfEBNOU0FsdGVybmF0ZUNvbnRlbnRzXxASTlNQZXJpb2Rp
-Y0ludGVydmFsXk5TQnV0dG9uRmxhZ3MyXxAPTlNLZXlFcXVpdmFsZW50XxAPTlNQZXJpb2RpY0RlbGF5
-XU5TQnV0dG9uRmxhZ3OAhoANEBkQgYCFgISARoCBEMgSCAAAABP/////hoJA/18QD0FkZCB0byBQbGF5
-bGlzdFEN0gA3ADgCxQLGpALGAZABkQA7XE5TQnV0dG9uQ2VsbNIANwA4AsgCyaUCyQLKAR8BIAA7WE5T
-QnV0dG9uWU5TQ29udHJvbNIADgA+AEYCzYAgpQDcAToBLwEJAOSAK4CMgJCAL4Ay0gAOAD4ARgLVgCCh
-AMWAKF8QFXt7MCwgMTd9LCB7NDI1LCAyMTF9fdIANwA4AtkC2qQC2gEfASAAO1pOU0NsaXBWaWV32QDI
-AtwADgD2ANIA1gLdANkC3gD8APwC4QLiAQsA7ALkAPwC5lhOU1RhcmdldFhOU0FjdGlvbllOU1BlcmNl
-bnSAM4AzgI+AjYAtgI6AMyM/6jeEoAAAAF8QFnt7NDI1LCAxN30sIHsxNSwgMjExfX1cX2RvU2Nyb2xs
-ZXI60gA3ADgC6gLrpQLrAsoBHwEgADtaTlNTY3JvbGxlctoAyALcAA4A9gEpANIA1gLdANkC3gD8APwC
-4QLwAOYC8QDsAuQA/AL1gDOAM4CPgJET/////4AAAQCALYCOgDMjP+2kYQAAAABfEBl7ey0xMDAsIC0x
-MDB9LCB7NDQwLCAxNX190gAOAD4ARgL5gCChAOGALl8QFnt7MjAsIDQ0fSwgezQ0MCwgMjI4fX3SADcA
-OAL9Av6kAv4BHwEgADtcTlNTY3JvbGxWaWV32ADIAA4A9gGRANIA1ADWANkBLgMBAwIDAwMEAJYA7AEu
-gH+AqYCXgJgRAQoJgC2Af18QFnt7MjAsIDI4Mn0sIHszMTMsIDIyfX3dAV8ADgMKAMwBYAFhAZMBYgML
-AwwDDQMOAWMDDwMQAxEDEgBxAZgCowMWAOYAlgMYAxkBm18QEk5TQ2FuY2VsQnV0dG9uQ2VsbF8QEE5T
-VGV4dEJlemVsU3R5bGVfEBFOU0RyYXdzQmFja2dyb3VuZF8QEk5TU2VhcmNoQnV0dG9uQ2VsbF8QEE5T
-TWF4aW11bVJlY2VudHMSFHH+QICogJ6AmYANgEaAlhIQAAQACYCbEP+AStUADgF+AXgBgAGBAXoByQGE
-Ax4BhoA+gFOAmoBAXxATdGV4dEJhY2tncm91bmRDb2xvctwC3AFfAA4CsgKzArQBYAGTArUBYgLdArYD
-AwMjArcDJQDdAHEDJwKjAykA3QMqAyuAmBIAAf4AgIYQS4ANgJyAlhEBkICdEghEQP9Wc2VhcmNoXxAT
-X3NlYXJjaEZpZWxkU2VhcmNoOt0C3AFfAA4CsgKzArQDLwFgAZMCtQFiAt0CtgMDAyMCtwMlAN0AcQMz
-AzQCowMpAN0DNgMrXxAjTlNBY2Nlc3NpYmlsaXR5T3ZlcnJpZGRlbkF0dHJpYnV0ZXOAmICGgA2AoICf
-gJaAp1VjbGVhctIADgA+AEYDOoAgoQM7gKHTAA4DPQA+Az4DPwNCV05TLmtleXOApqIDQANBgKKAo6ID
-QwNEgKSApV1BWERlc2NyaXB0aW9uXxApTlNBY2Nlc3NpYmlsaXR5RW5jb2RlZEF0dHJpYnV0ZXNWYWx1
-ZVR5cGVWY2FuY2Vs0gA3ADgDSQNKowNKA0sAO18QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9u
-YXJ5XxATX3NlYXJjaEZpZWxkQ2FuY2VsOtIANwA4A04DT6UDTwGPAZABkQA7XxARTlNTZWFyY2hGaWVs
-ZENlbGzSADcAOANRA1KmA1IDUwLKAR8BIAA7XU5TU2VhcmNoRmllbGRbTlNUZXh0RmllbGTYAMgADgD2
-AZEA0gDUANYA2QEuA1YDVwNYA1kAlgDsAS6Af4CwgKuArBEBIQmALYB/XxAUe3s4OCwgMTR9LCB7OTYs
-IDE3fX3YAV8ADgDMAWABYQGTAWIBYwNfAZUDYQNiAZgCpANlAZsSBAH+QIBMgK6ArYBGgKoSEEAEAIBK
-XFNlYXJjaCBQYXRoOtUADgF+AXgBgAGBAXoBpAGEA2sBhoA+gEmAr4BAXGNvbnRyb2xDb2xvctIANwA4
-A28DU6UDUwLKAR8BIAA72QDIAA4A9gGRA3EA0gDUANYA2QEuA3MDdAN1A3YDWQCWAOwBLltOU0RyYWdU
-eXBlc4B/gLmAtYC2gLIJgC2Af9IADgA+AD8DfIAHogN9A36As4C0XxAZQXBwbGUgVVJMIHBhc3RlYm9h
-cmQgdHlwZV8QFU5TRmlsZW5hbWVzUGJvYXJkVHlwZV8QFnt7MTg5LCAxMH0sIHsyNzEsIDI2fX3YA4MB
-XwAOAWEBkwFiA4QDhQD/A4YDhwGYAqUDigOLAqVbTlNQYXRoU3R5bGVfEBROU1BhdGhDb21wb25lbnRD
-ZWxsc1pOU0RlbGVnYXRlEhQh/gGAuIBGgLERgACAt4Cx0gAOAD4ARgOPgCCg0gA3ADgDkQOSpAOSAZAB
-kQA7Wk5TUGF0aENlbGzSADcAOAOUA5WlA5UCygEfASAAO11OU1BhdGhDb250cm9sWns0ODAsIDMyMH3S
-ADcAOAOYAR+jAR8BIAA7XxAVe3swLCAwfSwgezEyODAsIDc3OH19Wns0MDAsIDI3Nn3SADcAOAOcA52i
-A50AO18QEE5TV2luZG93VGVtcGxhdGVWd2luZG931AAOAF8AYABhAMMCowAfA6OAcoCWgAKAwltzZWFy
-Y2hGaWVsZNQADgBfAGAAYQBiAB8CoQOpgCaAAoCBgMReYWRkVG9QbGF5bGlzdDrUAA4AXwBgAGEAwwKj
-AncDr4BygJaAeoDGXxAVaW5pdGlhbEZpcnN0UmVzcG9uZGVy1AAOAF8AYABhAMMAYwAfA7WAcoAVgAKA
-yF8QEnBsYXlsaXN0Q29udHJvbGxlctQADgBfAGAAYQDDAGMAxQO1gHKAFYAogMjUAA4AXwBgAGEAwwKl
-AB8DwIBygLGAAoDLW3BhdGhDb250cm9s2AAOAF8DwwPEAGAAYQPFA8YDxwBjA8kDygFGA8wDzQD/WU5T
-S2V5UGF0aFlOU0JpbmRpbmdZTlNPcHRpb25zXxAcTlNOaWJCaW5kaW5nQ29ubmVjdG9yVmVyc2lvboDT
-gBWAz4DOgFWAzYDQXxAcdmFsdWU6IGFycmFuZ2VkT2JqZWN0cy5hbGJ1bVV2YWx1ZV8QFWFycmFuZ2Vk
-T2JqZWN0cy5hbGJ1bdMADgM9AD4D0gPTA9WA0qED1IDRoQNEgKVfEBtOU0NvbmRpdGlvbmFsbHlTZXRz
-RWRpdGFibGXSADcAOAPZA0uiA0sAO9IANwA4A9sD3KMD3ADBADtfEBVOU05pYkJpbmRpbmdDb25uZWN0
-b3LYAA4AXwPDA8QAYABhA8UDxgPHAB8D4APKAqUD4wPkAP+A04ACgNaAzoCxgNWA118QGnZhbHVlOiBz
-cG90bGlnaHRTZWFyY2hQYXRoXxATc3BvdGxpZ2h0U2VhcmNoUGF0aNMADgM9AD4D0gPpA+uA0qED6oDY
-oQPsgNlfEBZOU1ZhbHVlVHJhbnNmb3JtZXJOYW1lXxAWU3RyaW5nVG9VUkxUcmFuc2Zvcm1lctgADgBf
-A8MDxABgAGEDxQPGA8cAYwPyA8oBSgP1A/YA/4DTgBWA3IDOgGaA24DdXxAcdmFsdWU6IGFycmFuZ2Vk
-T2JqZWN0cy50cmFja18QFWFycmFuZ2VkT2JqZWN0cy50cmFja9MADgM9AD4D0gP7A/2A0qED1IDRoQNE
-gKXXAA4AXwPDA8QAYABhA8YDxwAfBAIDygKjBAUA/4DTgAKA4IDOgJaA318QE3ZhbHVlOiBzZWFyY2hT
-dHJpbmdcc2VhcmNoU3RyaW5n2AAOAF8DwwPEAGAAYQPFA8YDxwBjBAsDygFFBA4EDwD/gNOAFYDjgM6A
-ToDigORfEB12YWx1ZTogYXJyYW5nZWRPYmplY3RzLmFydGlzdF8QFmFycmFuZ2VkT2JqZWN0cy5hcnRp
-c3TTAA4DPQA+A9IEFAQWgNKhA9SA0aEDRICl2AAOAF8DwwPEAGAAYQPFA8YDxwBjBBsDygFEBB4EHwD/
-gNOAFYDngM6AN4DmgOhfEBx2YWx1ZTogYXJyYW5nZWRPYmplY3RzLnRpdGxlXxAVYXJyYW5nZWRPYmpl
-Y3RzLnRpdGxl0wAOAz0APgPSBCQEJoDSoQPUgNGhA0SApdgADgBfA8MDxABgAGEDxQPGA8cAHwQrBCwA
-YwQuBC8A/4DTgAKA7IDrgBWA6oDtXxAbY29udGVudEFycmF5OiBxdWVyeS5yZXN1bHRzXGNvbnRlbnRB
-cnJheV1xdWVyeS5yZXN1bHRz0wAOAz0APgPSBDUEN4DSoQPqgNihBDiA7l8QF1BhdXNpbmdRdWVyeVRy
-YW5zZm9ybWVy2AAOAF8DwwPEAGAAYQPFA8YDxwBjBD0DygFJBEAEQQD/gNOAFYDxgM6AYoDwgPJfEBx2
-YWx1ZTogYXJyYW5nZWRPYmplY3RzLmdlbnJlXxAVYXJyYW5nZWRPYmplY3RzLmdlbnJl0wAOAz0APgPS
-BEYESIDSoQPUgNGhA0SApdgADgBfA8MDxABgAGEDxQPGA8cAYwRNA8oBRwRQBFEA/4DTgBWA9YDOgFmA
-9ID2XxAddmFsdWU6IGFycmFuZ2VkT2JqZWN0cy5sZW5ndGhfEBZhcnJhbmdlZE9iamVjdHMubGVuZ3Ro
-0wAOAz0APgPSBFYEWIDSoQPUgNGhA0SApdgADgBfA8MDxABgAGEDxQPGA8cAYwRdA8oBSARgBGEA/4DT
-gBWA+YDOgF6A+ID6XxAbdmFsdWU6IGFycmFuZ2VkT2JqZWN0cy55ZWFyXxAUYXJyYW5nZWRPYmplY3Rz
-LnllYXLTAA4DPQA+A9IEZgRogNKhA9SA0aEDRICl0gAOAD4EawRsgQEArxAiAncDdQFEAS4AdQKjAGQC
-pQFKAUYBSAEvAqoEegFFAfYBWQFHAMUBOgI9BIIBSQKhAPwDAwIQAqQCKADhA1gB3QBjAbyAeoC2gDeA
-f4ALgJaACoCxgGaAVYBegJCAg4D8gE6AXIBEgFmAKICMgGmA/oBigIGAM4CYgGGAqoBlgC6ArIBYgBWA
-VNIADgAyADMEkYAEgP1dTlNBcHBsaWNhdGlvbtIADgSUBJUAll8QEE5TU2hhcmVkSW5zdGFuY2WA/wnS
-ADcAOASYBJmjBJkEmgA7XxAYTlNVc2VyRGVmYXVsdHNDb250cm9sbGVyXE5TQ29udHJvbGxlctIANwA4
-BJwAtKIAtAA70gAOAD4EawSfgQEArxAiAB8CpQDFAncAHwEuAHUBLgDFAMUAxQD8AqEAHwDFAUcBRADF
-APwA/AFKAB8AxQEuAS4CowFIAS4BSQD8AqQBRgAfAUWAAoCxgCiAeoACgH+AC4B/gCiAKIAogDOAgYAC
-gCiAWYA3gCiAM4AzgGaAAoAogH+Af4CWgF6Af4BigDOAqoBVgAKATtIADgA+BGsExIEBAK8QIwJ3A3UB
-RAB1AGQCowG8AqUBSgFGAUgBLwAfAqoEegSCAMUBRQE6AUcBWQI9AfYBSQKhAPwDAwIQAqQCKADhA1gA
-YwHdAS6AeoC2gDeAC4AKgJaAVICxgGaAVYBegJCAAoCDgPyA/oAogE6AjIBZgESAaYBcgGKAgYAzgJiA
-YYCqgGWALoCsgBWAWIB/0gAOAD4EawTqgQEArxAjBOsE7ATtBO4E7wTwBPEE8gTzBPQE9QT2BPcE+AT5
-BPoE+wT8BP0E/gT/BQAFAQUCBQMFBAUFBQYFBwUIBQkFCgULBQwFDYEBBIEBBYEBBoEBB4EBCIEBCYEB
+AYag0QAHAAhdSUIub2JqZWN0ZGF0YYABXxAPTlNLZXllZEFyY2hpdmVyrxEBawALAAwAMQA1ADYAPAA9
+AEEARQBeAGYAdQB2AHcAgQCCAIMAhACFAIYAhwCIAIwAjQCPAJEAlADAAMEAwgDUAAsA1QDdAOgA6QDu
+APQBCgELAQ4BGAErATcBOAFAAUEBRAFJAUwBVAFVAVYBWQFfAWkBagFvAXQBdQF4AX0BfgGAAYMBjAGT
+AZQBmQGaAZ0BpAGtAbMBtAG7AcYBzQHOAWkB1gHgAeYB5wHuAfcB/QH+AgUCDQITAhQCGwIgAiECJAIl
+AiYCKgIvAjACNQJAAkcCTAJNAk4CTwJaAl0CYAJkAmUCagJ6An8CgAKBAoYChwKIAosCjwKQApMClAKX
+ApwCpQKmArgCvQK+AtAC0QLSAtUC3gLfAuMC7ALtAu4AswLvAvMC9AL3AvsC/AMBAwIDBwMQAxEDHgMf
+AyADIwMkAykDQgNDA0QDRQNGA04DVgNaA1sDXgNoA2kDagNtA3cDeADoA3wDfQOAA4gDiQOSA5MDmAOZ
+A5sACwOcA54DnwOgA6MDpAOpA64DrwOzA7UDtgO7A7wDwQPCA84DzwPQA9ED1wPYA9oD3QPkA+UD5gPu
+A+8D8AP2A/4D/wQABAYEDgQPBBAEFgQeBB8EIAQmBC4ELwQwBDEENwQ4BDkEQQRCBEMESQRRBFIEUwRZ
+BGEEZgRqBGsEbwPPBHAEcQQ3BHcEeASdBKAEoQSjBMgE7gUUBRUFFgUXBRgFGQUaBRsFHAUdBR4FHwUg
+BSEFIgUjBSQFJQUmBScFKAUpBSoFKwUsBS0FLgUvBTAFMQUyBTMFNAU1BTYFNwU8BUEFfQW5BboFuwW8
+Bb0FvgW/BcAFwQXCAP8FwwXEBcUFxgDMBccFyAXJBcoFywXMBc0BUQXOBc8F0AXRBdIF0wXUBdUF1gXX
+BdgF2QXaBdsF3AXdBd4F3wM/AxUF4AXhBeIF4wXkBeUF5gXnBegF6QXqBesF7AXvBfIF9VUkbnVsbN8Q
+EgANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkA
+KgArACwALQAuAC8AMFZOU1Jvb3RWJGNsYXNzXU5TT2JqZWN0c0tleXNfEA9OU0NsYXNzZXNWYWx1ZXNf
+EBlOU0FjY2Vzc2liaWxpdHlPaWRzVmFsdWVzXU5TQ29ubmVjdGlvbnNbTlNOYW1lc0tleXNbTlNGcmFt
+ZXdvcmtdTlNDbGFzc2VzS2V5c1pOU09pZHNLZXlzXU5TTmFtZXNWYWx1ZXNfEBlOU0FjY2Vzc2liaWxp
+dHlDb25uZWN0b3JzXU5TRm9udE1hbmFnZXJfEBBOU1Zpc2libGVXaW5kb3dzXxAPTlNPYmplY3RzVmFs
+dWVzXxAXTlNBY2Nlc3NpYmlsaXR5T2lkc0tleXNZTlNOZXh0T2lkXE5TT2lkc1ZhbHVlc4ACgQFqgQEB
+gQEsgQFpgAiBAQaABYEBK4EBLYEBB4EBZ4AAgAaBAQWBAWgQw4EBLtIADgAyADMANFtOU0NsYXNzTmFt
+ZYAEgANfEBlTcG90bGlnaHRXaW5kb3dDb250cm9sbGVy0gA3ADgAOQA6WCRjbGFzc2VzWiRjbGFzc25h
+bWWiADoAO15OU0N1c3RvbU9iamVjdFhOU09iamVjdF8QEElCQ29jb2FGcmFtZXdvcmvSAA4APgA/AEBa
+TlMub2JqZWN0c4AHoNIANwA4AEIAQ6MAQwBEADtcTlNNdXRhYmxlU2V0VU5TU2V00gAOAD4ARgBHgBWv
+EBYASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXYAJgGKAZIBwgH6AlYCX
+gJ+AwoDDgMiAyoDMgNSA14DbgN+A44DngO6A8oD21AAOAF8AYABhAGIAYwBkAGVdTlNEZXN0aW5hdGlv
+blhOU1NvdXJjZVdOU0xhYmVsgGGAGoAKgGDYAGcADgBoAGkAagBrAGwAMgBtAG4AbwBtAHEAcgBzAHRf
+EBpOU0ZpbHRlclJlc3RyaWN0c0luc2VydGlvbl8QE05TT3JpZ2luYWxDbGFzc05hbWVaTlNFZGl0YWJs
+ZV8QD19OU01hbmFnZWRQcm94eV8QEU5TT2JqZWN0Q2xhc3NOYW1lXk5TRGVjbGFyZWRLZXlzCYAZgAwJ
+gBeAFoANgAtfEBtTcG90bGlnaHRQbGF5bGlzdENvbnRyb2xsZXJfEBFOU0FycmF5Q29udHJvbGxlctIA
+DgA+AEYAeYAVpwB6AHsAfAB9AH4AfwCAgA6AD4AQgBGAEoATgBRVdGl0bGVUeWVhclZhcnRpc3RVYWxi
+dW1VZ2VucmVWbGVuZ3RoVXRyYWNr0gA3ADgAiQCKowCKAIsAO15OU011dGFibGVBcnJheVdOU0FycmF5
+XVBsYXlsaXN0RW50cnnRAA4AjoAY0gA3ADgAkABqogBqADvSADcAOACSAJOiAJMAO15OU0NsYXNzU3dh
+cHBlct8QFwCVAJYADgCXAGgAmACZAJoAmwCcAJ0AngCfAKAAoQCiAKMAMgCkAKUApgCnAKgAqQCqAG4A
+rACtAK4ArwBtALEAsgCzALQAtQC2AG0AuAC5ALoAuwC8AKkAvgC/XxAPTlNOZXh0UmVzcG9uZGVyXxAf
+TlNEcmFnZ2luZ1NvdXJjZU1hc2tGb3JOb25Mb2NhbFlOU1R2RmxhZ3NcTlNIZWFkZXJWaWV3XxARTlNC
+YWNrZ3JvdW5kQ29sb3JfEBJOU0FsbG93c1R5cGVTZWxlY3RcTlNDb3JuZXJWaWV3XxAXTlNJbnRlcmNl
+bGxTcGFjaW5nV2lkdGhfEBlOU0NvbHVtbkF1dG9yZXNpemluZ1N0eWxlXxAYTlNJbnRlcmNlbGxTcGFj
+aW5nSGVpZ2h0WE5TdkZsYWdzW05TRnJhbWVTaXplWU5TRW5hYmxlZF5OU0F1dG9zYXZlTmFtZVhOU1dp
+bmRvd1tOU0dyaWRDb2xvcl8QHE5TRHJhZ2dpbmdTb3VyY2VNYXNrRm9yTG9jYWxbTlNTdXBlcnZpZXde
+TlNUYWJsZUNvbHVtbnNbTlNSb3dIZWlnaHSAHRAAgBkT/////9vAgACAHIAggDkJgCQjQAgAAAAAAAAQ
+ASNAAAAAAAAAABEREoAeCYBfgB+AG4BcEA+AHYAoI0AxAAAAAAAAXFBsYXlsaXN0Vmlld1tOU1RhYmxl
+Vmlld9sAlQAOAMMAxADFAJ8AxgCjAMcApgDIAMkAygDLAMwAzQDOAGMAuQCvAMkAY1dOU0ZyYW1lWU5T
+Y3ZGbGFnc1pOU1N1YnZpZXdzWU5TRG9jVmlld1lOU0JHQ29sb3JdTlNOZXh0S2V5Vmlld4AlgKmAqBAC
+gKcRCQCAGoAfgDmAJYAaWns0MjUsIDIxMX3XAJUADgCfAKAAowCmAMEA1gDXANgA2QC5ANYAY4AhgCMR
+AQCAIoAfgCGAGtsAlQAOAMQAxQCfAKAAxgCjAMcApgDIAMkAygDgAOEAzgDiAK4AuQCvAMkAroAlgKkQ
+BICwgLGAIIAfgDmAJYAgWXs0MjUsIDE3fdIANwA4AOoA66QA6wDsAO0AO18QEU5TVGFibGVIZWFkZXJW
+aWV3Vk5TVmlld1tOU1Jlc3BvbmRlctYAlQAOAMMAnwCjAKYAyQDwAPEA2AC5AMmAJYAngCaAH4Al3xAP
+AJUA9QAOAMMA9gCbAPcAxQD4AJ8AowCmAPkAyAD6APsA/AD9AP4A/wCxANYBAgEDAQQAuQD7AQcAqQCp
+W05TSFNjcm9sbGVyWE5Tc0ZsYWdzXxAQTlNIZWFkZXJDbGlwVmlld1xOU1Njcm9sbEFtdHNbTlNWU2Ny
+b2xsZXJdTlNDb250ZW50Vmlld4BmgK6As4CyEBCAJIAhgKZPEBAAAAAAAAAAAEGYAABBmAAAEQESgB+A
+ZoCqgB2AHV8QFHt7NDI1LCAwfSwgezE2LCAxN3190gA3ADgBDAENpAENAOwA7QA7XV9OU0Nvcm5lclZp
+ZXfSAA4APgBGARCAFacBEQESARMBFAEVARYBF4ApgECAR4BLgFCAVIBY2gEZAA4BGgEbARwBHQEeAR8B
+IADBAG0BIgEjAHoBJQEmAScBKAEpAGNeTlNJc1Jlc2l6ZWFibGVcTlNIZWFkZXJDZWxsXE5TSWRlbnRp
+ZmllcldOU1dpZHRoWk5TRGF0YUNlbGxeTlNSZXNpemluZ01hc2taTlNNaW5XaWR0aFpOU01heFdpZHRo
+CYA/gCqADiNAX0AAAAAAAIA2EAMjQESAAAAAAAAjQI9AAAAAAACAGtcBLAAOAJkBLQEuAS8BMAExATIB
+MwE0ATUAqgE2W05TQ2VsbEZsYWdzWk5TQ29udGVudHNZTlNTdXBwb3J0XE5TQ2VsbEZsYWdzMltOU1Rl
+eHRDb2xvchIEgf4AgDWAL4ArgCyAMVVUaXRsZdQADgE5AToBOwE8AT0BPgE/Vk5TU2l6ZVZOU05hbWVY
+TlNmRmxhZ3OALiNAJgAAAAAAAIAtEQwcXEx1Y2lkYUdyYW5kZdIANwA4AUIBQ6IBQwA7Vk5TRm9udNMA
+DgFFAUYBRwEnAUhcTlNDb2xvclNwYWNlV05TV2hpdGWAMEswLjMzMzMzMjk5ANIANwA4AUoBS6IBSwA7
+V05TQ29sb3LVAA4BSwFFAU0BTgFHAVABUQFSAVNbTlNDb2xvck5hbWVdTlNDYXRhbG9nTmFtZYAwgDQQ
+BoAzgDJWU3lzdGVtXxAPaGVhZGVyVGV4dENvbG9y0wAOAUUBRgFHAScBWIAwQjAA0gA3ADgBWgFbpQFb
+AVwBXQFeADtfEBFOU1RhYmxlSGVhZGVyQ2VsbF8QD05TVGV4dEZpZWxkQ2VsbFxOU0FjdGlvbkNlbGxW
+TlNDZWxs2AEsAA4AmQEtAS4BYAEvATABYQFiAK8BZAFlAGMBZwFoXU5TQ29udHJvbFZpZXcSFCH+QIA+
+gDmAN4A4gBoRCACAPFlUZXh0IENlbGzUAA4BOQE6ATsBPAFsAT4BboAuI0AqAAAAAAAAgC0RBBTVAA4B
+SwFFAU0BTgFHAXEBUQFyAVOAMIA7gDqAMl8QFmNvbnRyb2xCYWNrZ3JvdW5kQ29sb3LTAA4BRQFGAUcB
+JwF3gDBLMC42NjY2NjY2OQDVAA4BSwFFAU0BTgFHAVABUQF7AVOAMIA0gD2AMl8QEGNvbnRyb2xUZXh0
+Q29sb3LSADcAOAF/AVykAVwBXQFeADvSADcAOAGBAYKiAYIAO11OU1RhYmxlQ29sdW1u2gEZAA4BGgEb
+ARwBHQEeAR8BIADBAG0BIgGGAHwBiAGJAScBigEpAGMJgD+AQYAQI0BeAAAAAAAAgEYjQEIAAAAAAACA
+GtcBLAAOAJkBLQEuAS8BMAGNATIBjwGQATUAqgE2EgQB/gCANYBDgEKALIAxVkFydGlzdNUADgFLAUUB
+TQFOAUcBlgFRAZcBU4AwgEWARIAyW2hlYWRlckNvbG9y0wAOAUUBRgFHAScBnIAwQjEA2AEsAA4AmQEt
+AS4BYAEvATABYQFiAK8BZAFlAGMBZwFogD6AOYA3gDiAGoA82gEZAA4BGgEbARwBHQEeAR8BIADBAG0B
+IgGnAH0BqQGqAScBqwEpAGMJgD+ASIARI0BegAAAAAAAgEojQEOAAAAAAACAGtcBLAAOAJkBLQEuAS8B
+MAGNATIBjwGwATUAqgE2gDWAQ4BJgCyAMVVBbGJ1bdgBLAAOAJkBLQEuAWABLwEwAWEBYgCvAWQBZQBj
+AWcBaIA+gDmAN4A4gBqAPNsBGQG8ARoBGwAOARwBHQEeAR8BIADBAG0AbQG/AH8BIgHCAcMBJwHEASkA
+Y1hOU0hpZGRlbgkJgEyAE4A/I0BJAAAAAAAAgE4jQERPYCAAAACAGtcBLAAOAJkBLQEuAS8BMAGNATIB
+jwHJATUBywE2gDWAQ4BNgCwSBAAAAIAxVkxlbmd0aNgBLAAOAJkBLQEuAWABLwEwAWEBYgCvAdEBZQBj
+AdQBaIA+gDmAT4A4gBoSBAAIAIA82wEZAbwBGgEbAA4BHAEdAR4BHwEgAMEAbQBtAdkAewEiAdwB3QEn
+Ad4BKQBjCQmAUYAPgD8jQEeAAAAAAACAUyNAJAAAAAAAAIAa1wEsAA4AmQEtAS4BLwEwAY0BMgGPAeMB
+NQHLATaANYBDgFKALIAxVFllYXLYASwADgCZAS0BLgFgAS8BMAFhAWIArwHRAWUAYwHUAWiAPoA5gE+A
+OIAagDzbARkBvAEaARsADgEcAR0BHgEfASAAwQBtAG0B8QB+ASIB9AH1AScB3gEpAGMJCYBVgBKAPyNA
+RwAAAAAAAIBXgBrXASwADgCZAS0BLgEvATABjQEyAY8B+gE1AKoBNoA1gEOAVoAsgDFVR2VucmXYASwA
+DgCZAS0BLgFgAS8BMAFhAWIArwHRAWUAYwFnAWiAPoA5gE+AOIAagDzaARkADgEaARsBHAEdAR4BHwEg
+AMEAbQEiAggAgAH0AgoBJwILAfQAYwmAP4BZgBSAWyNAIAAAAAAAAIAa1wEsAA4AmQEtAS4BLwEwAY0B
+MgGPAhABNQHLATaANYBDgFqALIAxVVRyYWNr2AEsAA4AmQEtAS4BYAEvATABYQFiAK8BZAFlAGMB1AFo
+gD6AOYA3gDiAGoA81QAOAUsBRQFNAU4BRwIdAVECHgFTgDCAXoBdgDJZZ3JpZENvbG9y0wAOAUUBRgFH
+AScCI4AwRDAuNQBfEBRDb2dTcG90bGlnaHRQbGF5bGlzdFl0YWJsZVZpZXfSADcAOAInAiijAigCKQA7
+XxAUTlNOaWJPdXRsZXRDb25uZWN0b3JeTlNOaWJDb25uZWN0b3LUAA4AXwBgAGEAYgBkAGMCLoBhgAqA
+GoBjXxAScGxheWxpc3RDb250cm9sbGVy1AAOAF8AYABhAGICMgAfAjSAYYBlgAKAb9kAlQAOAMMBXgI2
+AJ8AoQCjAKYA+wI4AjkCOgI7AjwAbQC5APtbTlNEcmFnVHlwZXOAZoBugGqAa4BnEQEhCYAfgGbXAJUA
+DgDFAJ8AoACjAKYAuQJCAkMA2AJEALkCRoAfgL2ApYC7gB+AvNIADgA+AD8CSYAHogJKAkuAaIBpXxAZ
+QXBwbGUgVVJMIHBhc3RlYm9hcmQgdHlwZV8QFU5TRmlsZW5hbWVzUGJvYXJkVHlwZV8QFXt7MTg5LCA5
+fSwgezI3MSwgMjZ9fdgCUAEsAA4BLgFgAS8CUQJSAMwCUwJUAWUCMgJXAlgCMltOU1BhdGhTdHlsZV8Q
+FE5TUGF0aENvbXBvbmVudENlbGxzWk5TRGVsZWdhdGUSFCH+AYBtgDiAZRGAAIBsgGXSAA4APgBGAlyA
+FaDSADcAOAJeAl+kAl8BXQFeADtaTlNQYXRoQ2VsbNIANwA4AmECYqUCYgJjAOwA7QA7XU5TUGF0aENv
+bnRyb2xZTlNDb250cm9sW3BhdGhDb250cm9s1AAOAF8AYABhAmYAZAJoAmmAfYAKgHGAfNgADgJrAmwC
+bQJuAm8CcAJxAnICcwJ0AnUCdgJ3AngCeVdOU1RpdGxlXxARTlNLZXlFcXVpdk1vZE1hc2taTlNLZXlF
+cXVpdl1OU01uZW1vbmljTG9jWU5TT25JbWFnZVxOU01peGVkSW1hZ2VWTlNNZW51gHuAcxIAEAAAgHQS
+f////4B1gHmActMADgJrAnsCfAJ9An5bTlNNZW51SXRlbXOAxoDEgMVeU2hvdyBpbiBGaW5kZXJQ0wAO
+ADICggKDAoQChV5OU1Jlc291cmNlTmFtZYB4gHaAd1dOU0ltYWdlXxAPTlNNZW51Q2hlY2ttYXJr0gA3
+ADgCiQKKogKKADtfEBBOU0N1c3RvbVJlc291cmNl0wAOADICggKDAoQCjoB4gHaAel8QEE5TTWVudU1p
+eGVkU3RhdGXSADcAOAKRApKiApIAO1pOU01lbnVJdGVtXxASc2hvd0VudHJ5SW5GaW5kZXI60gA3ADgC
+lQKWowKWAikAO18QFU5TTmliQ29udHJvbENvbm5lY3RvctQADgBfAGAAYQBiApkAHwKbgGGAf4ACgJTY
+AJUADgDDAV4AnwChAKMApgD7Ap4CnwKgAqEAbQC5APuAZoCTgICAgREBCgmAH4BmXxAWe3syMCwgMjgy
+fSwgezMxMywgMjJ9fd0BLAAOAqcAmQEtAS4BYAEvAqgCqQKqAqsBMAKsAq0CrgKvAnUBZQKZArMAswBt
+ArUCtgFoXxASTlNDYW5jZWxCdXR0b25DZWxsXxAQTlNUZXh0QmV6ZWxTdHlsZV8QEU5TRHJhd3NCYWNr
+Z3JvdW5kXxASTlNTZWFyY2hCdXR0b25DZWxsXxAQTlNNYXhpbXVtUmVjZW50cxIUcf5AgJKAiICCgHSA
+OIB/EhAABAAJgIQQ/4A81QAOAUsBRQFNAU4BRwGWAVECuwFTgDCARYCDgDJfEBN0ZXh0QmFja2dyb3Vu
+ZENvbG9y3AK/ASwADgLAAsECwgEtAWACwwEvAsQCxQKgAscCyALJAKoCdQLLApkCzQCqAs4Cz1hOU1Rh
+cmdldF8QEk5TUGVyaW9kaWNJbnRlcnZhbF5OU0J1dHRvbkZsYWdzMl8QD05TS2V5RXF1aXZhbGVudF8Q
+D05TUGVyaW9kaWNEZWxheVhOU0FjdGlvbl1OU0J1dHRvbkZsYWdzgIESAAH+AICHEEuAdICFgH8RAZCA
+hhIIRED/VnNlYXJjaF8QE19zZWFyY2hGaWVsZFNlYXJjaDrSADcAOALTAtSkAtQBXQFeADtcTlNCdXR0
+b25DZWxs3QK/ASwADgLAAsECwgLWAS0BYALDAS8CxALFAqACxwLIAskAqgJ1AtoC2wKZAs0AqgLdAs9f
+ECNOU0FjY2Vzc2liaWxpdHlPdmVycmlkZGVuQXR0cmlidXRlc4CBgIeAdICKgImAf4CRVWNsZWFy0gAO
+AD4ARgLhgBWhAuKAi9MADgLkAD4C5QLmAulXTlMua2V5c4CQogLnAuiAjICNogLqAuuAjoCPXUFYRGVz
+Y3JpcHRpb25fEClOU0FjY2Vzc2liaWxpdHlFbmNvZGVkQXR0cmlidXRlc1ZhbHVlVHlwZVZjYW5jZWzS
+ADcAOALwAvGjAvEC8gA7XxATTlNNdXRhYmxlRGljdGlvbmFyeVxOU0RpY3Rpb25hcnlfEBNfc2VhcmNo
+RmllbGRDYW5jZWw60gA3ADgC9QL2pQL2AVwBXQFeADtfEBFOU1NlYXJjaEZpZWxkQ2VsbNIANwA4AvgC
++aYC+QL6AmMA7ADtADtdTlNTZWFyY2hGaWVsZFtOU1RleHRGaWVsZFtzZWFyY2hGaWVsZNQADgBfAGAA
+YQBiAGQAYwMAgGGACoAagJZaZGF0YVNvdXJjZdQADgBfAGAAYQJmAB8DBQMGgH2AAoCYgJ7YAJUADgDD
+AV4AnwChAKMApgD7AwkDCgMLAwwAbQC5APuAZoCdgJmAmhEBCQmAH4BmXxAXe3szMzUsIDI3NX0sIHsx
+MzEsIDMyfX3cASwADgMSAsACwQLCAS0BLgFgAsMBLwLFAY0CyAJ1AxUDFgMXAxgBZQMFAxsDHAMdXxAT
+TlNBbHRlcm5hdGVDb250ZW50c4CHgHQQGRCBgJyAm4A4gJgQyBIIAAAAE/////+GgkD/XxAPQWRkIHRv
+IFBsYXlsaXN0UQ3SADcAOAMhAyKlAyICYwDsAO0AO1hOU0J1dHRvbl5hZGRUb1BsYXlsaXN0OtQADgBf
+AGAAYQBiAyYAHwMogGGAoIACgMHdAyoADgMrAywDLQMuAy8DMAMxAzIDMwM0AzUA+wM3AzgDOQM5AzsD
+PAM9Az4AzAM/A0AAK1xOU1dpbmRvd1ZpZXdcTlNTY3JlZW5SZWN0XxATTlNGcmFtZUF1dG9zYXZlTmFt
+ZV1OU1dpbmRvd1RpdGxlWU5TV1RGbGFnc11OU1dpbmRvd0NsYXNzXxAWTlNXaW5kb3dDb250ZW50TWlu
+U2l6ZVxOU1dpbmRvd1JlY3RfEA9OU1dpbmRvd0JhY2tpbmdfEBFOU1dpbmRvd1N0eWxlTWFza1lOU01p
+blNpemVbTlNWaWV3Q2xhc3OAZoDAgL6AooCiE/////+gAAAAgKOApIChEB+Av4AAXxAYe3sxOTYsIDE5
+Mn0sIHs0ODAsIDMyMH19WVNwb3RsaWdodFdOU1BhbmVsWns0MDAsIDI2MH3SAA4APgBGA0iAFaUDBQDJ
+ApkDTAIygJiAJYB/gLSAZdIADgA+AEYDUIAVpQCpAQcA/ADWALGAHYCqgK6AIYAk0gAOAD4ARgNYgBWh
+AGOAGl8QFXt7MCwgMTd9LCB7NDI1LCAyMTF9fdIANwA4A1wDXaQDXQDsAO0AO1pOU0NsaXBWaWV32QCV
+Ar8ADgDDAJ8AowLEAKYDXwDJAMkDYgNjANgAuQNlAMkDZ1lOU1BlcmNlbnSAJYAlgK2Aq4AfgKyAJSM/
+6jeEoAAAAF8QFnt7NDI1LCAxN30sIHsxNSwgMjExfX1cX2RvU2Nyb2xsZXI60gA3ADgDawNspQNsAmMA
+7ADtADtaTlNTY3JvbGxlctoAlQK/AA4AwwD2AJ8AowLEAKYDXwDJAMkDYgNxALMDcgC5A2UAyQN2gCWA
+JYCtgK8T/////4AAAQCAH4CsgCUjP+2kYQAAAABfEBl7ey0xMDAsIC0xMDB9LCB7NDQwLCAxNX190gAO
+AD4ARgN6gBWhAK6AIF8QFnt7MjAsIDQ0fSwgezQ0MCwgMjI4fX3SADcAOAN+A3+kA38A7ADtADtcTlNT
+Y3JvbGxWaWV32ACVAA4AwwFeAJ8AoQCjAKYA+wOCA4MDhAI8AG0AuQD7gGaAuoC1gLYJgB+AZl8QFHt7
+ODgsIDEzfSwgezk2LCAxN3192AEsAA4AmQEtAS4BYAEvATADigFiA4wDjQFlA0wDkAFoEgQB/kCAPoC4
+gLeAOIC0EhBABACAPF5TZWFyY2ggRm9sZGVyOtUADgFLAUUBTQFOAUcBcQFRA5YBU4AwgDuAuYAyXGNv
+bnRyb2xDb2xvctIANwA4A5oC+qUC+gJjAOwA7QA7Wns0ODAsIDMyMH3SADcAOAOdAOyjAOwA7QA7XxAV
+e3swLCAwfSwgezEyODAsIDc3OH19Wns0MDAsIDI3Nn3SADcAOAOhA6KiA6IAO18QEE5TV2luZG93VGVt
+cGxhdGVWd2luZG931AAOAF8AYABhAGIAZAAfAi6AYYAKgAKAY9QADgBfAGAAYQBiAnkAYwOtgGGAcoAa
+gMdeQ29udGV4dHVhbE1lbnXSAA4APgBGA7GAFaECaIBx0gA3ADgDtAJxogJxADtUbWVuddQADgBfAGAA
+YQBiAB8AZAO6gGGAAoAKgMlfEBlzcG90bGlnaHRXaW5kb3dDb250cm9sbGVy1AAOAF8AYABhAGICmQMm
+A8CAYYB/gKCAy18QFWluaXRpYWxGaXJzdFJlc3BvbmRlctgADgBfA8MDxABgAGEDxQPGA8cAZAPJA8oB
+FQPMA80AzFlOU0tleVBhdGhZTlNCaW5kaW5nWU5TT3B0aW9uc18QHE5TTmliQmluZGluZ0Nvbm5lY3Rv
+clZlcnNpb26A04AKgM+AzoBQgM2A0F8QG3ZhbHVlOiBhcnJhbmdlZE9iamVjdHMueWVhclV2YWx1ZV8Q
+FGFycmFuZ2VkT2JqZWN0cy55ZWFy0wAOAuQAPgPSA9MD1YDSoQPUgNGhAuuAj18QG05TQ29uZGl0aW9u
+YWxseVNldHNFZGl0YWJsZdIANwA4A9kC8qIC8gA70gA3ADgD2wPcowPcAikAO18QFU5TTmliQmluZGlu
+Z0Nvbm5lY3RvctcADgBfA8MDxABgAGEDxgPHAB8D4APKApkD4wDMgNOAAoDWgM6Af4DVXxATdmFsdWU6
+IHNlYXJjaFN0cmluZ1xzZWFyY2hTdHJpbmfYAA4AXwPDA8QAYABhA8UDxgPHAGQD6QPKARMD7APtAMyA
+04AKgNmAzoBHgNiA2l8QHHZhbHVlOiBhcnJhbmdlZE9iamVjdHMuYWxidW1fEBVhcnJhbmdlZE9iamVj
+dHMuYWxidW3TAA4C5AA+A9ID8gP0gNKhA9SA0aEC64CP2AAOAF8DwwPEAGAAYQPFA8YDxwBkA/kDygEW
+A/wD/QDMgNOACoDdgM6AVIDcgN5fEBx2YWx1ZTogYXJyYW5nZWRPYmplY3RzLmdlbnJlXxAVYXJyYW5n
+ZWRPYmplY3RzLmdlbnJl0wAOAuQAPgPSBAIEBIDSoQPUgNGhAuuAj9gADgBfA8MDxABgAGEDxQPGA8cA
+ZAQJA8oBFwQMBA0AzIDTgAqA4YDOgFiA4IDiXxAcdmFsdWU6IGFycmFuZ2VkT2JqZWN0cy50cmFja18Q
+FWFycmFuZ2VkT2JqZWN0cy50cmFja9MADgLkAD4D0gQSBBSA0qED1IDRoQLrgI/YAA4AXwPDA8QAYABh
+A8UDxgPHAGQEGQPKARQEHAQdAMyA04AKgOWAzoBLgOSA5l8QHXZhbHVlOiBhcnJhbmdlZE9iamVjdHMu
+bGVuZ3RoXxAWYXJyYW5nZWRPYmplY3RzLmxlbmd0aNMADgLkAD4D0gQiBCSA0qED1IDRoQLrgI/YAA4A
+XwPDA8QAYABhA8UDxgPHAB8EKQQqAGQELAQtAMyA04ACgOqA6YAKgOiA618QG2NvbnRlbnRBcnJheTog
+cXVlcnkucmVzdWx0c1xjb250ZW50QXJyYXldcXVlcnkucmVzdWx0c9MADgLkAD4D0gQzBDWA0qEENIDs
+oQQ2gO1fEBZOU1ZhbHVlVHJhbnNmb3JtZXJOYW1lXxAXUGF1c2luZ1F1ZXJ5VHJhbnNmb3JtZXLYAA4A
+XwPDA8QAYABhA8UDxgPHAGQEPAPKARIEPwRAAMyA04AKgPCAzoBAgO+A8V8QHXZhbHVlOiBhcnJhbmdl
+ZE9iamVjdHMuYXJ0aXN0XxAWYXJyYW5nZWRPYmplY3RzLmFydGlzdNMADgLkAD4D0gRFBEeA0qED1IDR
+oQLrgI/YAA4AXwPDA8QAYABhA8UDxgPHAGQETAPKAREETwRQAMyA04AKgPSAzoApgPOA9V8QHHZhbHVl
+OiBhcnJhbmdlZE9iamVjdHMudGl0bGVfEBVhcnJhbmdlZE9iamVjdHMudGl0bGXTAA4C5AA+A9IEVQRX
+gNKhA9SA0aEC64CP2AAOAF8DwwPEAGAAYQPFA8YDxwRbBFwEXQIyBF8EYADMgNOA94D9gPyAZYD7gP7T
+AA4AbARiBGMEZABtXxAQTlNTaGFyZWRJbnN0YW5jZYD6gPgJ0gAOAD4ARgRogBWhBGmA+V8QE3Nwb3Rs
+aWdodFNlYXJjaFBhdGjSADcAOARsBG2jBG0EbgA7XxAYTlNVc2VyRGVmYXVsdHNDb250cm9sbGVyXE5T
+Q29udHJvbGxlcl8QIXZhbHVlOiB2YWx1ZXMuc3BvdGxpZ2h0U2VhcmNoUGF0aF8QGnZhbHVlcy5zcG90
+bGlnaHRTZWFyY2hQYXRo0wAOAuQAPgPSBHMEdYDSoQR0gP+hBHaBAQBfEBZTdHJpbmdUb1VSTFRyYW5z
+Zm9ybWVy0gAOAD4EeQR6gQEErxAiAfUCmQIKAjICOgGJAcMBFwBjARMBqgEmARYEWwBkARUDTAERAPwB
+3QCuAmgA+wESARQDhAJ5AwsElwKgAMkDJgEHAwWAV4B/gFuAZYBrgEaAToBYgBqAR4BKgDaAVID3gAqA
+UIC0gCmAroBTgCCAcYBmgECAS4C2gHKAmoEBAoCBgCWAoICqgJjSAA4AMgAzBJ+ABIEBA11OU0FwcGxp
+Y2F0aW9u0gA3ADgEogCLogCLADvSAA4APgR5BKWBAQSvECIBFgD7ARcA+wIyARIBFABjAMkAYwETAREA
+YwAfAB8AYwD7AGMAyQEVAMkCeQMmAGMAYwNMAB8DBQAfApkA+wAfAMkA+4BUgGaAWIBmgGWAQIBLgBqA
+JYAagEeAKYAagAKAAoAagGaAGoAlgFCAJYBygKCAGoAagLSAAoCYgAKAf4BmgAKAJYBm0gAOAD4EeQTK
+gQEErxAjAB8B9QKZAgoCMgI6AYkBwwEXAGMBEwEWBFsBqgEmAGQBFQCuA0wCaAD8AREB3QD7AnkBEgOE
+ARQDCwSXAqAAyQMmAQcDBYACgFeAf4BbgGWAa4BGgE6AWIAagEeAVID3gEqANoAKgFCAIIC0gHGAroAp
+gFOAZoBygECAtoBLgJqBAQKAgYAlgKCAqoCY0gAOAD4EeQTwgQEErxAjBPEE8gTzBPQE9QT2BPcE+AT5
+BPoE+wT8BP0E/gT/BQAFAQUCBQMFBAUFBQYFBwUIBQkFCgULBQwFDQUOBQ8FEAURBRIFE4EBCIEBCYEB
CoEBC4EBDIEBDYEBDoEBD4EBEIEBEYEBEoEBE4EBFIEBFYEBFoEBF4EBGIEBGYEBGoEBG4EBHIEBHYEB
-HoEBH4EBIIEBIYEBIoEBI4EBJIEBJYEBJl8QEVBhbmVsIChTcG90bGlnaHQpWVBhdGggQ2VsbF8QFFRh
-YmxlIENvbHVtbiAodGl0bGUpXxAVTWVudSAoQ29udGV4dHVhbE1lbnUpXxAaTWVudSBJdGVtIChTaG93
-IGluIEZpbmRlcilcU2VhcmNoIEZpZWxkXxAdVGV4dCBGaWVsZCBDZWxsIChUZXh0IENlbGwpLTRfEBpQ
-b3AgVXAgUGF0aCBDb250cm9sIFdpZGdldF8QFFRhYmxlIENvbHVtbiAodHJhY2spXxAUVGFibGUgQ29s
-dW1uIChhbGJ1bSlfEBNUYWJsZSBDb2x1bW4gKHllYXIpXxATSG9yaXpvbnRhbCBTY3JvbGxlclxGaWxl
-J3MgT3duZXJfEB1CdXR0b24gQ2VsbCAoQWRkIHRvIFBsYXlsaXN0KVtBcHBsaWNhdGlvbl8QH1NoYXJl
-ZCBVc2VyIERlZmF1bHRzIENvbnRyb2xsZXJfEEBQbGF5bGlzdCBWaWV3IChUaXRsZSwgQXJ0aXN0LCBB
-bGJ1bSwgTGVuZ3RoLCBZZWFyLCBHZW5yZSwgVHJhY2spXxAVVGFibGUgQ29sdW1uIChhcnRpc3QpXxAR
-VmVydGljYWwgU2Nyb2xsZXJfEBVUYWJsZSBDb2x1bW4gKGxlbmd0aClfEBtUZXh0IEZpZWxkIENlbGwg
-KFRleHQgQ2VsbClfEB1UZXh0IEZpZWxkIENlbGwgKFRleHQgQ2VsbCktMV8QHVRleHQgRmllbGQgQ2Vs
-bCAoVGV4dCBDZWxsKS01XxAUVGFibGUgQ29sdW1uIChnZW5yZSlfEB1QdXNoIEJ1dHRvbiAoQWRkIHRv
-IFBsYXlsaXN0KVtTY3JvbGwgVmlld18QEVNlYXJjaCBGaWVsZCBDZWxsXxAdVGV4dCBGaWVsZCBDZWxs
-IChUZXh0IENlbGwpLTNfEBpTdGF0aWMgVGV4dCAoU2VhcmNoIFBhdGg6KV8QHVRleHQgRmllbGQgQ2Vs
-bCAoVGV4dCBDZWxsKS02XxARVGFibGUgSGVhZGVyIFZpZXdfEB5UZXh0IEZpZWxkIENlbGwgKFNlYXJj
-aCBQYXRoOilfEB1TcG90bGlnaHQgUGxheWxpc3QgQ29udHJvbGxlcl8QHVRleHQgRmllbGQgQ2VsbCAo
-VGV4dCBDZWxsKS0yXENvbnRlbnQgVmlld9IADgA+BGsFM4EBAKIAYwDFgBWAKNIADgA+BGsFOIEBAKIA
-nQDtgBaAKdIADgA+BGsFPYEBAK8QOQFEAGQCowBSAqUBSgBUAEsAUABTAUgBLwKqBHoAxQI9APwCpAIo
-AFgA4QNYAE8BvAJ3A3UAWwB1AF0ATgFGAFUASABcAFoAHwFZAUUB9gSCAUcBOgFJAqEATABRAwMASgIQ
-AEkAWQBXAE0AVgHdAGMBLoA3gAqAloDJgLGAZoDMgHWAxYDKgF6AkICDgPyAKIBpgDOAqoBlgOGALoCs
-gMOAVIB6gLaA74ALgPeAwYBVgNSACYDzgOmAAoBEgE6AXID+gFmAjIBigIGAd4DHgJiAc4BhgCeA5YDe
-gHmA2oBYgBWAf9IADgA+BGsFeYEBAK8QOQV6BXsFfAV9BX4FfwWABYEFggWDBYQFhQWGBYcFiAWJBYoF
-iwWMBY0FjgWPBZAFkQNEBZMFlAWVBZYFlwWYBZkFmgWbBZwFnQWeBZ8FoAWhBaIFowWkBaUFpgWnBagF
-qQWqBasFrAWtBa4FrwWwBbEFsoEBK4EBLIEBLYEBLoEBL4EBMIEBMYEBMoEBM4EBNIEBNYEBNoEBN4EB
-OIEBOYEBOoEBO4EBPIEBPYEBPoEBP4EBQIEBQYEBQoClgQFDgQFEgQFFgQFGgQFHgQFIgQFJgQFKgQFL
-gQFMgQFNgQFOgQFPgQFQgQFRgQFSgQFTgQFUgQFVgQFWgQFXgQFYgQFZgQFagQFbgQFcgQFdgQFegQFf
-gQFggQFhgQFiECQQrBA3ELgQWBAdEGUQlxA9EJ8QGhP//////////RAcECwQGBBPECsQaBBQEKMQJxBZ
-EGYQqxBeELMQIRCdEK8QaRC1EL8QJRAiECkQuhAgEBsQHhAFEJUQoRA4EKAQKhCwEF0QmhBIEGsQKNIA
-DgA+AEYF6IAgoNIADgA+BGsF64EBAKDSAA4APgRrBe6BAQCg0gA3ADgF8AXxogXxADteTlNJQk9iamVj
-dERhdGEACAAZACIAJwAxADoAPwBEAFIAVABmAzgDPgOJA5ADlwOlA7cD0wPhA+0D+QQHBBIEIAQ8BEoE
-XQRvBIkEkwSgBKIEpQSnBKoErQSvBLIEtAS3BLoEvQTABMIExATHBMoEzATPBNgE5ATmBOgFBAUNBRYF
-IQUmBTUFPgVRBVoFZQVnBWgFcQV4BYUFiwWUBZYFxQXHBckFywXNBc8F0QXTBdUF1wXZBdsF3QXfBeEF
-4wXlBecF6QXrBe0F7wXxBgIGEAYZBiEGIwYlBicGKQZKBlIGZgZxBn8GiQaWBp0GnwahBqYGqAatBq8G
-sQazBsAGzAbOBtAG0gbhBuIG7wb+BwAHAgcEBwwHHgcnBywHPwdMB04HUAdSB2UHbgdzB34Hnwe8B9IH
-3QfvCAMIEggTCBUIFwgYCBoIHAgeCCAIPghSCFsIXQhsCG4IcAhyCHQIdgh4CHoIgAiFCIwIkgiYCJ8I
-pQiuCLUIxAjMCNoI3wjhCOoI7wj4CP0JDAkhCSoJMQlJCVgJaQlrCW0JbwlxCdAJ4goECg4KGwovCkQK
-UQprCocKogqrCrcKwQrQCtkK5QsECxALHwsrCy0LLwsxCzoLPAs+C0ALQQtDC0wLTgtXC1oLXAtdC18L
-YQtjC2ULZwtpC2sLdAuBC40LugvCC8wL1wvhC+sL+Qv7C/0L/wwBDAMMBgwIDAoMDAwODBAMGww4DDoM
-PAw/DEEMQwxFDEcMdAx2DHgMegx8DH4MgAyCDIQMhgyIDJIMmwykDLgMvwzLDOQM5gzoDOoM7AzuDS0N
-OQ1CDVUNYg1uDXwNfg2ADYINhA2GDYgNig2MDZ8Nog2kDaYNqA2qDawNww3MDdUN4w3sDe4N/Q3/DgEO
-Aw4FDgcOCQ4LDjQOQw5QDl0OZQ5wDn8Oig6VDpYOmA6aDpwOpQ6nDqkOsg67Dr0O2g7mDvEO+w8IDxQP
-GQ8bDx0PHw8hDyMPKQ86D0EPSA9RD1MPXA9eD2EPbg93D3wPgw+QD50PpQ+nD7MPvA/BD8kP3g/qD/gP
-+g/8D/4QABACEAkQGxAoECoQLRA2EEEQVRBnEHQQexCcEKoQrxCxELMQtRC3ELkQvBC+EMgQ2RDbEOQQ
-5hDpEP4RABECEQQRBhEfESwRLhE6EU8RURFTEVURVxFqEXMRfBGFEYoRmBHBEcIRxBHGEcgR0RHTEdwR
-3hH7EgASAhIEEgYSCBIKEhESJhIoEioSLBIuEjoSRxJJEkwSbRJvEnEScxJ1EncSeRKiEqMSpRKnEqkS
-shK0Er0SvxLcEt4S4BLiEuQS5hLsEw0TDxMRExMTFRMXExkTRhNPE1ATURNTE1UTVxNgE2ITaxNtE4oT
-jBOOE5ATkhOXE5kToBPBE8MTxRPHE8kTyxPQE9IT/xQAFAEUAxQFFAcUEBQSFBsUHRQ6FDwUPhRAFEIU
-RBRJFGoUbBRuFHAUchR0FHYUoxSkFKUUpxSpFKsUtBS2FLgU1RTXFNkU2xTdFN8U5RUGFQgVChUMFQ4V
-EBUSFTsVPBU+FUAVQhVEFU0VTxVsFW4VcBVyFXQVdhV8FZ0VnxWhFaMVpRWnFakVvhXAFcIVxBXGFdAV
-3RXfFeQV+xYKFhMWFRYYFhoWIxYoFi0WNhY9FlQWZRZnFmkWaxZtFokWmhacFp4WoBaiFq0WvhbAFsIW
-xBbGFtAW4RbjFuUW5xbpFx4XKxc4F04XXBdmF3QXjReaF6wXwBfKF9YX2BfaF9wX3hfgF+kX6xftF+8X
-8RfzF/UYEBgaGCIYLRhKGEwYThhQGFIYVBhWGF8YYRhsGG4YcBhyGHQYdhiXGJkYmxidGJ8YohijGKUY
-pxjBGPIZCBkdGSwZPhlQGV4ZYBliGWQZZhloGWoZbBluGXAZdRl+GZAZkhmbGaQZsRm6GcUZzhnYGeEZ
-4xnuGfAZ8hn0GfYZ+BoBGgMaBhoIGiAaKRoyGj0aYhprGnQafhqAGoIahBqGGogaihqMGpUarhq7GsQa
-zxraGwMbBRsHGwkbCxsUGxYbGBsaGyMbPxtIG0obTRtPG2gbcRt6G4cbqBuqG6wbrhuwG7MbtBu2G7gb
-0RwGHBscLhxCHFccahxvHHEccxx1HHcceRx7HIAcgRyDHIUchxycHJ4coByiHKQcuhzrHO0c8hz0HPYc
-+Bz6HPwc/x0BHQYdDR0jHVgdfh2AHYIdhB2GHYgdih2MHZIdmx2dHaAdoh2vHbcduR2+HcAdwh3HHckd
-yx3ZHgUeDB4VHhweMh4/HlUeXh5pHn0ehh6THqEerR7OHtAe0h7UHtYe2R7aHtwe3h71HxYfGx8dHx8f
-IR8jHyUfKh8sHzkfTh9QH1IfVB9WH2MfbB93H5wfqB+qH6wfrh+wH7Ifsx+1H7cfwB/CH8cfyR/LH+cf
-/yAYIDkgRSBcIGcgbCBuIHAgciB1IHcgeSCCIIQghSCOIJcgoiCrILYgxCDPINgg3yD3IQIhCyEQISMh
-KiE7IT0hPyFBIUMhTyFgIWIhZCFmIWghdyGIIYohjCGOIZAhqCG5IbshvSG/IcEh1iHnIekh6yHtIe8i
-ACICIgQiBiIIIhQiNSI/IkkiUyJyInQidiJ4InoifCJ+IoAinyKlIr0iyiLMIs8i0SLUItYi9CL9IwIj
-CyMSIyojSyNNI08jUSNTI1UjVyNZI3YjjCOZI5sjniOgI6MjpSO+I9cj+CP6I/wj/iQAJAIkBCQGJCUk
-PSRKJEwkTyRRJFQkViRzJHUkdyR5JHskfSR/JJUkoiTDJMUkxyTJJMskzSTPJNEk8SUKJRclGSUcJR4l
-ISUjJUQlRiVIJUolTCVOJVAlUiVxJYklliWYJZslnSWgJaIlwyXFJcclySXLJc0lzyXRJe8l/CYKJhcm
-GSYcJh4mISYjJj0mXiZgJmImZCZmJmgmaiZsJosmoyawJrImtSa3JromvCbdJt8m4SbjJuUm5ybpJusn
-CyckJzEnMyc2JzgnOyc9J14nYCdiJ2QnZidoJ2onbCeKJ6EnriewJ7MntSe4J7onwyfGKA0oDygRKBMo
-FSgXKBkoGygdKB8oISgjKCUoJygpKCsoLSgvKDEoMyg1KDcoOSg7KD0oPyhBKEMoRShHKEkoSyhNKE8o
-UShaKFwoXihsKHUoiCiKKIsolCibKLYowyjMKNEo2ijdKSQpJikoKSopLCkuKTApMik0KTYpOCk6KTwp
-PilAKUIpRClGKUgpSilMKU4pUClSKVQpVilYKVopXCleKWApYilkKWYpaClxKXQpvSm/KcEpwynFKccp
-ySnLKc0pzynRKdMp1SnXKdkp2yndKd8p4SnjKeUp5ynpKesp7SnvKfEp8yn1Kfcp+Sn7Kf0p/yoBKgMq
-DCoPKlgqWypeKmEqZCpnKmoqbSpwKnMqdip5KnwqfyqCKoUqiCqLKo4qkSqUKpcqmiqdKqAqoyqmKqkq
-rCqvKrIqtSq4KrsqvirBKtUq3yr2Kw4rKys4K1grdSuMK6MruSvPK9wr/CwILCosbSyFLJkssSzPLO8t
-Dy0mLUYtUi1mLYYtoy3DLdct+C4YLjguRS5OLlEuVi5YLlouYy5mLmsubS5vLnguey7wLvIu9C72Lvgu
-+i78Lv4vAC8CLwQvBi8ILwovDC8OLxAvEi8ULxYvGC8aLxwvHi8gLyIvJC8mLygvKi8sLy4vMC8yLzQv
-Ni84LzovPC8+L0AvQi9EL0YvSC9KL0wvTi9QL1IvVC9WL1gvWi9cL14vYC9iL2svbi/jL+Yv6S/sL+8v
-8i/1L/gv+y/+MAEwBDAHMAowDTAQMBMwFjAZMBwwHzAiMCUwKDArMC0wMDAzMDYwOTA8MD8wQjBFMEgw
-SzBOMFEwVDBXMFowXTBgMGMwZjBpMGwwbzByMHUweDB7MH4wgTCEMIcwijCNMI8wkTCTMJUwlzCZMJsw
-nTCfMKEwozCsMK4wsDCyMLQwtjC4MLowvDC+MMAwwjDEMMYwyDDKMMwwzjDQMNIw1DDWMNgw2jDcMN4w
-4DDiMOQw5jDoMOow7DDuMPAw8jD0MPYw+DD6MQMxBTEGMQ8xEjETMRwxHzEgMSkxLgAAAAAAAAICAAAA
-AAAABfIAAAAAAAAAAAAAAAAAADE9A
+HoEBH4EBIIEBIYEBIoEBI4EBJIEBJYEBJoEBJ4EBKIEBKYEBKlxGaWxlJ3MgT3duZXJfEB1UZXh0IEZp
+ZWxkIENlbGwgKFRleHQgQ2VsbCktMlxTZWFyY2ggRmllbGRfEBtUZXh0IEZpZWxkIENlbGwgKFRleHQg
+Q2VsbClfEBpQb3AgVXAgUGF0aCBDb250cm9sIFdpZGdldFlQYXRoIENlbGxfEB1UZXh0IEZpZWxkIENl
+bGwgKFRleHQgQ2VsbCktNV8QHVRleHQgRmllbGQgQ2VsbCAoVGV4dCBDZWxsKS02XxAUVGFibGUgQ29s
+dW1uICh0cmFjaylfEEBQbGF5bGlzdCBWaWV3IChUaXRsZSwgQXJ0aXN0LCBBbGJ1bSwgTGVuZ3RoLCBZ
+ZWFyLCBHZW5yZSwgVHJhY2spXxAUVGFibGUgQ29sdW1uIChhbGJ1bSlfEBRUYWJsZSBDb2x1bW4gKGdl
+bnJlKV8QH1NoYXJlZCBVc2VyIERlZmF1bHRzIENvbnRyb2xsZXJfEB1UZXh0IEZpZWxkIENlbGwgKFRl
+eHQgQ2VsbCktMV8QHVRleHQgRmllbGQgQ2VsbCAoVGV4dCBDZWxsKS00XxAdU3BvdGxpZ2h0IFBsYXls
+aXN0IENvbnRyb2xsZXJfEBNUYWJsZSBDb2x1bW4gKHllYXIpXxARVGFibGUgSGVhZGVyIFZpZXdfEBxT
+dGF0aWMgVGV4dCAoU2VhcmNoIEZvbGRlcjopXxAaTWVudSBJdGVtIChTaG93IGluIEZpbmRlcilfEBNI
+b3Jpem9udGFsIFNjcm9sbGVyXxAUVGFibGUgQ29sdW1uICh0aXRsZSlfEB1UZXh0IEZpZWxkIENlbGwg
+KFRleHQgQ2VsbCktM1xDb250ZW50IFZpZXdfEBVNZW51IChDb250ZXh0dWFsTWVudSlfEBVUYWJsZSBD
+b2x1bW4gKGFydGlzdClfECBUZXh0IEZpZWxkIENlbGwgKFNlYXJjaCBGb2xkZXI6KV8QFVRhYmxlIENv
+bHVtbiAobGVuZ3RoKV8QHUJ1dHRvbiBDZWxsIChBZGQgdG8gUGxheWxpc3QpW0FwcGxpY2F0aW9uXxAR
+U2VhcmNoIEZpZWxkIENlbGxbU2Nyb2xsIFZpZXdfEBFQYW5lbCAoU3BvdGxpZ2h0KV8QEVZlcnRpY2Fs
+IFNjcm9sbGVyXxAdUHVzaCBCdXR0b24gKEFkZCB0byBQbGF5bGlzdCnSAA4APgR5BTmBAQSiAGQAY4AK
+gBrSAA4APgR5BT6BAQSiAHQAuoALgBvSAA4APgR5BUOBAQSvEDkB9QKZAjIBiQEXAGMAUQGqARYEWwBk
+A0wBEQD8Ad0A+wBcAEoAWQESAFgDhABPAwsAUgKgAQcDBQBTAE0AHwIKAFcAVgI6AcMASABdARMAWgEm
+AFABFQCuAmgBFAJ5AEsAVQBUBJcAWwDJAEkATABOAyaAV4B/gGWARoBYgBqAw4BKgFSA94AKgLSAKYCu
+gFOAZoDygGSA44BAgN+AtoCfgJqAyICBgKqAmIDKgJWAAoBbgNuA14BrgE6ACYD2gEeA54A2gMKAUIAg
+gHGAS4BygHCA1IDMgQECgO6AJYBigH6Al4Cg0gAOAD4EeQV/gQEErxA5BYAFgQWCBYMFhAWFBYYFhwWI
+BYkFigWLBYwFjQWOBY8FkAWRBZIFkwWUBZUFlgWXBZgFmQWaBZsFnAWdBZ4FnwWgBaEFogWjBaQFpQWm
+BacFqAWpBaoFqwWsBa0FrgWvBbAFsQWyBbMFtAW1BbYFtwLrgQEvgQEwgQExgQEygQEzgQE0gQE1gQE2
+gQE3gQE4gQE5gQE6gQE7gQE8gQE9gQE+gQE/gQFAgQFBgQFCgQFDgQFEgQFFgQFGgQFHgQFIgQFJgQFK
+gQFLgQFMgQFNgQFOgQFPgQFQgQFRgQFSgQFTgQFUgQFVgQFWgQFXgQFYgQFZgQFagQFbgQFcgQFdgQFe
+gQFfgQFggQFhgQFigQFjgQFkgQFlgQFmgI8QKxA3EFgQJxAdEBwQsBAoEB4QuhBPECQQGhAqEF0QnxBp
+ECIQaxBQEEgQoBA4EBsQBRA9EJcQwhAsEGYQZRBZECkQlRDBECEQtRAlEKEQrBAgEKsQrxCaEF4T////
+//////0QaBAYELgQsxCj0gAOAD4ARgXugBWg0gAOAD4EeQXxgQEEoNIADgA+BHkF9IEBBKDSADcAOAX2
+BfeiBfcAO15OU0lCT2JqZWN0RGF0YQAIABkAIgAnADEAOgA/AEQAUgBUAGYDQANGA5EDmAOfA60DvwPb
+A+kD9QQBBA8EGgQoBEQEUgRlBHcEkQSbBKgEqgStBLAEswS2BLgEuwS9BMAEwwTGBMkEywTNBNAE0wTV
+BNgE4QTtBO8E8QUNBRYFHwUqBS8FPgVHBVoFYwVuBXAFcQV6BYEFjgWUBZ0FnwXOBdAF0gXUBdYF2AXa
+BdwF3gXgBeIF5AXmBegF6gXsBe4F8AXyBfQF9gX4BfoGCwYZBiIGKgYsBi4GMAYyBlMGcAaGBpEGowa3
+BsYGxwbJBssGzAbOBtAG0gbUBvIHBgcPBxEHIAciByQHJgcoByoHLAcuBzQHOQdAB0YHTAdTB1kHYgdp
+B3gHgAeOB5MHlQeeB6MHrAexB8AIHwgxCFMIXQhqCH4IkwigCLoI1gjxCPoJBgkQCR8JKAk0CVMJXwlu
+CXoJfAl+CYAJiQmLCY0JjwmQCZIJmwmdCaYJqQmrCawJrgmwCbIJtAm2CbgJugnDCdAJ3AoJChEKGwom
+CjAKOgpICkoKTApOClAKUgpVClcKWQpbCl0KXwpqCocKiQqLCo4KkAqSCpQKlgrDCsUKxwrJCssKzQrP
+CtEK0wrVCtcK4QrqCvMLBwsOCxoLMws1CzcLOQs7Cz0LfAuIC5ELpAuxC70LywvNC88L0QvTC9UL1wvZ
+C9sL7gvxC/ML9Qv3C/kL+wwSDBsMJAwyDDsMPQxMDE4MUAxSDFQMVgxYDFoMgwySDJ8MrAy0DL8MzgzZ
+DOQM5QznDOkM6wz0DPYM+A0BDQoNDA0pDTUNQA1KDVcNYw1oDWoNbA1uDXANcg14DYkNkA2XDaANog2r
+Da0NsA29DcYNyw3SDd8N7A30DfYOAg4LDhAOGA4tDjkORw5JDksOTQ5PDlEOWA5qDncOeQ58DoUOkA6k
+DrYOww7KDusO+Q7+DwAPAg8EDwYPCA8LDw0PFw8oDyoPMw81DzgPTQ9PD1EPUw9VD24Pew99D4kPng+g
+D6IPpA+mD7kPwg/LD9QP2Q/nEBAQERATEBUQFxAgECIQKxAtEEoQTxBREFMQVRBXEFkQYBB1EHcQeRB7
+EH0QiRCWEJgQmxC8EL4QwBDCEMQQxhDIEPEQ8hD0EPYQ+BEBEQMRDBEOESsRLREvETERMxE1ETsRXBFe
+EWARYhFkEWYRaBGVEZ4RnxGgEaIRpBGmEa8RsRG6EbwR2RHbEd0R3xHhEeYR6BHvEhASEhIUEhYSGBIa
+Eh8SIRJOEk8SUBJSElQSVhJfEmESahJsEokSixKNEo8SkRKTEpgSuRK7Er0SvxLBEsMSxRLyEvMS9BL2
+EvgS+hMDEwUTBxMkEyYTKBMqEywTLhM0E1UTVxNZE1sTXRNfE2ETihOLE40TjxORE5MTnBOeE7sTvRO/
+E8ETwxPFE8sT7BPuE/AT8hP0E/YT+BQNFA8UERQTFBUUHxQsFC4UMxRKFFQUXRRkFHsUihSbFJ0UnxSh
+FKMUuBTJFMsUzRTPFNEU9hUCFQQVBhUIFQoVDBUPFRAVEhUUFTEVMxU1FTcVORU7FT0VRhVIFU0VTxVR
+FW0VhRWdFb4VyhXhFewV8RXzFfUV9xX6FfwV/hYHFgkWChYTFhwWJxYwFjsWSRZTFl8WcBZyFnQWdhZ4
+FpkWoRa1FsAWzhbYFuUW7BbuFvAW9Rb3FvwW/hcAFwIXDxcbFx0XHxchFzAXMRc+F00XTxdRF1MXWxdt
+F3YXexeOF5sXnRefF6EXtBe9F8IXzRfiF+sX8hgKGBsYHRgfGCEYIxhEGEYYSBhKGEwYTxhQGFIYVBht
+GKIYtxjKGN4Y8xkGGQsZDRkPGREZExkVGRcZHBkdGR8ZIRkjGTgZOhk8GT4ZQBlWGYcZkBmlGbQZxhnY
+GeEZ7xnxGfYZ+Bn6GfwZ/hoAGgMaBRoKGhEaJxowGjkaRhp7GqEaoxqlGqcaqRqrGq0arxq1Gr4awBrD
+GsUa0hraGtwa4RrjGuUa6hrsGu4a/BsoGy8bOBs/G1UbYht4G4EbjBugG6kbthvEG9Ab3BvtG+8b8Rvz
+G/UcABwRHBMcFRwXHBkcOhw8HD4cQBxCHEUcRhxIHEocZByVHKscrRyvHLEcsxy1HLccuRy7HL0cwhzL
+HN0c3xzoHPMc/B0LHRwdHh0gHSIdJB1ZHWYdcx2JHZcdoR2vHcgd1R3nHfseBR4RHhMeFR4XHhkeGx4k
+HiYeKB4qHiweLh4wHkseVR5dHmgecR5zHn4egB6CHoQehh6IHpEekx6eHqAeoh6kHqYeqB6xHrMeth64
+HtAe2R7iHu0fEh8cHx4fIB8iHyQfJh8oHyofMx9MH1kfYh9tH3gfoR+jH6Ufpx+pH7IftB+2H7gfwR/d
+H+Yf6B/rH+0gBiAPIBggJSBGIEggSiBMIE4gTyBRIFMgaiCLIJAgkiCUIJYgmCCaIJ8goSCwIMUgxyDJ
+IMsgzSDaIOMg7iD5IQIhCSEhISwhNSE6IU0hVCFlIWchaSFrIW0hfiGAIYIhhCGGIZUhniGgIaMhpSGu
+IbMhuCHJIcshzSHPIdEh7SH+IgAiAiIEIgYiHiI/IkkiUyJdInwifiKAIoIihCKGIogiiiKoIq4ixSLS
+ItQi1yLZItwi3iL8IwUjCiMTIxojMiNPI1EjUyNVI1cjWSNbI3EjfiOfI6EjoyOlI6cjqSOrI60jzCPk
+I/Ej8yP2I/gj+yP9JB4kICQiJCQkJiQoJCokLCRLJGMkcCRyJHUkdyR6JHwknSSfJKEkoySlJKckqSSr
+JMok4iTvJPEk9CT2JPkk+yUcJR4lICUiJSQlJiUoJSolSiVjJXAlciV1JXcleiV8JZ0lnyWhJaMlpSWn
+JaklqyXJJdYl5CXxJfMl9iX4Jfsl/SYWJjAmUSZTJlUmVyZZJlsmXSZfJn8mmCalJqcmqiasJq8msSbS
+JtQm1ibYJtom3CbeJuAm/ycXJyQnJicpJysnLicwJ1EnUydVJ1cnWSdbJ10nXydsJ38ngSeDJ4QnjSeP
+J5InlCeqJ7MnuifVJ+IoBigjKDAoMig1KDcoOig9KFYoXyhiKKkoqyitKK8osSizKLUotyi5KLsovSi/
+KMEowyjFKMcoySjLKM0ozyjRKNMo1SjXKNko2yjdKN8o4SjkKOYo6CjqKOwo7ij3KPko/CkKKRMpGCkh
+KSQpayltKW8pcSlzKXUpdyl5KXspfSl/KYEpgymFKYcpiSmLKY0pjymRKZMplSmXKZkpmymdKZ8poSmj
+KaUppympKasprSmvKbgpuyoEKgYqCCoKKgwqDioQKhIqFCoWKhgqGiocKh4qICoiKiQqJiooKioqLCou
+KjAqMio0KjYqOCo6KjwqPipBKkMqRSpHKkkqSypUKlcqoCqjKqYqqSqsKq8qsiq1Krgquyq+KsEqxCrH
+KsoqzSrQKtMq1irZKtwq3yriKuUq6CrrKu4q8Sr0Kvcq+ir9KwArAysGKwkrFis2K0MrYSt+K4grqCvI
+K98sIiw5LFAsciySLLIs0izoLPwtGy04LU4tZS2FLZItqi3CLeUt/S4dLikuPS5JLl0ucS6RLpounS6i
+LqQupi6vLrIuty65LrsuxC7HLzwvPi9AL0IvRC9GL0gvSi9ML04vUC9SL1QvVi9YL1ovXC9eL2AvYi9k
+L2YvaC9qL2wvbi9wL3IvdC92L3gvei98L34vgC+CL4Qvhi+IL4ovjC+OL5Avki+UL5YvmC+aL5wvni+g
+L6MvpS+nL6kvqy+tL68vuC+7MDAwMzA2MDkwPDA/MEIwRTBIMEswTjBRMFQwVzBaMF0wYDBjMGYwaTBs
+MG8wcjB1MHgwezB+MIEwhDCHMIowjTCQMJMwljCZMJwwnzCiMKUwqDCrMK4wsTC0MLcwujC9MMAwwzDG
+MMkwzDDPMNIw1TDYMNow3DDeMOAw4jDkMOYw6DDqMOww7jDwMPIw9DD2MPgw+jD8MP4xADECMQQxBjEI
+MQoxDDEOMRAxEjEUMRYxGDEaMRwxHjEgMSIxJDEmMSgxKjEsMS4xMDEyMTQxPTE/MUExQzFFMUcxUDFS
+MVMxXDFfMWAxaTFsMW0xdjF7AAAAAAAAAgIAAAAAAAAF+AAAAAAAAAAAAAAAAAAAMYo
diff --git a/Spotlight/SpotlightTransformers.h b/Spotlight/SpotlightTransformers.h
index df12b5c9e..338948047 100644
--- a/Spotlight/SpotlightTransformers.h
+++ b/Spotlight/SpotlightTransformers.h
@@ -19,9 +19,10 @@
@end
@interface AuthorToArtistTransformer: NSValueTransformer {}
-
@end
@interface PathToURLTransformer: NSValueTransformer {}
+@end
+@interface StringToSearchScopeTransformer: NSValueTransformer {}
@end
\ No newline at end of file
diff --git a/Spotlight/SpotlightTransformers.m b/Spotlight/SpotlightTransformers.m
index 3f7e841ef..77f7afe1b 100644
--- a/Spotlight/SpotlightTransformers.m
+++ b/Spotlight/SpotlightTransformers.m
@@ -69,4 +69,19 @@ static SpotlightWindowController * searchController;
return [value path];
}
+@end
+
+@implementation StringToSearchScopeTransformer
+
++ (Class)transformedValueClass { return [NSArray class]; }
++ (BOOL)allowsReverseTransformation { return NO; }
+
+// Convert from URL string to Search Scope
+- (id)transformedValue:(id)value {
+ if (value == nil) return nil;
+
+ NSURL *scope = [NSURL URLWithString:value];
+ return [NSArray arrayWithObject: scope];
+}
+
@end
\ No newline at end of file
diff --git a/Spotlight/SpotlightWindowController.h b/Spotlight/SpotlightWindowController.h
index 8193f5850..13c498022 100644
--- a/Spotlight/SpotlightWindowController.h
+++ b/Spotlight/SpotlightWindowController.h
@@ -17,7 +17,6 @@
IBOutlet NSSearchField *searchField;
NSMetadataQuery *query;
NSString *searchString;
- NSString *spotlightSearchPath;
}
- (IBAction)addToPlaylist:(id)sender;
@@ -30,6 +29,5 @@
@property(retain) NSMetadataQuery *query;
@property(copy) NSString *searchString;
-@property(copy) NSString *spotlightSearchPath;
@end
diff --git a/Spotlight/SpotlightWindowController.m b/Spotlight/SpotlightWindowController.m
index 9624c643c..25fb5f2ed 100644
--- a/Spotlight/SpotlightWindowController.m
+++ b/Spotlight/SpotlightWindowController.m
@@ -42,16 +42,22 @@ static NSPredicate * musicOnlyPredicate = nil;
// Register value transformers
NSValueTransformer *pausingQueryTransformer = [[[PausingQueryTransformer alloc]init]autorelease];
[NSValueTransformer setValueTransformer:pausingQueryTransformer forName:@"PausingQueryTransformer"];
+
NSValueTransformer *authorToArtistTransformer = [[[AuthorToArtistTransformer alloc]init]autorelease];
[NSValueTransformer setValueTransformer:authorToArtistTransformer forName:@"AuthorToArtistTransformer"];
+
NSValueTransformer *pathToURLTransformer = [[[PathToURLTransformer alloc]init]autorelease];
[NSValueTransformer setValueTransformer:pathToURLTransformer forName:@"PathToURLTransformers"];
+
+ NSValueTransformer *stringToSearchScopeTransformer = [[[StringToSearchScopeTransformer alloc]init]autorelease];
+ [NSValueTransformer setValueTransformer:stringToSearchScopeTransformer forName:@"StringToSearchScopeTransformer"];
+
}
- (id)init
{
if (self = [super initWithWindowNibName:@"SpotlightPanel"]) {
- self.query = [[NSMetadataQuery alloc] init];
+ self.query = [[[NSMetadataQuery alloc]init]autorelease];
[self.query setDelegate:self];
self.query.sortDescriptors = [NSArray arrayWithObjects:
[[NSSortDescriptor alloc]initWithKey:@"kMDItemAuthors"
@@ -65,6 +71,17 @@ static NSPredicate * musicOnlyPredicate = nil;
selector:@selector(compareTrackNumbers:)],
nil];
+ // We want to bind the query's search scope to the user default that is
+ // set from the NSPathControl.
+ NSDictionary *bindOptions =
+ [NSDictionary dictionaryWithObject:@"StringToSearchScopeTransformer"
+ forKey:NSValueTransformerNameBindingOption];
+
+ [self.query bind:@"searchScopes"
+ toObject:[NSUserDefaultsController sharedUserDefaultsController]
+ withKeyPath:@"values.spotlightSearchPath"
+ options:bindOptions];
+
// hook my query transformer up to me
[PausingQueryTransformer setSearchController:self];
}
@@ -234,9 +251,8 @@ static NSPredicate * musicOnlyPredicate = nil;
- (void)dealloc
{
- [self.query stopQuery];
- [self.query release];
- [self.searchString release];
+ self.query = nil;
+ self.searchString = nil;
[musicOnlyPredicate release];
[super dealloc];
}
@@ -277,27 +293,4 @@ replacementObjectForResultObject:(NSMetadataItem*)result
}
}
-@dynamic spotlightSearchPath;
-// getter reads from user defaults
-- (NSString *)spotlightSearchPath
-{
- return [[[NSUserDefaults standardUserDefaults]
- stringForKey:@"spotlightSearchPath"]copy];
-}
-// Normally, our NSPathcontrol would just bind to the user defaults
-// However, this does not allow us to perform a new search when
-// the path changes. This getter/setter combo wraps the user
-// defaults while performing a new search when the value changes.
-- (void)setSpotlightSearchPath:(NSString *)aString
-{
- // Make sure the string is changed
- if (![spotlightSearchPath isEqualToString: aString])
- {
- spotlightSearchPath = [aString copy];
- [[NSUserDefaults standardUserDefaults] setObject:spotlightSearchPath
- forKey:@"spotlightSearchPath"];
- [self performSearch];
- }
-}
-
@end