• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 00:46
CEST 06:46
KST 13:46
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
Code S Season 2 (2026) - RO12 Preview0herO wins GSL Code S Season 1 (2026)0Code S Season 1 (2026) - RO4 & Finals Preview5[ASL21] Ro4 Preview: On Course12Code S Season 1 - RO8 Preview7
Community News
Weekly Cups (May 11-17): Classic wins double0Code S Season 1 (2026) - RO8 Results2Weekly Cups (May 4-10): Clem, MaxPax, herO win1Maestros of The Game 2 announcement and schedule !18Weekly Cups (April 27-May 4): Clem takes triple0
StarCraft 2
General
Code S Season 2 (2026) - RO12 Preview herO wins GSL Code S Season 1 (2026) Weekly Cups (May 11-17): Classic wins double Code S Season 1 (2026) - RO4 & Finals Preview Team Liquid Map Contest #22 - The Finalists
Tourneys
GSL Code S Season 1 (2026) GSL Code S Season 2 (2026) Maestros of The Game 2 announcement and schedule ! $1,400 SEL Season 3 Ladder Invitational $5,000 WardiTV Spring Championship 2026
Strategy
Custom Maps
[D]RTS in all its shapes and glory <3 [A] Nemrods 1/4 players
External Content
The PondCast: SC2 News & Results Mutation # 526 Rubber and Glue Mutation # 525 Wheel of Misfortune Mutation # 524 Death and Taxes
Brood War
General
Lights Ro.8 Review (asl s21) 25 Years Since Brood War Patch 1.08 vespene.gg — BW replays in browser BGH Auto Balance -> http://bghmmr.eu/ BW General Discussion
Tourneys
[Megathread] Daily Proleagues [ASL21] Semifinals B [BSL22] RO8 Bracket Stage + Another TieBreaker [ASL21] Ro8 Day 4
Strategy
Muta micro map competition Fighting Spirit mining rates [G] Hydra ZvZ: An Introduction Simple Questions, Simple Answers
Other Games
General Games
Stormgate/Frost Giant Megathread Warcraft III: The Frozen Throne ZeroSpace Megathread War of Dots, 2026 minimalst RTS Nintendo Switch Thread
Dota 2
The Story of Wings Gaming
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
Vanilla Mini Mafia Mafia Game Mode Feedback/Ideas TL Mafia Community Thread Five o'clock TL Mafia
Community
General
US Politics Mega-thread European Politico-economics QA Mega-thread YouTube Thread Russo-Ukrainian War Thread UK Politics Mega-thread
Fan Clubs
The herO Fan Club!
Media & Entertainment
[Manga] One Piece Anime Discussion Thread [Req][Books] Good Fantasy/SciFi books
Sports
2024 - 2026 Football Thread McBoner: A hockey love story Formula 1 Discussion
World Cup 2022
Tech Support
streaming software Strange computer issues (software)
TL Community
The Automated Ban List
Blogs
Why RTS gamers make better f…
gosubay
How EEG Data Can Predict Gam…
TrAiDoS
ramps on octagon
StaticNine
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1515 users

MIT Overseer Observer Mod

Forum Index > SC2 Maps & Custom Games
Post a Reply
philiptan
Profile Joined June 2012
19 Posts
October 19 2013 12:49 GMT
#1
We’ve been experimenting with the StarCraft 2 Galaxy Editor at the MIT Game Lab over the summer and we’d like to share our current prototype casting tool. The MIT Overseer project aims to provide casters with real-time graphics to help them tell the story of a game while it is in progress. We are trying out several different ways of displaying what happened in the past of a single game and anticipating what might happen in the near future.

Our project isn’t meant to compete with excellent observer mods like GameHeart. Currently, it is a tech demo so that we can start getting community feedback. We’re trying to identify what subset of hacked-together features are worth keeping and refining. Once we hear back from StarCraft viewers, casters, and players, we’ll focus on simplifying and streamlining our implementation, integrating it with other popular casting tools if given the opportunity.

Any feedback would be much appreciated, particularly if you’re involved in StarCraft 2 casting or an active spectator. And if you cast a game on “MIT Akilon Wastes”, please post your links to your videos. Thanks!

[image loading]
Existor
Profile Joined July 2010
Russian Federation4295 Posts
October 19 2013 12:58 GMT
#2
Make these black parts 30% transparent?
InfCereal
Profile Joined December 2011
Canada1759 Posts
October 19 2013 14:56 GMT
#3
I think it's taking up too much of the screen.

I agree with Existor in making the black parts transparent, also having the ability to turn off any section at will would be good. I like the graph in that picture though, reminds me of the graphs in Dota 2. Is that a feature for all of the stat screens, or just units lost?

I think it would be interesting to see graphs for all the stats, it might provide an easier way to determine who's ahead in a game.
Cereal
iHirO
Profile Blog Joined January 2011
United Kingdom1381 Posts
Last Edited: 2013-10-19 17:45:41
October 19 2013 16:03 GMT
#4
Here's a quick attempt to show more screen space.

[image loading]

The top bar should probably be made slightly transparent too.

Template: + Show Spoiler +

[image loading]

GraphicsThis is for all you new people: I only have one rule. Everyone fights. No one quits. You don't do your job, I'll shoot you myself. You get me?
philiptan
Profile Joined June 2012
19 Posts
October 20 2013 02:02 GMT
#5
Thanks for the feedback so far! We went with a large opaque rectangle for the lower bar header text partly as a result of hacking together leaderboard functionality. (The "PRODUCTION" title actually hides the race icon of the observer player.) With our upcoming overhaul, we may not need to employ the same hack and could implement the suggestions here.

One thing to keep in mind is that opaque rectangles are much easier on video encoders, improving legibility for objects within the rectangle. This makes much more of a difference for text than icons, though, so a translucent background is certainly feasible for the Production tab.
Semmo
Profile Joined June 2011
Korea (South)627 Posts
October 20 2013 09:24 GMT
#6
I'd rather have a full on graph like dota 2 than a bar graph for different times. I think it's much better visually (like one you get after the game)
Mapmaker of Frost, Fruitland and Bridgehead
Phaenoman
Profile Joined February 2013
568 Posts
Last Edited: 2013-10-20 13:16:27
October 20 2013 12:15 GMT
#7
I like how you try to show as many numbers as possible but I think the way you are doing it takes so much space.
The changes you made (transparancy, etc.) are good. However the space that is not being used but still part of your UI is too much imo.
- right part of PRODUCTION
- red and blue areas of UNITS LOSTS
- space between TECHNOLOGY and the resources

Great work tho!
Random is hard work dude...
philiptan
Profile Joined June 2012
19 Posts
October 20 2013 18:00 GMT
#8
The red and blue areas of the graphs are scaled to the largest bar in the last 3 minutes, so if there's a big spike (as you see in the TL screenshot) then the rest of the space are going to be mostly empty. You can see other examples of our graphs in the linked blog post. Of course, the graphs are hotkeyed, so you should always toggle them off if there's nothing interesting to see on them.

The far-right corner is intended to help home viewers who rapidly switch between streams, which is why we put the "Station ID" and the game timer there. The suggested mockup does free up more space overall by replacing the map name with that information, and we'll consider that for our next revisions. But Production completely fills up in a big macro game, so if people like the always-on production tab, expect that we'll have to allocate a lot of space for Production icons.

As for the space to the right of Technology, that's intended to be space for sponsor logos & player face cameras, but yeah, we're not happy with the distribution in the top row either. We'll take all this feedback to rearrange all the data.
iHirO
Profile Blog Joined January 2011
United Kingdom1381 Posts
Last Edited: 2013-10-20 21:29:52
October 20 2013 21:18 GMT
#9
Feedback

Positives:
+ Show Spoiler +
  • Interface looks really slick!
  • Consistent and crisp fonts.
  • Improved legibility with black backgrounds.
  • Clean UI outline.
  • Slow update of resources is less distracting (e.g. increments of 5).
  • Clear charts are a big improvement over the Blizzard defaults.
  • Amber coloured supply blocks work well (blizzard should add it to the 1v1 experience).


Formatting Issues:
+ Show Spoiler +
  • The UI contains a lot of dead space, which makes the game feel claustrophobic to view; here are some possible solutions:
    • Vertically align the header texts and set the UI background to transparent (See Mock Up UI).
    • Reveal the game screen when no tabs or units are selected instead of showing an empty black box.
    • Remove unneeded information (e.g. the map name) to free up space.
    • Move the Game Clock and Logo up to the top UI bar.
  • The UI would be improved by consistently aligning the header text instead of using a combination of centred, left and right.
  • The Unit Card background style should match the rest of the UI with a black border and white fonts (also remove the yellow font from the Countdown timers).

    [image loading]

    VS

    [image loading]

  • Resource Lead charts should be simplified to match the 'metro' style of the other charts. The Countdown Timer could also be updated to this blocky style.
    [image loading]      VS      [image loading]

  • The Production Tab has insufficient space (it overlaps the Logo element) and needs work.

    [image loading]

  • The Unit Lost and Workers Lost chart could alternate their background colours to show time advancing.

    [image loading]

    VS

    [image loading]

  • Use black font when light player colours are selected so that the information is readable.

    [image loading]

    VS

    [image loading]


Major Problems:
+ Show Spoiler +
  • The Structures and Units tabs overlap into the Production tab, here are some possible solutions:

    [image loading]

    • Remove workers from the Units tab as they are already shown in the top UI.
    • Temporarily remove the Production Tab when either the Units or Structures tab is selected.


  • The Production, Structure and Units tabs are currently broken and only display correctly for one player.

    [image loading]

  • Update the Game Clock to Hour:Minute:Second format.

    [image loading]

  • Countdown Timers can fill up all the screen space if multiple upgrades are in progress and although they can be manually cleared, here are some possible solutions:

    [image loading]

    • Only show one timer for each player for the next completing upgrade (maximum of two timers visible).
    • Make them smaller and partially transparent so that action can be seen underneath.
    • Only show the timers for the currently selected player, this could reduce the number on screen and help with the narrative (e.g. will his 2/2 upgrades complete before the attack).
    • Set the countdown to a customisable value (e.g. 15s), which will cause fewer upgrades to appear on screen.
    • Allow the observer to tag specific upgrades in game to receive countdowns.


Minor Issues:
+ Show Spoiler +
  • Line artefacts are appearing in game, although this could be an engine problem instead of the interface.

    [image loading]


  • The hotkey for the Mineral and Vespene Advantage charts are the same as the screen rotation hotkeys (e.g. '[' ']'); is there a way to avoid hotkey conflicts?
  • Hotkeys have to be pressed twice to cause new tabs to appear (e.g. Press 'K' to clear the Unit Lost chart and then again to display the upgrades).
  • Update the Production Tab UI text to prevent it flashing when the 'R' button is pressed.
  • Update the UI elements so that they transition consistently (e.g. load the Advantage Chart and press 'A', then reload the chart again and press 'A', the tabs will write overlap differently from the first time).
  • The player's race is currently fixed to Protoss on creating the custom game.
  • Allow the observer (Player 3) to keep vision when the game ends (useful for tournaments).

    [image loading]

  • The 'Play Again' feature is broken for this map in the Custom games menu (some sort of dependency error).
  • Pressing the 'N' and 'D' keys cause a sound effect but nothing happens.


Replay Issues:
+ Show Spoiler +
  • The controls need to be either situated above the Production tab or removed from the screen (use hotkeys only).

    [image loading]

  • Selecting a player's view in the replay causes all the interface objects to be crammed in the top left corner.

    [image loading]

  • All charts are disabled in the replay unless selected when the game was live. However those charts then appear in the background if tab hotkeys are used.


Ideas:
+ Show Spoiler +
  • Could add a M.U.L.E icon (with a count) next to the worker count whenever one is called down and remove them as they expire.
  • Add all the new hotkey information into the map loading screen.
  • The Resources Remaining chart could be updated with a darkened colour to indicate what resources have been permanently removed from the map (e.g. units killed).

    [image loading]


Questions:
+ Show Spoiler +
  • Can you explain how the Technology Tab works, what is the criteria for deciding which unit to add to it?
  • Have you considered how this interface could be adapted for 2v2 tournaments?
  • Zoom out functionality is really useful for observing, is there a way to enable it for Player 3?
  • The icons used on the top UI have Terran icons by default, have you considered making this race specific for mirror match ups (e.g. ZvZ)?
    [image loading]


p.s Could you publish the map on EU server please!
GraphicsThis is for all you new people: I only have one rule. Everyone fights. No one quits. You don't do your job, I'll shoot you myself. You get me?
philiptan
Profile Joined June 2012
19 Posts
Last Edited: 2013-10-21 00:06:52
October 20 2013 23:56 GMT
#10
Thanks for the awesome, detailed feedback, particularly the bug reports! Definitely a ton of good, feasible ideas.

I have one quick question:
The hotkey for the Mineral and Vespene Advantage charts are the same as the screen rotation hotkeys (e.g. '[' ']'); is there a way to avoid hotkey conflicts?

Is this a common setup for casters, or a new default? Blizzard's default hotkeys for camera rotation used to be Insert and Delete.

Answers for your questions:
Can you explain how the Technology Tab works, what is the criteria for deciding which unit to add to it?

We go into some detail in the blog post, but in a nutshell, it simply shows the newest kind of unit that each player has started producing. (It just needs to be queued up.) So every time something new is about to show up on the field, the icon switches appropriately, and whatever used to be the icon won't show up for the rest of the game.

Have you considered how this interface could be adapted for 2v2 tournaments?

Admittedly, we haven't spent any time thinking about that because of the relatively low percentage of 2v2 games among live StarCraft 2 events. I guess we'd focus on the most minimal subset of the visual elements and add stats between the allies for the graphs.

Zoom out functionality is really useful for observing, is there a way to enable it for Player 3?

Our hope is to make our code work either as a mod to GameHeart or using Blizzard's standard observer controls, which will restore Zoom Out and the 1v1 observer panels.

The icons used on the top UI have Terran icons by default, have you considered making this race specific for mirror match ups (e.g. ZvZ)?

Quite doable, although if we redistribute the numbers to allow icons beside each stat, we can probably go back to the current Blizzard default, where each icon is race-specific.
iHirO
Profile Blog Joined January 2011
United Kingdom1381 Posts
Last Edited: 2013-10-21 00:56:19
October 21 2013 00:55 GMT
#11
My observer hotkeys are set to '[' ']' because I play on a laptop without a numeric keypad. I noticed that bringing up the Vespene Advantage chart caused my screen to rotate at the same time.

The reason I asked about technology was say I queued up 10 Marauders and then 1 reaper for example. The reaper would show up on the UI as it's more recent but the mass Marauder switch would be the important information that I would want to communicate to the observer.
GraphicsThis is for all you new people: I only have one rule. Everyone fights. No one quits. You don't do your job, I'll shoot you myself. You get me?
philiptan
Profile Joined June 2012
19 Posts
October 21 2013 02:23 GMT
#12
The reason I asked about technology was say I queued up 10 Marauders and then 1 reaper for example. The reaper would show up on the UI as it's more recent but the mass Marauder switch would be the important information that I would want to communicate to the observer.


Yup, it'd work the way you describe, assuming that the reaper was the very first reaper you've built all game. The reaper icon still serves the function of helping first-time viewers associate "the jetpack guy" as belonging to a specific player.

Admittedly the icon is not perfect, but eventually players would build new units and it should sort itself out, or the game would be over anyway.
philiptan
Profile Joined June 2012
19 Posts
October 21 2013 19:04 GMT
#13
On October 21 2013 06:18 iHirO wrote:
[*] The Production, Structure and Units tabs are currently broken and only display correctly for one player.
[image loading]

We should look a little closer at this, because we haven't been able to duplicate it. Were you testing this with 2 players in the custom game, or 3 players?

The mod requires that the person who actually hit "Create Game" to the observer, and that player's race is fixed to Protoss, just to make it a bit more obvious. This means the mod really needs 3 players in the game... one observer and two competitors. (The competitors can be AI, which can result in some pretty boring games.)

Sorry for not explaining this better earlier!
iHirO
Profile Blog Joined January 2011
United Kingdom1381 Posts
October 21 2013 20:13 GMT
#14
Here's the replay if you want to re-create the error, I added two AIs as the players and set myself as Player 3.
GraphicsThis is for all you new people: I only have one rule. Everyone fights. No one quits. You don't do your job, I'll shoot you myself. You get me?
philiptan
Profile Joined June 2012
19 Posts
October 22 2013 01:09 GMT
#15
Ah, it assumes the observer is Player 1. I'll edit the blog post to make that clear for now, and see if we can technically resolve that in the future.
Ahli
Profile Joined May 2012
Germany355 Posts
October 22 2013 05:51 GMT
#16
On October 22 2013 10:09 philiptan wrote:
Ah, it assumes the observer is Player 1. I'll edit the blog post to make that clear for now, and see if we can technically resolve that in the future.

It might be easier if you define that the player in Team 1 is the observer or all players that are not in team 1 and 2 are observers or something like that. But I don't know how much you would need to fix, if you wrote your code playerID dependent. (That's the wrong approach in sc2.)
Else, you could use player attributes to make yourself either a spectator or a player.
AhliSC2@Twitter - GameHeart Observer UI - "HomeStoryCup XX" extension mod fixes WCS GameHeart's small bugs, adds a lot of new features -
GameHeart
Profile Blog Joined February 2012
286 Posts
Last Edited: 2013-10-22 15:50:29
October 22 2013 15:01 GMT
#17
The problem with player attributes is they would have to be setup individually for each map, you cannot use player attributes in a mod file. Obviously in GameHeart we solve this by using an in-game lobby. But before that I solved it by using a 3-team solution, and the players on team 3 were always observers.

In this way you assign spectators based on their team and not on their players ids. Because there is only one player on team 1 and one player on team 2 they will always be the first player when using the 'player 1 from team 1' player id function. The player id system in sc2 is a joke. It is honestly the second worst system I could think of for assigning player ids. The only thing that could be worse is if they just assigned them totally randomly. The system as it stands right now has no value at all to the map maker. If you try to use it you are going to have problems with your map because it is impossible to predict the player IDs of your players. If you cannot use an in-game lobby the best solution is to just avoid player IDs entirely and use their team identifiers to figure out which player/spectator is which.

For a little clarification this is how the Player ID system works if anyone is confused by it:

Player IDs are assigned based on the order that players join the lobby. So the first person to join is player 1, the second to join is player 2 and so on. But when they leave the lobby it 'frees' their player id so the next person who joins will claim it. There is essentially no way to track player IDs among the players. You may not even have a player 1 in your game. You may have players 5 and 8 on team 1, and players 4 and 11 on team 2. Who knows? Making things even worse, computer player IDs are assigned counting backwards from your highest available player slot. So if you have 14 slots open the first computer player will be player 14. The second computer player will be 13, etc. This would almost make sense if there were any way to make use of the human player IDs, but since there isn't it just makes it even more confusing.

There are a lot of things that frustrate me about the editor but this is the one thing that absolutely astounds me. I cannot understand why it is the way it is. I am sure there is a reason, but usually when I see something that I think is strange I can chalk it up to some obscure reasoning that I understand but disagree with. However in this case I am not sure what possible advantage there is to doing it this way. This system is probably the reason the vast majority of map makers use in-game lobbies despite the game and player attributes you can add to the main Starcraft lobby now. Though game and player attributes are also fairly buggy (I know of at least one problem with them now and I have had many problems with them in the past) to be honest so that might have something to do with it as well.

Usually I try to temper my frustration a bit when discussing this stuff but man does that system bother me. And it presents a huge barrier for new map makers who have to figure out how stupid it is before they realize why their maps aren't working. It should be plastered as a sticky on the battle.net custom map making forums and on sc2mapster that you should never try to retrieve player ids from the lobby.
Gameheart
philiptan
Profile Joined June 2012
19 Posts
Last Edited: 2013-10-23 01:36:58
October 23 2013 01:36 GMT
#18
Ahli: Else, you could use player attributes to make yourself either a spectator or a player.

GameHeart: I solved it by using a 3-team solution, and the players on team 3 were always observers


We definitely need to better understand the player attribute system, and we could probably implement a group-style fix. The question is whether we should spend more time fixing our one test map or port our more popular features over to something like GH's mod system. I suspect our efforts might be more productive on the latter, but we'll figure that out.

I'm guessing this is a low-priority issue for Blizzard...
Please log in or register to reply.
Live Events Refresh
PiGosaur Cup
00:00
#82
PiGStarcraft446
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
PiGStarcraft446
RuFF_SC2 151
Nina 108
StarCraft: Brood War
GuemChi 5773
Noble 27
Bale 13
Icarus 7
Terrorterran 2
Counter-Strike
FalleN 1498
m0e_tv517
Super Smash Bros
hungrybox1138
Other Games
summit1g11565
C9.Mang0457
WinterStarcraft373
Sick238
ViBE173
Maynarde118
Trikslyr22
CosmosSc2 13
Organizations
Counter-Strike
PGL9666
Other Games
gamesdonequick647
BasetradeTV46
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 15 non-featured ]
StarCraft 2
• Hupsaiya 55
• intothetv
• AfreecaTV YouTube
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• Azhi_Dahaki83
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Rush1161
• Lourlo1056
Other Games
• Scarra1098
Upcoming Events
GSL
4h 44m
Cure vs sOs
SHIN vs ByuN
Replay Cast
19h 14m
GSL
1d 4h
Classic vs Solar
GuMiho vs Zoun
WardiTV Spring Champion…
1d 6h
Replay Cast
1d 19h
Sparkling Tuna Cup
2 days
WardiTV Spring Champion…
2 days
Replay Cast
2 days
RSL Revival
3 days
Classic vs SHIN
Rogue vs Bunny
BSL
3 days
[ Show More ]
Replay Cast
3 days
Afreeca Starleague
4 days
Flash vs Soma
RSL Revival
4 days
BSL
4 days
Patches Events
4 days
Replay Cast
5 days
Universe Titan Cup
5 days
Rogue vs Percival
Wardi Open
5 days
Monday Night Weeklies
5 days
Replay Cast
5 days
Kung Fu Cup
6 days
Liquipedia Results

Completed

Proleague 2026-05-19
2026 GSL S1
Nations Cup 2026

Ongoing

BSL Season 22
ASL Season 21
IPSL Spring 2026
KCM Race Survival 2026 Season 2
Acropolis #4
KK 2v2 League Season 1
BSL 22 Non-Korean Championship
YSL S3
SCTL 2026 Spring
2026 GSL S2
RSL Revival: Season 5
Heroes Pulsing #1
CS Asia Championships 2026
Asian Champions League 2026
IEM Atlanta 2026
PGL Astana 2026
BLAST Rivals Spring 2026
IEM Rio 2026
PGL Bucharest 2026
Stake Ranked Episode 1
BLAST Open Spring 2026
ESL Pro League S23 Finals
ESL Pro League S23 Stage 1&2

Upcoming

Escore Tournament S2: W8
CSCL: Masked Kings S4
CSLAN 4
Kung Fu Cup 2026 Grand Finals
HSC XXIX
uThermal 2v2 2026 Main Event
Maestros of the Game 2
WardiTV Spring 2026
Bounty Cup 2026
BLAST Bounty Summer 2026
BLAST Bounty Summer Qual
Stake Ranked Episode 3
XSE Pro League 2026
IEM Cologne Major 2026
Stake Ranked Episode 2
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2026 TLnet. All Rights Reserved.