Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   General Forum (http://www.chiefdelphi.com/forums/forumdisplay.php?f=16)
-   -   Midfield Collisions (http://www.chiefdelphi.com/forums/showthread.php?t=33493)

Swampdude 27-01-2005 13:14

Midfield Collisions
 
I want to put a warning out to everyone in design build mode, to seriously consider the autonomous midfield collisions that will be taking place. I know many of you will say "well it's not graciously professional to intentionally collide in the game". Well let me say that most of the seasoned teams out there are thinking the only way to pull off autonomous vision caps, or stop them - is to do it as FAST as possible. This means there will be robots going blazing speeds through the coarse with no one at the wheel to avoid a collision. Then to compound the problem, there are only 2 access points to traverse to the opposite side of the field. This means almost by default, this game will begin to boil down to the teams that have the design and guts to come flying through that opening at full speed with the intent to stop a vision tetra cap. So another thing to consider is your tetra gripper mechanism/arm may get attacked in autonomous by a bot traveling 12'/s or more, with no regard to your bots shape or frailties. Basically a computer doesn't care. If the design thats coming after you is rigid you could be looking at some pretty serious damage before autonomous ends.

I know some of you are already brewing at the thought of this happening to your babies. But it's going to be part of the game. So please build them tough and with low CG's. The ref's can't protect you during autonomous. Everyone knows to go easy during manual, but it's the "autonomous valley of death midfield collisions" and the vision tetra seeker stoppers during autonomous that will inflict the most damage.

If you plan to cap during autonomous and your drive or mechanism are slower than around 7 seconds to complete the cap. It's very easy to make the kit chassis stop you. And you WILL get hit with no regard to front/back or sides. So if you're holding a tetra up 8-9' in the air you better do some good scouting before you try.

Also I'm very concerned for the electronics from the kit. I don't know how many Autonomous pounding's they're going to be able to take. If you decide to shoot the gap, and so does the opposing team. And you both meet midfield going 12'/s thats a 24'/s collision. Parts will go flying, batteries will come out. PWM's will pop loose. Arms will swing wildly and twist. Be careful about your choice of autonomous.

You can't blame anyone for using this method either. It's logical to stop the best cappers as fast as possible. With the equipment given in the kit, it's quite easy to do. Although the teams that choose to do this may have a short life span. I predict many of you will decide your arm isn't working out and it's more of a CG risk to keep it, then switch your strategy to a defensive chassis. Before you know it, the only teams left capping will be the ones who heeded this advice, or were thinking of it all along.

I'm going to add a poll to prove my point.

Andy A. 27-01-2005 14:19

Re: Midfield Collisions
 
I fully expect auto mode to be aggressive. Auto mode comes with it a different set of ROE. I've considered a lot of auto moves aimed specifically at stopping teams from capping a vision tet, including running the bot at speed through all the possible tet locations, running circles around the center goal at high speed and generally turning my bot loose on the field.

Is it GP? I don't know exactly. I'm also not sure just how the rules apply to auto mode. As Dan said, the computers don't care, and the ref's may not start throwing flags for robots acting aggressively during auto mode. I'm not out to damage anyone, but at the same time, I am out to win. Keeping the other teams from getting a vision tet could be a deciding factor. The rules say no high speed ramming. But is this a case of 'punching the air, and if you happen to be in that air it's not my fault'? I'm really not sure. Should the whole 2:15 of the match be reffed the same from a ramming/aggressive play standpoint?

-Andy A.

Stu Bloom 27-01-2005 15:13

Re: Midfield Collisions
 
I've said it before ... and I'll say it again. I will be very surprised if more than about 1%of all robots (maybe 10 of around 1000 teams) will have the capability to consistently acquire AND score the vision tetra during autonomous. Please prove me wrong ... but I am skeptical. IMO there are several productive strategies that could be chosen for autonomous and that is what I expect our team to focus on. Also, as a referee, I will do my best to enforce the rules as written and as instructed by FIRST :mad: . You may be asked to disable an "overly aggressive" autonomous program to avoid penalties and/or DQ ... yes ... even in autonomous mode. ;)

Mike Ciance 27-01-2005 15:27

Re: Midfield Collisions
 
i garuntee there will be several teams who can cap the center goal with a vision tetra despite virtually any opposition. however, i will also say that many many more teams will attempt to make robots like this and fail. auton may be the most important 15 seconds of the game, but the robots who are designed specifically for auton will generally fail. we cant forget that no matter how good an auton mode is, the opponant can always catch up in driver mode.

Al Skierkiewicz 27-01-2005 15:28

Re: Midfield Collisions
 
Quote:

Originally Posted by Stu Bloom
I've said it before ... and I'll say it again. I will be very surprised if more than about 1%of all robots (maybe 10 of around 1000 teams) will have the capability to consistently acquire AND score the vision tetra during autonomous. Please prove me wrong ... but I am skeptical. IMO there are several productive strategies that could be chosen for autonomous and that is what I expect our team to focus on. Also, as a referee, I will do my best to enforce the rules as written and as instructed by FIRST :mad: . You may be asked to disable an "overly aggressive" autonomous program to avoid penalties and/or DQ ... yes ... even in autonomous mode. ;)

Stu,
A few weeks ago I would have agreed with you but I think the camera and software are going to make a lot of teams "auto ready" this year. For that reason I believe the number is higher. Still less than 10% of the teams will be effective in collision avoidance and accuracy. (IMHO)

phrontist 27-01-2005 21:42

Re: Midfield Collisions
 
"If you can't do something cool, like cap tets in auto, you can at the very least ruin the hard work of others by ramming them into submission." - The Prevailing Attitude

I happen to think there is nothing wrong with that attitude, and I intend to play both sides of the game well. The real challenge comes when you starting blocking the blockers...

Mark Pettit 27-01-2005 22:00

Re: Midfield Collisions
 
Scout so that you're not in doubt!
Know the autonomous programs of all of your opponents and alliance partners for every match so that you can take evasive action and avoid collisions. Program so that you have a couple of switches to change up the autonomous in advance of setting the robot on the field. For instance, if you and a partner both have a center-capping program during auto mode, defer to the more consistent capper by flipping a switch that allows you to cap a side goal or drop a hanging tetra.

dlavery 27-01-2005 22:12

Re: Midfield Collisions
 
Quote:

Originally Posted by phrontist
The real challenge comes when you starting blocking the blockers...

Wow! You mean that simple little boxes on wheels, that can't do anything else in the autonomous period except drive around (which they can do just by building the kitbot), might actually be able to play a very important role by protecting their vision-tetra-capping-capable alliance partners from opposing onslaughts?!!? Just drive really fast from the starting position to one of the two "channels" between the middle goals, and patrol there, block the opponents efforts to disrupt the alliance, and enable your alliance to score points during autonomous! And maybe if the simple little box on wheel teams wasn't "quite there" with their autonomous software, a vision-tetra-capping-capable alliance partner that wanted them to fulfill that role might even be able to just give them the simple autonomous routine that they needed while they were at the competition! That seems like a pretty cool idea! Who'da thunk o' dat?! :rolleyes:

Max Lobovsky 27-01-2005 22:30

Re: Midfield Collisions
 
Quote:

Originally Posted by dlavery
Wow! You mean that simple little boxes on wheels, that can't do anything else in the autonomous period except drive around (which they can do just by building the kitbot), might actually be able to play a very important role by protecting their vision-tetra-capping-capable alliance partners from opposing onslaughts?!!? Just drive really fast from the starting position to one of the two "channels" between the middle goals, and patrol there, block the opponents efforts to disrupt the alliance, and enable your alliance to score points during autonomous! And maybe if the simple little box on wheel teams wasn't "quite there" with their autonomous software, a vision-tetra-capping-capable alliance partner that wanted them to fulfill that role might even be able to just give them the simple autonomous routine that they needed while they were at the competition! That seems like a pretty cool idea! Who'da thunk o' dat?! :rolleyes:

I think that is really wishful thinking. Last year, my team was almost always the most friendly and willing to interact out of all the teams we played with. There were numerous oppurtunities where we could have benefitted (and vice versa) from people from other teams helping with software, yet very little happened. One programmer from another team did help out a bit, but the code he gave us was mostly useless because we decided it was too risky to try it without testing it.

Sure teams can lend each other spare parts and give each other advice, but I think its pretty unlikely that you will see many teams reporgramming other teams bots in the 1/2 hour or so that they have to prepare for matches.

phrontist 27-01-2005 22:32

Re: Midfield Collisions
 
Quote:

Originally Posted by dlavery
Wow! You mean that simple little boxes on wheels, that can't do anything else in the autonomous period except drive around (which they can do just by building the kitbot), might actually be able to play a very important role by protecting their vision-tetra-capping-capable alliance partners from opposing onslaughts?!!? Just drive really fast from the starting position to one of the two "channels" between the middle goals, and patrol there, block the opponents efforts to disrupt the alliance, and enable your alliance to score points during autonomous! And maybe if the simple little box on wheel teams wasn't "quite there" with their autonomous software, a vision-tetra-capping-capable alliance partner that wanted them to fulfill that role might even be able to just give them the simple autonomous routine that they needed while they were at the competition! That seems like a pretty cool idea! Who'da thunk o' dat?! :rolleyes:

Sorry if I'm coming a bit late to the party. I was out in the alley with a group of weirdos muttering about Amethyst colored glasses, hexagons, and Beatles albums while you were thinking up all this stuff, so I might be a bit behind the curve.

phrontist 27-01-2005 22:34

Re: Midfield Collisions
 
Quote:

Originally Posted by Max Lobovsky
I think that is really wishful thinking. Last year, my team was almost always the most friendly and willing to interact out of all the teams we played with. There were numerous oppurtunities where we could have benefitted (and vice versa) from people from other teams helping with software, yet very little happened. One programmer from another team did help out a bit, but the code he gave us was mostly useless because we decided it was too risky to try it without testing it.

Sure teams can lend each other spare parts and give each other advice, but I think its pretty unlikely that you will see many teams reporgramming other teams bots in the 1/2 hour or so that they have to prepare for matches.

I think it's possible, but very hard indeed. The problem comes with having time to test it.

dlavery 27-01-2005 23:01

Re: Midfield Collisions
 
Yea, I guess so. I must have been daydreaming. I realize that giving them

{CMD_DRIVE, 8500, 0, 0},
{CMD_TURN, (-1500), 50, 0},
{CMD_WAIT, 1000, 0, 0},
{CMD_DRIVE, 0500, 0, 0},
{CMD_WAIT, 1000, 0, 0},
{CMD_DRIVE, -1000, 0, 0},
{CMD_WAIT, 1000, 0, 0},
{CMD_DRIVE, 1000, 0, 0},
{CMD_WAIT, 1000, 0, 0},
{CMD_JUMP, 4, 0, 0},
{NULL, 0, 0, 0}

in a little text file would be too hard. :ahh:

-dave

Max Lobovsky 27-01-2005 23:25

Re: Midfield Collisions
 
Mr. Lavery, if you have the guts to take that from some stranger's hands (regardless of the strangers intentions or background), drop it into the robot you have worked for 6 long, hard weeks on right before one of the maybe 25 actual matches your robot will play, you are a braver man than me.

dlavery 27-01-2005 23:32

Re: Midfield Collisions
 
That is what practice fields are for.

russell 28-01-2005 00:00

Re: Midfield Collisions
 
I have two plans for teams not having much luck with their cameras, both involving use of gyros and encoders. Your first option is to have your autonomous dedicated to blocking opposing blocking bots (Obviously I "borrowed" this idea). This is a good plan because the very good teams will likely have camera autonomous and will find you to be a valuable partner. The other plan is to have an arm with an aluminum tetra shape on the end, and two three way switches, one to select your starting location, and the other to select a goal which your robot will then drive to and put its aluminum tetra on top of for the duration of autonomous (It would be a part of the arm, not something it sets there then leaves obviously). Not only is this a more GP way of blocking than simply careening about with the intent of destroying, but it should also be moree effective. If you were really good you could even have a giant folding arm that covers all three goals :ahh: .

OZ_341 28-01-2005 00:03

Re: Midfield Collisions
 
Quote:

Originally Posted by Max Lobovsky
Mr. Lavery, if you have the guts to take that from some stranger's hands (regardless of the strangers intentions or background), drop it into the robot you have worked for 6 long, hard weeks on right before one of the maybe 25 actual matches your robot will play, you are a braver man than me.

One of our many strategies in 2003 was to approach our partners, well in advance, to help them with their Auton code and any mechanical issues.

Maybe we just got lucky, but we found many teams that appreciated the programming help. They ended up with permanent code they could use and we had a better partner.

We feel that was a major factor in our success at the 2003 Championship. Also our team went home knowing that we had helped many teams over the course of the year. Overall a great feeling.

Ianworld 28-01-2005 00:08

Re: Midfield Collisions
 
Robots that can tap the vision tetra in autonomous mode are going to be very very rare. 1% might be too low a number but most regionals will only have one or maybe even no robots that can do it. That being said, its a huge advantage and is well worth that alliances time to protect the robot that can. Only two robots can run through the sides during autonomous and try to stop the vision tetra bot. My guess is that the vision tetra's two partners will also rush through the two gaps stopping any opposing robot from doing the same. You just have to hope you line all your robots up correctly so that it all works out. Its going to be tricky.

Anchi 28-01-2005 01:02

Re: Midfield Collisions
 
We are buildign to take the hits, and dishout more than our fair share in auto. we had thought abotu mounting the controler on a foam pad or somethign along those lines to prevent bad jaring.

russell 28-01-2005 01:05

Re: Midfield Collisions
 
Yeah. I know it has been noted that they actually give you a higher weight limit this year to accomplish way less. I think this is partly because they realised there were too many tasks last year, but also as they repeatedly emphasized at kickoff the game this year is going to result in a lot of colisions. Beef up your bot. (wow thats a catchy phrase)

Paul Copioli 28-01-2005 06:53

Re: Midfield Collisions
 
A fact:

You do not have to shoot the gaps to block the center goal (or any goal, for that matter) in autonomous.

A question:

What is faster: Finding a vision tetra, picking it up, finding the goal, moving to the goal, capping; or driving straight about 17' and placing an arm above the goal?

-Paul

Mark McLeod 28-01-2005 09:33

Re: Midfield Collisions
 
Quote:

Originally Posted by Max Lobovsky
I think its pretty unlikely that you will see many teams reporgramming other teams bots in the 1/2 hour or so that they have to prepare for matches.

My programmers and I have been doing it for years:)
At the events we spend much more time programming other robots than our own.
If we get all the teams at least rolling during autonomous then we've succeeded. Keep your expectations low and at the very least move them into a better position for the drivers to take over.

dlavery 28-01-2005 09:50

Re: Midfield Collisions
 
Quote:

Originally Posted by Paul Copioli
A fact:

You do not have to shoot the gaps to block the center goal (or any goal, for that matter) in autonomous.

A question:

What is faster: Finding a vision tetra, picking it up, finding the goal, moving to the goal, capping; or driving straight about 17' and placing an arm above the goal?

-Paul

Great point! And think about the alliance with one really good vision-tetra-capping-capable robot and two boxes on wheels, going up against the alliance with one really good uber-long-goal-blocking-arm robot and two boxes on wheels. I can just imagine the intra-team debates that will be happening:

RedTeam1: We can cap the vision tetra on the center goal, so let's set our robot to go there while you two block them and keep them out of our way.

RedTeam2: Yeah, but Blue knows that you can do that, so they are going to set their BigBlueArm to block the center goal. You need to go to the left side goal.

RedTeam3: But Blue knows that we know they have the BigBlueArm. And they are probably figuring that we are figuring that they will go to the center goal, and are going left instead. I bet they are already setting the BigBlueArm to go left. So we need to go to the right side middle goal.

RedTeam1: But we know that they know that we know they have the BigBlueArm. And we know that they know that we know they can block the middle goal, and will probably go to the side goals. But they don't know that we know that they know that we know that they can block the middle goal, and will probably go to the side goals. But since we do, we should go to the middle goal.

RedTeam3: But they do know that! We partnered with BigBlueArm three matches ago against you, and noticed then that when you know that they know that you know that they know you are going to the center goal, you always go the left goal instead, and we told them that. So this match they are going to expect you to go to the middle goal. But they know that you know they expect you to go to the middle goal, and will go to the left goal instead.

RedTeam2: But hopefully they don't know that you know that they know that you know they expect you to go to the middle goal, and will go to the left goal instead. So you should go to the right goal.

RedTeam2: But don't you think that they are smart enough to know that you guys were one their alliance before, and know what they know? They must know that we know that they know that you know that they know that you know they expect you to go to the middle goal, and will be planning go to the left goal instead. So they know that we will probably go to the right goal. So we need to go to the center goal.

RedTeam1: Ah, but I think that you are about to fall victim to one of the classic blunders. The most famous is "Never get involved in a land war in Asia." But only slightly less well known is this: "Never go in against a Sicilian when death is on the line." And my late Sicilian Uncle Vizzini always taught me that if you know the other guy is smart enough to know that your partner was once their partner, they must know that you know some of what they know. And since we know they must know that we know that they know that you know that they know that you know they expect you to go to the middle goal, and will be planning go to the left goal, but are planning to go to the center goal since they know that we would normally go to the right goal, we have to do something completely different. So we have to figure out what we know that they don't know...

Meanwhile, on the Blue side of the field:

BlueTeam1: Do you think that we should say something to them?

BlueTeam2: I dunno. Probably.

BlueTeam3: Yeah, we should. I mean, the match was over two minutes ago. We scored 67 points while they sat there plotting and planning. Of course, we would have scored a lot more if BigBlueArm hadn't fallen over during autonomous because it was running all over trying to block all three goals against red robots that weren't even there...

BlueTeam2: So I wonder what they are still talking about?

Paul Copioli 28-01-2005 10:12

Re: Midfield Collisions
 
Believe it or not, Dave latched onto exactly what I was getting at.

You gotta love the "Princess Bride" reference. By the way, didn't the Sicilian get poisened anyway?

-Paul

dhitchco 28-01-2005 10:41

Re: Midfield Collisions
 
I got a big kick out of Dave's latest response to this thread. The mention of Sicilian tactics is really great. So, as long as we're at it, how about some of the sayings of the great Chinese warrior Sun Tsu. A lot of what goes on in this FIRST Robotics competition is NOT what the robots do on the field.

So...HERE IS the complete text with these great "sound bites":
  • All warfare is based on deception.
    Hence, when able to attack, we must seem unable; when using our forces, we must seem inactive; when we are near, we must make the enemy believe we are far away; when far away, we must make him believe we are near.
    Hold out baits to entice the enemy. Feign disorder, and crush him.
    If he is secure at all points, be prepared for him, If he is in superior strength, evade him.
    If your opponent is of choleric temper, seek to irritate him. Pretend to be weak, that he may grow arrogant.
    If he is taking his ease, give him no rest. If his forces are united, separate them.
    Attack him where he is unprepared, appear where you are not expected.
    These military devices, leading to victory, must not be divulged beforehand

Alan Anderson 28-01-2005 11:19

Re: Midfield Collisions
 
Quote:

These military devices, leading to victory, must not be divulged beforehand
Oops.

MattB703 28-01-2005 12:14

Re: Midfield Collisions
 
I agree with dhitchco.

I've been think for a while that the key to strategy in this game is to sandbag. Set the field up and then turn a couple rows right at the end.

This game is closer to Othello than Tic-tac-toe.

Greg Ross 28-01-2005 14:37

Re: Midfield Collisions
 
Quote:

Originally Posted by MattB703
This game is closer to Othello than Tic-tac-toe.

I had that thought too. I've never been very good at Othello. :(

phrontist 28-01-2005 16:03

Re: Midfield Collisions
 
This game is so bloody fantastic because it's like that british tick-tac-toe variant where you can invert X's to O's. Martin Gardner mentions it in his "Hexaflexagon" book...

Mr. Van 28-01-2005 18:13

Re: Midfield Collisions
 
Quote:

Originally Posted by dlavery
Great point! ... I can just imagine the intra-team debates that will be happening:

RedTeam1: We can cap the vision tetra ...

So we have to figure out what we know that they don't know...

Meanwhile, on the Blue side of the field:

BlueTeam1: Do you think ...

So I wonder what they are still talking about?

Dave- You have too much time on your hands. (Yes, I got a kick out of it - thanks!)

Regarding blocking blockers: Of course, you gotta figure that the other team just might quite possibly do the same thing as you and send out some blocking 'bots, which would have to get there quickly... say in a few seconds... using the supplied drive train in the kit... (2 * 10 ft/s = SMASH!) and we are back where we started.

Have I got this wrong? Perhaps all of the "tic-tac-toe/othello" analogies a bit off. Perhaps the game we should be looking at (with heavy blockers and more fragile scorers) is... football?

-Mr. Van

Ctrl Alt Delete 28-01-2005 18:23

Re: Midfield Collisions
 
yes. well it is quiet easier to stop someone from capping more than it is to actually cap. If you take into consideration that for autonomous the robots will first have to find the tetras then go over to them and cap them. All the robots that are going to stop to the capping robots are going to do is just get into the field of view of the robot and the robot won't be able to find the vision tetra.

Paul Copioli 29-01-2005 08:50

Re: Midfield Collisions
 
Mr. Van, you let the darn cat out of the bag! I have been preaching to my team that this game is more like footbal than anything else. 3 robots working as a team will be unstopable!!

Look at all the words people are writing: shoot the gaps, hit the holes, blocker bots ... This game will strategically be played like football (American footbal, that is ...)

-Paul

Joe Ross 29-01-2005 10:11

Re: Midfield Collisions
 
Not to disrupt this coversation of what other games this is like...

FIRST said that <G25> will apply in all modes.
Quote:

Q: If a team moves to the opposite end of the field in autonomous mode and starts "zooming" back and forth across the field, obviously to disrupt opposing robot's autonomous mode, can they be DQ'd for high speed ramming per <G25>?
A: <G25> applies in all modes. If your robot is traveling at high speed during autonomous mode and rams another robot, it is very possible that you would be disqualified, although the decision will depend on the particular situation and is at the discretion of the head referee.

roboguy #1 29-01-2005 11:54

Re: Midfield Collisions
 
I wish some one would build a beef bot that could and would cap another opposing robot :D that would be a kicker 300lb. robot flying around 10ft. in the air wheels spinning arm flailing! All of a sudden its capped!

a1steaksauce 31-01-2005 23:13

funny that people are starting to compare this year's competition to regular games... Personally, my team and I thought the game held a striking resemblence to the Onslaught mode of Unreal Tournament 2k4. Controlling goals/"power nodes", multiple vehicles causing havoc, and the linear bonus point system reminds me of onslaught. Is it just me? Or maybe I'm just suffering from Unreal on the brain. :D

russell 31-01-2005 23:24

Re: Midfield Collisions
 
This is for anyone going to the Pacific Northwest Regional in Portland. Dont screw with our bot in autonomous. I writing the program, and if I happen to be driving at the time I would love to "accidentally" tip someones bot out of the arena.

Oops that wouldnt be gracious professionalism. But really, I do think that rather than just trying to keep other peoples hard work from working maybe you should work hard too and try to make yours work better!

I got a question though. The rules say you cannot put something under another bot and lift, but is having a wedge shaped thing and sticking it under their bot without lifting in violation of that rule? Nothing actually goes up except their bot but it seems like it should be against the rules if lifting is.

And yeah I was just kidding at the beginning there. I personally think that you should try to be better at being positive, rather than not as good at being negative. Flipping someones bot out of the arena definetly qualifies as being negative, and I would hope you would get DQed for it, unless it was obviously an accident.

scitobor 617 31-01-2005 23:32

Re: Midfield Collisions
 
Quote:

Originally Posted by a1steaksauce
funny that people are starting to compare this year's competition to regular games... Personally, my team and I thought the game held a striking resemblence to the Onslaught mode of Unreal Tournament 2k4. Controlling goals/"power nodes", multiple vehicles causing havoc, and the linear bonus point system reminds me of onslaught. Is it just me? Or maybe I'm just suffering from Unreal on the brain. :D

I agree it does resemble Onslaught now that I think about it. Onslaught is my favorite mode to play but I really kinda suck at it, I hope this is not an indication of how my team will play this years game.

Kyle 31-01-2005 23:51

Re: Midfield Collisions
 
Quote:

Originally Posted by russell

I got a question though. The rules say you cannot put something under another bot and lift, but is having a wedge shaped thing and sticking it under their bot without lifting in violation of that rule? Nothing actually goes up except their bot but it seems like it should be against the rules if lifting is. \

You can have a wedge on your bot as long as it does not have the sole purpose of fliping another robot. and if the refs see that is all the wedge, or any other part, do then the team will be DQ'd till they get rid of the part in question.


All times are GMT -5. The time now is 17:17.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi