Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

DarkBASIC Professional Discussion / - DBPro Coding Challenges -

Author
Message
gadgetfreak 66
19
Years of Service
User Offline
Joined: 26th Sep 2006
Location: Kulin,WA, Australia
Posted: 20th Jan 2007 07:01 Edited at: 20th Jan 2007 13:41
wow. Being [mod-edit]Young[/], i've never really held much hope in winning one of these things. Anyway, i'm still thinking what the next challenge should be, and any ideas will be welcome. I'll try and set it by tonight (where i am, thats in about 5 hours).

[MOD - Sorry, please don't post your age in the forums - we can't guarantee who'll read it - IanM]

sixblades
21
Years of Service
User Offline
Joined: 30th Jul 2004
Location:
Posted: 20th Jan 2007 09:12
Ah! Late again! Oh well, I figure I might as well post the code here in case anyone can benefit from it.

Here's the basic idea:
I figured that everyone would create a 2d maze, some would even create a 2d maze with a 3d representation. I thought, why not take it a step further? What I essentially made is a "true" 3d maze generator, that is to say, the default map size is 5x5x5 (I apologize in advance for the clown-house colors).



Instructions:
-Use the arrowkeys to move, the mouse for looking (basic FPS controls)
-The start is marked by a green sphere, the end a red sphere surrounded by a spinning cube.

I would have liked to add a bunch of shiny effects to this one, but unfortunately school dominates the majority of my "free" time, and I had to leave it at my basic idea.

If anyone tries it out let me know what you think (and your score ).

P.S. Congratulations to all that were nominated!
Ric
22
Years of Service
User Offline
Joined: 11th Jul 2004
Location: object position x
Posted: 20th Jan 2007 10:53
Congratulations Gadgetfreak!

@Sixblades: Nice idea - full 3d. Only problem I had was that on my ancient pc, the movement was really slow .... it would be good to have had some method of keeping the speed uniform on all pc's, such as a timer loop, or even just limiting the sync rate to the lowest possible value which still looks ok before setting the speed of movement.

Good contest overall, I thought. There's more to maze generation than you'd think.

So, Gadgetfreak .... what's next?

Parrot
19
Years of Service
User Offline
Joined: 9th Jan 2007
Location:
Posted: 20th Jan 2007 10:54 Edited at: 20th Jan 2007 10:55
Quote: "Ah! Late again! Oh well, I figure I might as well post the code here in case anyone can benefit from it."


Wow, Sixblades... you've got some sort of weird psychedelic space station program on your hands there! All the colours!!! I suppose you needed to make it that way in order to differentiate the sections.

There didn't seem to be a whole lot of branches to your maze, pretty easy to solve. But very interesting anyway.

That's the thing about guessing, 90% of the time it's 50/50
Parrot
19
Years of Service
User Offline
Joined: 9th Jan 2007
Location:
Posted: 20th Jan 2007 10:59
Quote: "Well, it's almost midnight where I am, so I will pass judgment.

For a quick maze generator, nice display, (and a game interface to boot), I choose the winner to be:
+ Code Snippet

gadgetfreak 66



with a close runner-up position going to:
+ Code Snippet

Parrot



Thanks to all other entrants:
"


WooHoo! I'm the runner up! I didn't think I'd make it into the running, I only got DBPro last week.

Congrats Gadgetfreak, you deserve it!

That's the thing about guessing, 90% of the time it's 50/50
Ric
22
Years of Service
User Offline
Joined: 11th Jul 2004
Location: object position x
Posted: 20th Jan 2007 11:07
Quote: "I didn't think I'd make it into the running, I only got DBPro last week"


Multidimensional arrays, typed arrays, subroutines, perfect indentation .... hmmm, while you may be new to dbpro, me thinks you probably know a thing or two about the language already!! Nevertheless, welcome to the challenges - always good to see new entrants here.

Parrot
19
Years of Service
User Offline
Joined: 9th Jan 2007
Location:
Posted: 20th Jan 2007 11:20
Quote: "Multidimensional arrays, typed arrays, subroutines, perfect indentation .... hmmm, while you may be new to dbpro, me thinks you probably know a thing or two about the language already!! Nevertheless, welcome to the challenges - always good to see new entrants here. "


I'll admit that I'm not new to programming. But this is my first time ever programming in 3D, and I haven't used a derivation of Basic since I was a kid fooling around on my Commodore 64. There's a lot to learn.

That's the thing about guessing, 90% of the time it's 50/50
Ric
22
Years of Service
User Offline
Joined: 11th Jul 2004
Location: object position x
Posted: 20th Jan 2007 12:44
Quote: "I haven't used a derivation of Basic since I was a kid fooling around on my Commodore 64."



Hehe - thought as much - no more peeks and pokes now though!

sixblades
21
Years of Service
User Offline
Joined: 30th Jul 2004
Location:
Posted: 20th Jan 2007 17:50
@Ric:
Yes, I realized that I really did not do the usual "polite" things that one should take into consideration before releasing a program (heck, I used the native DBPro Camera collision!). There are several things that I had on my list of things to do (build an intro camera swoop, make the walls/ceilings/floors look decent, show the path the player took upon completion, etc.). Ironic that I practically wrote my entire program in "timer based velocities" in the Christmas Challenge, but had no use of the technique in this one (Damn you, homework!).

@Parrot:
First of all, welcome to the DarkBasic community (and congratulations to your standing in the first contest you enter). I see what you're talking about regarding the difficulty of my mazes, the reason is due to the nature of the algorithm that creates it (every square in the maze is utilized). One of the things I would have liked to do was knock down a set number of walls right before the start of the level to get more complex branching (another thing I could have done was start the player at a different corner, rather than have it follow the path the algorithm traced out exactly).

I researched maze-generation and I ended up using the simplest one described on Wikipedia (it was the only one I could understand well enough and get working).

The reason? I have NO idea what this type of thing means:
Quote: "
An efficient implementation using a disjoint-set data structure can perform each union and find operation on two sets in nearly-constant amortized time (specifically, O(α(V)) time; α(x) < 5 for any plausible value of x), so the running time of this algorithm is essentially proportional to the number of walls available to the maze.
"


(I realize looking back now that I can understand a bit more than I thought I previously could, hmm...)

As for the next challenge, can we have something a little less dry ?

(I was thinking some sort of media or random world generation)
Parrot
19
Years of Service
User Offline
Joined: 9th Jan 2007
Location:
Posted: 20th Jan 2007 18:49
Quote: "I researched maze-generation and I ended up using the simplest one described on Wikipedia (it was the only one I could understand well enough and get working)."


LOL - maybe I should have done a little research before coding my algorithm. I pretty much just winged it. I probably could have done a little better, but I'm glad nobody else encountered that error that cropped up for acelepage.

On the other hand, there is a feeling of accomplishment of having figured out an algorithm completely on your own, even if you might have done better with some help. Plus after I figured out my maze collision routines I didn't have much time to do a lot of research before the contest closed.


Gadgetfreak, I'm glad that the responsibility lies with you to determine the next challenge. I have no idea what I would choose in your place!

That's the thing about guessing, 90% of the time it's 50/50
Cave Man
19
Years of Service
User Offline
Joined: 22nd Aug 2006
Location: North Carolina, US
Posted: 20th Jan 2007 23:07
Great entry Gadgetfreak! It made a nice maze. If there was a vote for the next challenge, I'd vote for an AI challenge.

Everything i say is a lie
Parrot
19
Years of Service
User Offline
Joined: 9th Jan 2007
Location:
Posted: 20th Jan 2007 23:19
Ooo, do you mean like an enemy movement AI or a Turing Test type conversational AI?

A chatbot AI would be a cool thing to program. Of course, nobody would be able to create a perfect chat bot... but I'm sure a few of us could come up with something really good. It would be really cool to see all of the entries that people come up with for that.

I vote for a chatbot challenge!

That's the thing about guessing, 90% of the time it's 50/50
Aaron Miller
20
Years of Service
User Offline
Joined: 25th Feb 2006
Playing: osu!
Posted: 21st Jan 2007 01:01
Wonder what the next-ones going to be...

-db


gadgetfreak 66
19
Years of Service
User Offline
Joined: 26th Sep 2006
Location: Kulin,WA, Australia
Posted: 21st Jan 2007 03:58
okay. i was thinking of a kind of broad challenge, like a screensaver or something, but the chatbot thing sounds interesting. So:

Next Challenge: ChatBot

Criteria: Not much really, might need some feedback on the possibility of deciding on an interface everyone is to use.

For anyone who doesn't know what a chatbot is, a chat bot is basically a piece of software that you talk (type) to and it responds based on keywords in what you've said, with the objective of trying to emulate intelligent conversation. There are a couple of ideas and heaps of information here http://en.wikipedia.org/wiki/Chatbot

End of Challenge: 4th February (two weekends from now)

David Gervais
Retired Moderator
20
Years of Service
User Offline
Joined: 28th Sep 2005
Location: Montreal, Canada
Posted: 21st Jan 2007 10:52
Just because someone mentioned a peek and a poke,..

IF PEEK(53729)=1 then Play_Game

(53279= Hard coded Start key address on the Atari 800 computer)

My mind is full of useless info,.. and let's not forget the 'Page 6' address 1536.

Muahahaha Cheers!
Parrot
19
Years of Service
User Offline
Joined: 9th Jan 2007
Location:
Posted: 21st Jan 2007 11:45
I remember watching a documentary on some people holding a turing-test type challenge. In order to make the programs harder to differentiate from actual humans, they had the contestants make chat programs only intended to discuss a single topic.

Would such narrow range chatbots be acceptable to you, Gadgetfreak? If so that might be an idea.

That's the thing about guessing, 90% of the time it's 50/50
gadgetfreak 66
19
Years of Service
User Offline
Joined: 26th Sep 2006
Location: Kulin,WA, Australia
Posted: 21st Jan 2007 11:55
okay. i was thinking of a kind of broad challenge, like a screensaver or something, but the chatbot thing sounds interesting. So:

Next Challenge: ChatBot

Criteria: Not much really, might need some feedback on the possibility of deciding on an interface everyone is to use.

For anyone who doesn\'t know what it is, a chat bot is basically a piece of software that you talk (type) to and it responds based on keywords in what you\'ve said, with the objective of trying to emulate intelligent conversation. There are a couple of ideas and heaps of information here http://en.wikipedia.org/wiki/Chatbot

End of Challenge: 4th February (two weekends from now)

gadgetfreak 66
19
Years of Service
User Offline
Joined: 26th Sep 2006
Location: Kulin,WA, Australia
Posted: 21st Jan 2007 11:55
its certainly an idea, but what would the topic be?

gadgetfreak 66
19
Years of Service
User Offline
Joined: 26th Sep 2006
Location: Kulin,WA, Australia
Posted: 21st Jan 2007 12:01
argghhh! it posted my edit...

Ric
22
Years of Service
User Offline
Joined: 11th Jul 2004
Location: object position x
Posted: 21st Jan 2007 12:21
Nice idea for a challenge. I'd say keep the challenge as general as it is - to make a chatbox. If individuals want to concentrate on a particular subject, that's fine, and if others want to be more general, that's fine too. Let people go in whatever direction they like.

Would be a good idea to make an announcement on the main board that a new challenge has started with a few details. I'll do it if you like ... ?

gadgetfreak 66
19
Years of Service
User Offline
Joined: 26th Sep 2006
Location: Kulin,WA, Australia
Posted: 21st Jan 2007 12:38
Thanks. Sorry for the delay in replying to everyone, but i'm still classified as a "noob"(not that i have any problem with it), so my posts still have to be checked. As for the reposting, the posting form didn't change from the editing one for some reason, even though it was the posting one.

I don't really want to restrict anyones creations, so i think the topic of conversation will stay open. Even so, feel free to concentrate on one topic if you want.

Diggsey
20
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 21st Jan 2007 19:57
What sort of things will it have to understand, because I can't think of much I'd want to say to a chatbot...

Parrot
19
Years of Service
User Offline
Joined: 9th Jan 2007
Location:
Posted: 21st Jan 2007 20:09
Yeah, that's what I was suggesting. I didn't want you to choose a topic for us to stick to, I was just thinking that people might want to do that for themselves.

That's the thing about guessing, 90% of the time it's 50/50
gadgetfreak 66
19
Years of Service
User Offline
Joined: 26th Sep 2006
Location: Kulin,WA, Australia
Posted: 22nd Jan 2007 02:12
Quote: "What sort of things will it have to understand, because I can't think of much I'd want to say to a chatbot..."


Anything. Sport, weather, school, work. The idea is that it doesn't actually have to know much though. A lot of what chatbots say is derived from what the person has just said. For instance:
person: "I like (insert something here)"
chatbot: "Hey! I like (insert same thing here) too!" or
"Nah, (insert same thing here) sucks."

theres quite a lot of things you could put in there and it would still work, even when you add a verb, ie: "cricket" and "playing cricket" would both work.

Diggsey
20
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 22nd Jan 2007 21:59
Here is an early version of my chatbot:


I welcome suggestions as to types of questions it should answer

Hobgoblin Lord
20
Years of Service
User Offline
Joined: 29th Oct 2005
Location: Fall River, MA USA
Posted: 23rd Jan 2007 03:48
eh isn't trim$ from a dll add on?

sixblades
21
Years of Service
User Offline
Joined: 30th Jul 2004
Location:
Posted: 23rd Jan 2007 05:02
Yeah, I don't recognize that command, and the program wouldn't compile for me.
gadgetfreak 66
19
Years of Service
User Offline
Joined: 26th Sep 2006
Location: Kulin,WA, Australia
Posted: 23rd Jan 2007 05:07
i just got rid of it all together and it worked fine. Great work, by the way! I didn't expect anyone to get something done so soon. Its gonna be hard to get right though. Even with all the stuff you've done, you kind of need to have a look at the code to see what it can do.

[i]omnia dicta fortiora si dicta Latina[i/]
Daemon
20
Years of Service
User Offline
Joined: 16th Dec 2005
Location: Everywhere
Posted: 24th Jan 2007 00:54
You: Hi
Chatbot: Hello
You: How are you?
Chatbot: I am fine thanks, how about you?
You: I am fine
Chatbot: Hi fine

I'm still laughing.

Parrot
19
Years of Service
User Offline
Joined: 9th Jan 2007
Location:
Posted: 24th Jan 2007 01:16
Quote: "I welcome suggestions as to types of questions it should answer"


I'm getting the following error:

Subscript must be integer or DWORD when referencing an array at line 25

That's the thing about guessing, 90% of the time it's 50/50
Daemon
20
Years of Service
User Offline
Joined: 16th Dec 2005
Location: Everywhere
Posted: 24th Jan 2007 01:36
Just take out "trim$(" and then a ")" on that line and it will work.

Ric
22
Years of Service
User Offline
Joined: 11th Jul 2004
Location: object position x
Posted: 24th Jan 2007 15:02
Here's my attempt at a chatbot. You can sometimes chat with it for upto a minute before you start getting bored! You can ask it questions and tell it stuff, swear at it - it's not exactly intelligent though!.

Ideally, a chatbot should grow in intelligence the more you chat with it - maybe I'll try that next time.



Diggsey
20
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 24th Jan 2007 22:37
it told me my joke was rubbish *sniff*

Ric
22
Years of Service
User Offline
Joined: 11th Jul 2004
Location: object position x
Posted: 25th Jan 2007 00:15
Hehe - you figured out that you can tell it knock knock jokes!

gadgetfreak 66
19
Years of Service
User Offline
Joined: 26th Sep 2006
Location: Kulin,WA, Australia
Posted: 25th Jan 2007 02:43
hey, i just had a thought. If anyone wants to have a look at an existing chatbot, [email protected] is a good one, if a bit wordy. You can also ask if he knows any other chatbots to get a list of the more specialized ones.

[i]omnia dicta fortiora si dicta Latina[i/]
MadrMan
20
Years of Service
User Offline
Joined: 17th Dec 2005
Location: 0x5AB63C
Posted: 25th Jan 2007 16:59
Made this in 2 houres, i wouldn't exactly call it a 'chatbot' but atleast it can learn




i also wouldn't say its bugfree, but its a start.

commands:

.new (word) - adds a new word to its library
.add (word) (property) - adds a new property to a word
.find (property) - attempts to find a word with a certain property
.cls - clears screen
.rf - resets finding, if any bugs may occur
if it asks if you know anything else to describe, try saying "like..?" (or something like that), it will give a suggestion
if it asks you something, you can respond with a simple yes/no
and it cant save yet, instead change the preset library at the bottom of the code.


NA170425
User Deleted
Posted: 25th Jan 2007 21:20 Edited at: 27th Jan 2007 01:59
Ric, that chat box is so intelligent it's not even funny. Ok, it's funny. I started talking to it in spanish and it said "You're talking in a different language!" It reminds me a lot of ELIZA, wow I had fun changing the code to record things people say to it. Here's some that I remember that got recorded by people getting mad at it:

Quote: "
SOME DAY YOU WILL BE EATING SLUGS AND BOWING DOWN TO MY DUMBNESS!!!
"


Quote: "
I HAVE DESTROYED YOUR PROGRAMMING AS PHASE 1 OF MY WORLD DOMINATION PLAN. ELIZA, YOU HAVE NO INTELLIGENCE, YOU ARE NOTHING. ANYONE WHO OPPOSES MY RULE WILL BE PAINFULLY EXTERMINATED.
"


I can't get over it's reply in spainish...

Quote: "
I'm muy bien too.
"


Keyboard not found. Press F1 to continue.
Ric
22
Years of Service
User Offline
Joined: 11th Jul 2004
Location: object position x
Posted: 26th Jan 2007 00:10 Edited at: 26th Jan 2007 00:23
Had a go at chatting with A.L.I.C.E. online (http://www.alicebot.org )earlier today - apparently an award winning chatbot. It very rarely seems to allow the conversation to flow for more than 1 question = 1 response. For example, if you typed:

>Do you like cats?
Alice> I love cats
>What do you like about them?
Alice> completely random response, not about cats

In other words, it doesn't usually seem to have any memory of the previous question and response. In that way, it doesn't seem vastly more 'intelligent' than the ones here - it just has a huge database of responses!

@MadrMan: Which version of dbpro did you write that in? (Or was it even pro?). Couldn't run it here - exitfunction can't return an array if endfunction doesn't, exitfunction can't return expressions .... edited a few lines, but it just threw up more errors.

@CD: Hehe - I hadn't expected you to actually try talking to it in another language!!

MadrMan
20
Years of Service
User Offline
Joined: 17th Dec 2005
Location: 0x5AB63C
Posted: 26th Jan 2007 10:54 Edited at: 26th Jan 2007 11:05
i made it in 6.3 - "exitfunction can't return an array if endfunction doesn't" can it return arrays?
and exitfunction can return variables.. which lines are you having trouble with?

edit > what are 'expressions' anyway? (im not english)

i made a modified version, and i hope this works for you now (though im not sure why it didnt work before)




Ric
22
Years of Service
User Offline
Joined: 11th Jul 2004
Location: object position x
Posted: 26th Jan 2007 11:18
When I try to run that, I get 'exitfunction can only return a single value or local variables at line 183'

Basically, an expression is where it does a calculation. So you could do

exitfunction 4

but not:

exitfunction 2+2.

If you try that, it thinks you are trying to return more than one value.

so, instead of:



using:



allows your code to run.

If you look at the help file for exitfunction, it says the same thing. How you got it to run on your pc I don't know - I have 6.3 too. Bit of a mystery!

MadrMan
20
Years of Service
User Offline
Joined: 17th Dec 2005
Location: 0x5AB63C
Posted: 27th Jan 2007 19:14
WOAH - i didn't knew i could make these things

Here's a log of a chat i had with the bot:


And here comes the code! *hopes it works for you all*



As you see, at the bottom i pre-made some words, and i still havnt made the save function, so if theres words you want to use every time you run it, just change that. Have Fun!


Ric
22
Years of Service
User Offline
Joined: 11th Jul 2004
Location: object position x
Posted: 27th Jan 2007 23:34
Update to my chatbot:



acelepage
22
Years of Service
User Offline
Joined: 2nd Jun 2004
Location: Plattsville
Posted: 1st Feb 2007 22:41
Been a bit busy of late, but I hate to miss a competition, so I whipped this up. Haven't tested it, so I will call it Beta




( 2b || !2b ), that is the question. The answer: true
gadgetfreak 66
19
Years of Service
User Offline
Joined: 26th Sep 2006
Location: Kulin,WA, Australia
Posted: 5th Feb 2007 00:19
okay. Sorry for the big blank area towards the end of this challenge, i didn't think people would get it done so quick. Regardless, the challenge is now closed, and i will post the winner and runner up about 7 hours from now, after school.


[i]omnia dicta fortiora si dicta Latina[i/]
gadgetfreak 66
19
Years of Service
User Offline
Joined: 26th Sep 2006
Location: Kulin,WA, Australia
Posted: 5th Feb 2007 09:02
okay.

The entrants:

Diggsey: The first entrant. Lots of possible answers and things, and the only entry to not use a data statement or reference array of some kind. The naughts and crosses game was another notable feature.

Ric: There was some good humour in this one, for example:
chatbot: I don't know much about that. Do you like your job?
me: No.
chatbot: Good. I hate your job too!
The flow of speech was good, and the small things such as: "I seem to be repeating myself" helped aswell.

MadrMan: The incredible learning chatbot! The learning system in this was interesting, particularly how you didn't necessarily have to use commands to get it to add things to the database.

Acelpage: The last entrant. Short and simple but effective. Easy to add to, as most of the keywords and responses were contained in data statements at the bottom.

Now, after all that:

The runner-up:


And the winner:



[i]omnia dicta fortiora si dicta Latina[i/]
Ric
22
Years of Service
User Offline
Joined: 11th Jul 2004
Location: object position x
Posted: 5th Feb 2007 09:32
Thanks GadgetFreak! Well done to the other entrants; I had fun with this challenge - had me in giggles a few times with what these chatbots can come up with!

I'll start thinking about the next challenge and post it later.





Darth Vader
21
Years of Service
User Offline
Joined: 10th May 2005
Location: Adelaide SA, I am the only DB user here!
Posted: 5th Feb 2007 11:34
Ric I have an idea! What about text scrolling or word wrapping?

Or maybe a drag and drop function?


Ric
22
Years of Service
User Offline
Joined: 11th Jul 2004
Location: object position x
Posted: 5th Feb 2007 12:43
Those are good ideas, although we did have a text editor challenge quite recently with some good entries, which included word wrapping. Drag and drop may be a little to easy for some entrants too.

I do have an idea, though. And I should admit before I start, that I never set challenges based on what would be useful for my own purposes - except for this .... this actually could be useful for me, although I think it would be quite a good challenge anyway!

The idea is to make an antialiasing function - something you could apply to some standard DBP text, and turn it from the horrible jaggedy stuff to the nice smooth stuff.

Not quite as simple as applying 'blur' - antialiased text needs to look smooth but sharp. Anyone interested in a challenge like that? Let me know, or if there are any other ideas, feel free to suggest.

Nicholas Thompson
21
Years of Service
User Offline
Joined: 6th Sep 2004
Location: Bognor Regis, UK
Posted: 5th Feb 2007 14:22
Personally - I'm not keen on that idea (no offence). As a CODING challenge, its ok - quite challenging, however there is a free addon by Cloggy which does fast antialiased text which will probably server you better.

How about a game? Idea....

Think Pong plus Tennis.

You move the mouse and your pong paddle moves in an arc of about 90 degrees from vertical to horizontal. Depending on the angle of the paddle when you hit will effect the angle the ball bounces off. You have to get the ball over a net in the middle-bottom. Maybe allow 1 or 2 bounces on the opposite side of the net?
Challenges: Physics (angled bouncing on paddle, maybe spin too?), Graphics (use of code-generated textures?), AI or Multiplayer (on shared keyboard?)

Just an idea...

[center]
gadgetfreak 66
19
Years of Service
User Offline
Joined: 26th Sep 2006
Location: Kulin,WA, Australia
Posted: 5th Feb 2007 15:06
As far as games go, i have always thought it would be a cool idea to have a fully 3-D version of tetris. By this I don't mean normal tetris with some depth, i mean having a cube in the centre of the screen, and being able to rotate it on all three axis with he blocks falling from the top. Any totally rectangular planes would be erased, with blocks on top of them falling towards the middle.

Again, just an idea...


[i]omnia dicta fortiora si dicta Latina[i/]

Login to post a reply

Server time is: 2026-07-20 08:52:49
Your offset time is: 2026-07-20 08:52:49