• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 17:55
CEST 23:55
KST 06:55
  • 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
TL.net Map Contest #22 - Voting & Ladder Map Selection3Code S Season 2 (2026) - RO8 Preview5[ASL21] Finals Preview: Two Legacies21Code S Season 2 (2026) - RO12 Preview2herO wins GSL Code S Season 1 (2026)7
Community News
[BSL22] Non-Korean Championship from 13 to 28 June0Weekly Cups (May 25-31): Clem doubles, 2v2 circuit heads toward finale0StarCraft II 5.0.16 PTR Patch Notes may 26th151Weekly Cups (May 18-24): MaxPax wins doubles0Crank Gathers Season 4: BW vs SC2 Team League6
StarCraft 2
General
My starcraft 2 changes StarCraft II 5.0.16 PTR Patch Notes may 26th The Death of Cheese: From a Professional Cheeser TL.net Map Contest #22 - Voting & Ladder Map Selection Oliveira Would Have Returned If EWC Continued
Tourneys
Maestros of The Game 2 announcement and schedule ! Crank Gathers Season 4: BW vs SC2 Team League GSL Code S Season 2 (2026) Sparkling Tuna Cup - Weekly Open Tournament RSL Revival: Season 5 - Qualifiers and Main Event
Strategy
[G] Having the right mentality to improve
Custom Maps
[D]RTS in all its shapes and glory <3
External Content
The PondCast: SC2 News & Results Mutation # 528 Infection Detected Welcome to the External Content forum Mutation # 527 Hell Train
Brood War
General
FlaSh's ASL S21 Finals Review BGH Auto Balance -> http://bghmmr.eu/ 14k games analyzed: Cross Spawn Nexus first good? Tesagi Viewer - A new era of replay watching VPN experiences
Tourneys
[ASL21] Grand Finals [BSL22] Grand Finals - Sunday 21:00 CEST [Megathread] Daily Proleagues Escore Tournament StarCraft Season 2
Strategy
Why doesn't anyone use restoration? Any training maps people recommend? Muta micro map competition [G] Hydra ZvZ: An Introduction
Other Games
General Games
Stormgate/Frost Giant Megathread Warcraft III: The Frozen Throne Path of Exile Nintendo Switch Thread ZeroSpace Megathread
Dota 2
Looking for a Dota Mentor Official 'what is Dota anymore' discussion
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 Trading/Investing Thread Russo-Ukrainian War Thread How cold is too cold to be outdoors? Dating: How's your luck?
Fan Clubs
The herO Fan Club!
Media & Entertainment
Movie Discussion! [Manga] One Piece Anime Discussion Thread
Sports
2024 - 2026 Football Thread McBoner: A hockey love story TeamLiquid Health and Fitness Initiative For 2023 Formula 1 Discussion
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread Facing Challenges in Mobile App Development
TL Community
The Automated Ban List
Blogs
Esportsmanship: How to NOT B…
TrAiDoS
Why RTS gamers make better f…
gosubay
ramps on octagon
StaticNine
ASL S21 English Commentary…
namkraft
StarCraft improvement
iopq
Customize Sidebar...

Website Feedback

Closed Threads



Active: 7769 users

The Big Programming Thread - Page 705

Forum Index > General Forum
Post a Reply
Prev 1 703 704 705 706 707 1032 Next
Thread Rules
1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution.
2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20)
3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible.
4. Use [code] tags to format code blocks.
Manit0u
Profile Blog Joined August 2004
Poland17756 Posts
Last Edited: 2016-02-13 07:47:26
February 12 2016 23:35 GMT
#14081
Client request: This page loads really slow, could you take a look at it?

Single entity view. 3850 database queries, 2500 forms inside a single modal that's used in 0.01% cases, 700MB memory use, 23sec response time...

Further inspection shows building an enourmous select, each option containing an entire form (all that inside the modal), just for the ajax request when the modal is fired up to select one of those forms and discard the rest using JS html manipulation.

Working with legacy code is rarely a pleasure.

Edit:
I guess I'll post here a bit of my history and mention my first true mentor. The owner of one of the companies I used to work for. He was "The Man". Every time someone said something like "It's impossible" he would make everyone stop what they're doing and publicly lecture the person who used those words about the company policy: "We don't use the word 'impossible' here".

Anyway, every time I mentioned I had a problem (I was a mere intern at the time) he would come over and ask me "What is your problem?". Then, I'd tell him that "This and that doesn't work", "This is overly convoluted" etc. and every single time he would simply respond: "That's not your problem. What is your problem?", and he'd repeat that question over and over again until I finally got it. Then, he'd ask me to take pen and paper and show him how I intend to solve it. Many questions and many sheets of paper later I'd come to the conclusion that my problem wasn't as problematic as I thought it was.

There's a lesson in there for anyone who wants to learn coding.
Time is precious. Waste it wisely.
tofucake
Profile Blog Joined October 2009
Hyrule19217 Posts
February 13 2016 04:37 GMT
#14082
who builds a single entity like that? what the hell
Liquipediaasante sana squash banana
Manit0u
Profile Blog Joined August 2004
Poland17756 Posts
February 13 2016 07:46 GMT
#14083
The queries come from fetching objects with relations, hydrating them and populating all those forms with them.
Just commenting out this collection of forms cuts the number of queries down to 20 and all the other parameters get a lot closer to acceptable limits. There's so much work to be done
Time is precious. Waste it wisely.
spinesheath
Profile Blog Joined June 2009
Germany8679 Posts
February 13 2016 08:58 GMT
#14084
On February 13 2016 08:35 Manit0u wrote:
Edit:
I guess I'll post here a bit of my history and mention my first true mentor. The owner of one of the companies I used to work for. He was "The Man". Every time someone said something like "It's impossible" he would make everyone stop what they're doing and publicly lecture the person who used those words about the company policy: "We don't use the word 'impossible' here".

There are impossible things in software development though. Every now and then we get requests from our customers that are either mutually exclusive with existing intended behavior or even downright contradictory in themselves. Usually there are other ways to get the customer a satisfying result, but still, we don't do the impossible.
If you have a good reason to disagree with the above, please tell me. Thank you.
berated-
Profile Blog Joined February 2007
United States1134 Posts
February 13 2016 11:35 GMT
#14085
On February 13 2016 17:58 spinesheath wrote:
Show nested quote +
On February 13 2016 08:35 Manit0u wrote:
Edit:
I guess I'll post here a bit of my history and mention my first true mentor. The owner of one of the companies I used to work for. He was "The Man". Every time someone said something like "It's impossible" he would make everyone stop what they're doing and publicly lecture the person who used those words about the company policy: "We don't use the word 'impossible' here".

There are impossible things in software development though. Every now and then we get requests from our customers that are either mutually exclusive with existing intended behavior or even downright contradictory in themselves. Usually there are other ways to get the customer a satisfying result, but still, we don't do the impossible.


It's all about how you look at it. If you gave the customer satisfying results then it sounds like you did just do the impossible. There are lots of times, especially in working with customers, that you get unreasonable requests. It's all about realizing that everything in software development becomes a trade off. I'm still a firm believer and tell our customers that anything is possible...given enough time and money. You and I both know that that last part is laughable, but it's true. How bad does the customer really want what they are asking for?

All that being said, I still like a culture that believes that nothing is impossible because it lends itself well to always trying to think through the problem to find a solution. I hate it when people just throw their hands in the air and say that it's impossible or can't be done. Find the solution certainly doesn't mean that it's reasonable, but it still exists, and sometimes... it might just be crazy enough to work.
Shield
Profile Blog Joined August 2009
Bulgaria4824 Posts
February 13 2016 22:16 GMT
#14086
Does StarCraft need any application which we could develop in our free time as a group?
Railgan
Profile Joined August 2010
Switzerland1507 Posts
February 14 2016 19:57 GMT
#14087
On February 14 2016 07:16 Shield wrote:
Does StarCraft need any application which we could develop in our free time as a group?

I heard we need a new MapHack

...

There are always nice applications that could improve the QOL of players.
Grandmaster Zerg from Switzerland!!! www.twitch.tv/railgan // www.twitter.com/railgansc // www.youtube.com/c/railgansc
phiinix
Profile Blog Joined February 2011
United States1169 Posts
February 15 2016 06:42 GMT
#14088
On February 06 2016 14:34 vik7 wrote:
Hey I never really posted on this thread before, I'm just wondering If I could find a mentor or something I've been learning Java, yes I watch videos and read about java, and practice, however hopefully I can find a mentor I can skype here and there with questions =D


Funny I was just thinking the same thing. Its not so much that I can't be bothered to google the question, but that I don't know how to phrase the question in a way that returns the answer I'm looking for..
Gowerly
Profile Blog Joined July 2011
United Kingdom916 Posts
February 15 2016 09:48 GMT
#14089
On February 15 2016 04:57 Railgan wrote:
Show nested quote +
On February 14 2016 07:16 Shield wrote:
Does StarCraft need any application which we could develop in our free time as a group?

I heard we need a new MapHack

...

There are always nice applications that could improve the QOL of players.

Come help me do StarGraphed. I'm time limited.
I will reduce you to a series of numbers.
Soan
Profile Blog Joined August 2010
New Zealand194 Posts
February 15 2016 18:26 GMT
#14090
Anyone here got experience with AngularJS and Typescript? I've got everything working fine except for directives. I can't seem to figure out how to get them to work with Typescript. I've done some googling, but nothing I've tried, when it comes to declaring them etc, just getting them setup so that I can use them.
Wrath
Profile Blog Joined July 2014
3174 Posts
February 16 2016 19:56 GMT
#14091
I did not even reached the point of working on the question as yet I still have to understand it first. Can someone be kind and explain this to me?

https://www.reddit.com/r/dailyprogrammer/comments/43ouxy/20160201_challenge_252_easy_sailors_and_monkeys/

I tried to read some comments on how it works but it seems there is no "unified" opinion how this works...
spinesheath
Profile Blog Joined June 2009
Germany8679 Posts
Last Edited: 2016-02-16 20:16:50
February 16 2016 20:14 GMT
#14092
On February 17 2016 04:56 WrathSCII wrote:
I did not even reached the point of working on the question as yet I still have to understand it first. Can someone be kind and explain this to me?

https://www.reddit.com/r/dailyprogrammer/comments/43ouxy/20160201_challenge_252_easy_sailors_and_monkeys/

I tried to read some comments on how it works but it seems there is no "unified" opinion how this works...

Basically, the N sailors do this:

int coconuts = ...;
for(int i = 0; i < N; ++i)
{
// at this point coconuts % N must be 1
coconuts -= 1; // goes to the monkey
// at this point coconuts % N must be 0
coconuts -= coconuts / N; // hidden by a sailor
}
// at this point coconuts % N must be 0
// split the remaining coconuts among N sailors

The question asks you to work out the lowest possible number of initial coconuts of any N > 1.

Also this is more of a math puzzle than a programming question.
If you have a good reason to disagree with the above, please tell me. Thank you.
Wrath
Profile Blog Joined July 2014
3174 Posts
February 16 2016 20:52 GMT
#14093
On February 17 2016 05:14 spinesheath wrote:
Show nested quote +
On February 17 2016 04:56 WrathSCII wrote:
I did not even reached the point of working on the question as yet I still have to understand it first. Can someone be kind and explain this to me?

https://www.reddit.com/r/dailyprogrammer/comments/43ouxy/20160201_challenge_252_easy_sailors_and_monkeys/

I tried to read some comments on how it works but it seems there is no "unified" opinion how this works...

Basically, the N sailors do this:

int coconuts = ...;
for(int i = 0; i < N; ++i)
{
// at this point coconuts % N must be 1
coconuts -= 1; // goes to the monkey
// at this point coconuts % N must be 0
coconuts -= coconuts / N; // hidden by a sailor
}
// at this point coconuts % N must be 0
// split the remaining coconuts among N sailors

The question asks you to work out the lowest possible number of initial coconuts of any N > 1.

Also this is more of a math puzzle than a programming question.


Would you be kind to solve it mathematically as I still don't quite get the whole idea of the question... Yes I'm very slow at getting things... T_T
tofucake
Profile Blog Joined October 2009
Hyrule19217 Posts
February 16 2016 21:38 GMT
#14094
Watch the video in the reddit OP, they go over the math quite well
Liquipediaasante sana squash banana
Ropid
Profile Joined March 2009
Germany3557 Posts
Last Edited: 2016-02-16 21:46:04
February 16 2016 21:43 GMT
#14095
On February 17 2016 05:52 WrathSCII wrote:
Show nested quote +
On February 17 2016 05:14 spinesheath wrote:
On February 17 2016 04:56 WrathSCII wrote:
I did not even reached the point of working on the question as yet I still have to understand it first. Can someone be kind and explain this to me?

https://www.reddit.com/r/dailyprogrammer/comments/43ouxy/20160201_challenge_252_easy_sailors_and_monkeys/

I tried to read some comments on how it works but it seems there is no "unified" opinion how this works...

Basically, the N sailors do this:

int coconuts = ...;
for(int i = 0; i < N; ++i)
{
// at this point coconuts % N must be 1
coconuts -= 1; // goes to the monkey
// at this point coconuts % N must be 0
coconuts -= coconuts / N; // hidden by a sailor
}
// at this point coconuts % N must be 0
// split the remaining coconuts among N sailors

The question asks you to work out the lowest possible number of initial coconuts of any N > 1.

Also this is more of a math puzzle than a programming question.


Would you be kind to solve it mathematically as I still don't quite get the whole idea of the question... Yes I'm very slow at getting things... T_T

Play through the events of a random example.

Let's say you have 72 coconuts. You have 5 sailors. There's the monkey.

It turns dark, the night starts. The first sailor has his go at the pile.

The first sailor's calculates 72 / 5 = 14 * 5 + 2. He takes 14 coconuts and the monkey gets 2. What happens to the pile of coconuts is 72 - 14 - 2 = 56.

The second sailor calculates 56 / 5 = 11 * 5 + 1. He takes 11 coconuts and the monkey gets 1. The changes in the pile are 56 - 11 - 1 = 44.

Third: 44 -> (8, 4) and 32

Fourth: 32 -> (6, 2) and 24

Fifth: 24 -> (4, 4) and 16

Then the night ends and on the next day the pile is 16 coconuts. That divides into 3 coconuts per sailor and remainder 1.

As you can see, if you have 72 coconuts in the starting pile, the rules that are mentioned in the question don't work out. For each sailor, there's supposed to always be a remainder of one coconut for the monkey, but in this play-through here, this was different for each sailor. The pile at the end is supposed to have a number of coconuts that divide by the number of sailors, but here this wasn't the case.

You are now supposed to search for a number of coconuts for the pile where this all works out.
"My goal is to replace my soul with coffee and become immortal."
Blisse
Profile Blog Joined July 2010
Canada3710 Posts
Last Edited: 2016-02-17 02:26:14
February 17 2016 00:11 GMT
#14096
On February 15 2016 15:42 phiinix wrote:
Show nested quote +
On February 06 2016 14:34 vik7 wrote:
Hey I never really posted on this thread before, I'm just wondering If I could find a mentor or something I've been learning Java, yes I watch videos and read about java, and practice, however hopefully I can find a mentor I can skype here and there with questions =D


Funny I was just thinking the same thing. Its not so much that I can't be bothered to google the question, but that I don't know how to phrase the question in a way that returns the answer I'm looking for..


Well like 80% of real programming is communication, so it's definitely a skill worth working on. Try to read programming blogs if you want to get a feel for talking about technical topics, or listen to Youtube tutorials, or best of all write some (a lot).

And honestly I'm pretty sure if you just post in here random mumbo jumbo someone's bound to guess at what you're talking about. If you have questions people can answer, or if you want code review just throw stuff on a Github repo and link it.

---

side tangent, but Ive been blogging in my free time for the last 4 years and I've totally noticed that my written communication skills have gotten a lot better. Creative writing in school is pretty fun to me now that writing comes more naturally.
There is no one like you in the universe.
enigmaticcam
Profile Blog Joined October 2010
United States280 Posts
Last Edited: 2016-02-23 04:54:50
February 23 2016 04:50 GMT
#14097
Anyone here have experience with using websites in Azure? First time for me and I'm trying to figure out how to use the session in an Azure web app. From what I've read, the typical way of using session is not supported by Azure. Before, I used to do something like this:

public ViewState GetViewState(bool refresh) {
ViewState viewState = (ViewState)Session["ViewState"];
if (viewState == null || refresh) {
viewState = new ViewState();
Session["ViewState"] = viewState;
}
return viewState;
}


ViewState is an object I use to hold all other objects I want to save in session. I can't seem to find a way to do it as simply as this that Azure supports. Everything else I've found requires me to either (1) specify key-value pairs of data, thereby making complex objects to store a nightmare, (2) serialize all objects into a string, meaning now I have to make sure all my objects are serializable and the objects they use are seriablizable, etc, or (3) use some kind of table data storage, meaning now I have to manage tables, and any changes to what I want to store in session will be double the work with having to keep the tables up to date.

I tested the code above, and it seems to work just fine in Azure as it does in IIS on my personal machine. Am I at risk if I just do it the way I've always done it?
Manit0u
Profile Blog Joined August 2004
Poland17756 Posts
Last Edited: 2016-02-23 08:50:33
February 23 2016 08:36 GMT
#14098
Why do you want to store complex data or a multitude of objects in the session? Using session state should be avoided when possible.

Edit:

I guess this might help you: https://azure.microsoft.com/en-us/blog/mvc-movie-app-with-azure-redis-cache-in-15-minutes/

There's also a section at the bottom of the article pertaining the session state provider.
Time is precious. Waste it wisely.
enigmaticcam
Profile Blog Joined October 2010
United States280 Posts
February 23 2016 16:25 GMT
#14099
It's what I've always done at work since we have full IIS servers dedicated to the web sites we build, so I'm trying to do the same thing at home with my own personal project. It's a huge time saver. When the business logic and class structures are complex, it saves me from having to manage an additional layer that extracts the raw data, saves it elsewhere, and has to know how to instantiate and reload all the objects again with that raw data.
Manit0u
Profile Blog Joined August 2004
Poland17756 Posts
February 24 2016 11:03 GMT
#14100
More legacy code adventures...

Boss: "Can you check what's wrong with this module?"

*taking a peek*
+ Show Spoiler +


function func1()
{
foreach () {
foreach () {
foreach () {
if () {
if () {
}
}
}
}
}

return;
}

function func2()
{
if () {
} else {
if () {
} else {
}
}

if () {
if () {
}

if () {
}

if () {
}

if () {
}
}

if () {
} else {
}

if () {
} else {
}

if () {
}

if () {
}

if () {
if () {
if () {
} else {
}
} else {
}
} else {
if () {
if () {
} else {
}
} elseif () {
if () {
if () {
if () {
} else {
}
} else {
if () {
} else {
}
}
} else {
if () {
if () {
} else {
}
} else {
if () {
} else {
}
}
}
} else {
if () {
} else {
}
}
}

if () {
if () {
if () {
}
}
}

return;
}

function func3()
{
if () {
} else {
}

if () {
if () {
}

if () {
}

if () {
}

if () {
}
}

if () {
} else {
}

if () {
} else {
}

if () {
}

if () {
}

if () {
if (]) {
if () {
} else {
}
} else {
}
} else {
if () {
if () {
} else {
}
} elseif () {
if () {
if () {
if () {
} else {
}
} else {
if () {
} else {
}
}
} else {
if () {
if () {
} else {
}
} else {
if () {
} else {
}
}
}
} else {
if () {
if () {
}

if () {
}
} else {
if () {
}

if () {
}
}
}
}

if () {
if () {
if ()) {
foreach () {
}
}
}
}

return;
}



Me:
[image loading]
Time is precious. Waste it wisely.
Prev 1 703 704 705 706 707 1032 Next
Please log in or register to reply.
Live Events Refresh
The PiG Daily
21:30
GSL Ro8 Group B Replay Cast
Maru vs SHIN
Rogue vs Zoun
PiGStarcraft191
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
ZombieGrub321
PiGStarcraft191
ProTech82
Codebar 74
StarCraft: Brood War
Calm 4186
ajuk12(nOOB) 12
NaDa 11
League of Legends
Doublelift2468
Other Games
summit1g6303
Grubby3091
FrodaN2081
fl0m1832
shahzam536
JimRising 293
mouzStarbuck227
Liquid`Hasu224
C9.Mang0154
KnowMe138
ViBE25
PPMD13
Organizations
Other Games
BasetradeTV166
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 13 non-featured ]
StarCraft 2
• musti20045 54
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Other Games
• imaqtpie962
• tFFMrPink 9
Upcoming Events
Replay Cast
2h 6m
PSISTORM Gaming Misc
2h 6m
Replay Cast
11h 6m
Solar vs Classic
uThermal 2v2 Circuit
17h 6m
Grudge Match
18h 6m
FlaShFTW vs A.Alm
OSC
23h 6m
MaxPax vs YoungYakov
Krystianer vs Shameless
GgMaChine vs Creature
LetaleX vs MiniZergUA
ReBellioN vs TBD
ArT vs HiGhDrA
Nicoract vs Azura
GSL
1d 10h
herO vs Rogue
Maru vs Cure
Patches Events
1d 15h
uThermal 2v2 Circuit
1d 17h
BSL
1d 21h
[ Show More ]
OSC
2 days
Monday Night Weeklies
2 days
Replay Cast
3 days
Sparkling Tuna Cup
3 days
Replay Cast
4 days
Kung Fu Cup
4 days
Maestros of the Game
4 days
Replay Cast
5 days
The PondCast
5 days
Replay Cast
6 days
Liquipedia Results

Completed

KK 2v2 League Season 1
RSL Revival: Season 5
Heroes Pulsing #1

Ongoing

BSL Season 22
IPSL Spring 2026
KCM Race Survival 2026 Season 2
Acropolis #4
CSCL: Masked Kings S4
YSL S3
SCTL 2026 Spring
WardiTV Spring 2026
Maestros of the Game 2
uThermal 2v2 2026 Main Event
2026 GSL S2
Murky Cup 2026
IEM Cologne Major 2026
Stake Ranked Episode 2
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

Upcoming

BSL 22 Non-Korean Championship
CSLAN 4
Blizzard Classic Cup 2026
Kung Fu Cup 2026 Grand Finals
CranK Gathers Season 4: BW vs SC2 Team League
HSC XXIX
Heroes Pulsing #3
Heroes Pulsing #2
Esports World Cup 2026
BLAST Bounty Summer 2026
BLAST Bounty Summer Qual
Stake Ranked Episode 3
XSE Pro League 2026
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.