Sign in to follow this  
Followers 0
acarter

Copy from text file and paste to browser based on radio buttons.

13 posts in this topic

Hey guys,

Sorry for a newbie question, but here it goes...

I'm building a program for work and our current system is a Java Applet. We have several items we want to "load" in, but it takes forever to manually enter in each item into the Java Applet window. A lot of the items are just typing and hitting enter, but there are instances where we have to use function keys, such as F11. From Excel, I saved these items as a Text Tab Delimited file. I currently have a program shown below:

970bj9.jpg

I want to create a "Load" button that will read each column from the text file and enter it on the Java Applet screen. If the radio button for that column is marked Input, it reads it off the text file. If its marked F3 or F11, it presses that key. If its marked OFF, it ignores that column and moves to the next line (starting back at column A for the next line).

Here is the code I have thus far -

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=C:\Users\Andy\Desktop\SP Loader Form.kxf
$Form1 = GUICreate("xxxxxxxxxx", 706, 520, 191, 121)
$Label1 = GUICtrlCreateLabel("xxxxxxxx", 32, 24, 279, 39)
GUICtrlSetFont(-1, 20, 400, 0, "Elephant")
$Label2 = GUICtrlCreateLabel("Select File:", 32, 80, 56, 17)
$Input1 = GUICtrlCreateInput("", 88, 75, 281, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
$LblDeclarePurp = GUICtrlCreateLabel("Declare Column Purposes:", 32, 118, 153, 17)
GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
$Button1 = GUICtrlCreateButton("Select", 376, 72, 75, 25)
$LblColA = GUICtrlCreateLabel("Column A:", 32, 144, 52, 17)
GUIStartGroup()
$RadColAInp = GUICtrlCreateRadio("Input", 96, 144, 41, 17)
$RadColAF11 = GUICtrlCreateRadio("F11", 180, 144, 33, 17)
$RadColAF3 = GUICtrlCreateRadio("F3", 145, 144, 33, 17)
$RadColAOff = GUICtrlCreateRadio("OFF", 218, 144, 49, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUIStartGroup()
$LblColB = GUICtrlCreateLabel("Column B:", 32, 166, 52, 17)
$RadColBInp = GUICtrlCreateRadio("Input", 96, 166, 41, 17)
$RadColBF11 = GUICtrlCreateRadio("F11", 180, 166, 33, 17)
$RadColBF3 = GUICtrlCreateRadio("F3", 145, 166, 33, 17)
$RadColBOff = GUICtrlCreateRadio("OFF", 218, 166, 49, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUIStartGroup()
$Label3 = GUICtrlCreateLabel("Column C:", 32, 188, 52, 17)
$Radio1 = GUICtrlCreateRadio("Input", 96, 188, 41, 17)
$Radio2 = GUICtrlCreateRadio("F11", 180, 188, 33, 17)
$Radio3 = GUICtrlCreateRadio("F3", 146, 188, 33, 17)
$Radio4 = GUICtrlCreateRadio("OFF", 218, 188, 49, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUIStartGroup()
$Label4 = GUICtrlCreateLabel("Column D:", 32, 210, 53, 17)
$Radio5 = GUICtrlCreateRadio("Input", 96, 210, 41, 17)
$Radio6 = GUICtrlCreateRadio("F11", 180, 210, 33, 17)
$Radio7 = GUICtrlCreateRadio("F3", 146, 210, 33, 17)
$Radio8 = GUICtrlCreateRadio("OFF", 218, 210, 49, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUIStartGroup()
$Label5 = GUICtrlCreateLabel("Column E:", 32, 232, 52, 17)
$Radio9 = GUICtrlCreateRadio("Input", 96, 232, 41, 17)
$Radio10 = GUICtrlCreateRadio("F11", 180, 232, 33, 17)
$Radio11 = GUICtrlCreateRadio("F3", 146, 232, 33, 17)
$Radio12 = GUICtrlCreateRadio("OFF", 218, 232, 49, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUIStartGroup()
$Label6 = GUICtrlCreateLabel("Column F:", 32, 254, 51, 17)
$Radio13 = GUICtrlCreateRadio("Input", 96, 254, 41, 17)
$Radio14 = GUICtrlCreateRadio("F11", 180, 254, 33, 17)
$Radio15 = GUICtrlCreateRadio("F3", 146, 254, 33, 17)
$Radio16 = GUICtrlCreateRadio("OFF", 218, 254, 49, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUIStartGroup()
$Label7 = GUICtrlCreateLabel("Column G:", 32, 276, 53, 17)
$Radio17 = GUICtrlCreateRadio("Input", 96, 276, 41, 17)
$Radio18 = GUICtrlCreateRadio("F11", 180, 276, 33, 17)
$Radio19 = GUICtrlCreateRadio("F3", 146, 276, 33, 17)
$Radio20 = GUICtrlCreateRadio("OFF", 218, 276, 49, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUIStartGroup()
$Label8 = GUICtrlCreateLabel("Column H:", 32, 298, 53, 17)
$Radio21 = GUICtrlCreateRadio("Input", 96, 298, 41, 17)
$Radio22 = GUICtrlCreateRadio("F11", 180, 298, 33, 17)
$Radio23 = GUICtrlCreateRadio("F3", 146, 298, 33, 17)
$Radio24 = GUICtrlCreateRadio("OFF", 218, 298, 49, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUIStartGroup()
$Label9 = GUICtrlCreateLabel("Column I:", 356, 144, 48, 17)
$Radio25 = GUICtrlCreateRadio("Input", 420, 144, 41, 17)
$Radio26 = GUICtrlCreateRadio("F11", 504, 144, 33, 17)
$Radio27 = GUICtrlCreateRadio("F3", 469, 144, 33, 17)
$Radio28 = GUICtrlCreateRadio("OFF", 542, 144, 49, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUIStartGroup()
$Label10 = GUICtrlCreateLabel("Column J:", 356, 166, 50, 17)
$Radio29 = GUICtrlCreateRadio("Input", 420, 166, 41, 17)
$Radio30 = GUICtrlCreateRadio("F11", 504, 166, 33, 17)
$Radio31 = GUICtrlCreateRadio("F3", 469, 166, 33, 17)
$Radio32 = GUICtrlCreateRadio("OFF", 542, 166, 49, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUIStartGroup()
$Label11 = GUICtrlCreateLabel("Column K:", 356, 188, 52, 17)
$Radio33 = GUICtrlCreateRadio("Input", 420, 188, 41, 17)
$Radio34 = GUICtrlCreateRadio("F11", 504, 188, 33, 17)
$Radio35 = GUICtrlCreateRadio("F3", 470, 188, 33, 17)
$Radio36 = GUICtrlCreateRadio("OFF", 542, 188, 49, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUIStartGroup()
$Label12 = GUICtrlCreateLabel("Column L:", 356, 210, 51, 17)
$Radio37 = GUICtrlCreateRadio("Input", 420, 210, 41, 17)
$Radio38 = GUICtrlCreateRadio("F11", 504, 210, 33, 17)
$Radio39 = GUICtrlCreateRadio("F3", 470, 210, 33, 17)
$Radio40 = GUICtrlCreateRadio("OFF", 542, 210, 49, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUIStartGroup()
$Label13 = GUICtrlCreateLabel("Column M:", 356, 232, 54, 17)
$Radio41 = GUICtrlCreateRadio("Input", 420, 232, 41, 17)
$Radio42 = GUICtrlCreateRadio("F11", 504, 232, 33, 17)
$Radio43 = GUICtrlCreateRadio("F3", 470, 232, 33, 17)
$Radio44 = GUICtrlCreateRadio("OFF", 542, 232, 49, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUIStartGroup()
$Label14 = GUICtrlCreateLabel("Column N:", 356, 254, 53, 17)
$Radio45 = GUICtrlCreateRadio("Input", 420, 254, 41, 17)
$Radio46 = GUICtrlCreateRadio("F11", 504, 254, 33, 17)
$Radio47 = GUICtrlCreateRadio("F3", 470, 254, 33, 17)
$Radio48 = GUICtrlCreateRadio("OFF", 542, 254, 49, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUIStartGroup()
$Label15 = GUICtrlCreateLabel("Column O:", 356, 276, 53, 17)
$Radio49 = GUICtrlCreateRadio("Input", 420, 276, 41, 17)
$Radio50 = GUICtrlCreateRadio("F11", 504, 276, 33, 17)
$Radio51 = GUICtrlCreateRadio("F3", 470, 276, 33, 17)
$Radio52 = GUICtrlCreateRadio("OFF", 542, 276, 49, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUIStartGroup()
$Label16 = GUICtrlCreateLabel("Column P:", 356, 298, 52, 17)
$Radio53 = GUICtrlCreateRadio("Input", 420, 298, 41, 17)
$Radio54 = GUICtrlCreateRadio("F11", 504, 298, 33, 17)
$Radio55 = GUICtrlCreateRadio("F3", 470, 298, 33, 17)
$Radio56 = GUICtrlCreateRadio("OFF", 542, 298, 49, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
$message = "Hold down Ctrl or Shift to choose multiple files."
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###




While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
        ExitLoop
    Case $msg = $Button1
        $var = FileOpenDialog($message, "C:\Windows\", "Text files (*.txt)", 1)
        GUICtrlSetData($Input1, $var)
    Case Else
    ;;;;;;;
EndSelect
WEnd




While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

        Case $Form1
    EndSwitch
WEnd

Is this even possible? If so, is there an easy way to accomplish this?

Thanks in advance!

Share this post


Link to post
Share on other sites



Welcome to AutoIt an the forum!

Automating Java applications isn't easy because Java it's own presentation manager.

There is a UDF (User Defined Functions library) available to automate Java. I have never used it myself so can't tell if it exactly fits your needs.

As your task is quite complex I wourd first try the Java automation part in a test script (read data from the applet, write data). If successful do the rest.

As I'm leaving for vacation right now, don't hold your breath for me to reply to any of your next questions :)


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

Welcome to AutoIt an the forum!

Automating Java applications isn't easy because Java it's own presentation manager.

There is a UDF (User Defined Functions library) available to automate Java. I have never used it myself so can't tell if it exactly fits your needs.

As your task is quite complex I wourd first try the Java automation part in a test script (read data from the applet, write data). If successful do the rest.

As I'm leaving for vacation right now, don't hold your breath for me to reply to any of your next questions :)

 

Thanks. I'll look into it.

If anyone else has feedback on this, please let me know! Thanks!

Share this post


Link to post
Share on other sites

I edited a little bit of your code so once you find out how to insert into Java just replace the Console write line to send to Java Applet.

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=C:\Users\Andy\Desktop\SP Loader Form.kxf
$Form1 = GUICreate("xxxxxxxxxx", 606, 420)
$Label1 = GUICtrlCreateLabel("xxxxxxxx", 32, 24, 279, 39)
GUICtrlSetFont(-1, 20, 400, 0, "Elephant")
$Label2 = GUICtrlCreateLabel("Select File:", 32, 80, 56, 17)
$Input1 = GUICtrlCreateInput("", 88, 75, 281, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
$LblDeclarePurp = GUICtrlCreateLabel("Declare Column Purposes:", 32, 118, 153, 17)
GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
$Button1 = GUICtrlCreateButton("Select", 376, 72, 75, 25)
$Button2 = GUICtrlCreateButton("Load", 32, 350, 512, 25)
Global $LblCol[17], $RadColInp[17], $RadColf11[17], $RadColf3[17], $RadColOff[17], $insert[17]
For $i = 1 To 8
    $LblCol[$i] = GUICtrlCreateLabel("Column "&Chr($i+64)&":", 32, 144+($i*22), 52, 17)
    GUIStartGroup()
    $RadColInp[$i] = GUICtrlCreateRadio("Input", 96, 144+($i*22), 41, 17)
    $RadColf11[$i] = GUICtrlCreateRadio("F11", 180, 144+($i*22), 33, 17)
    $RadColf3[$i] = GUICtrlCreateRadio("F3", 145, 144+($i*22), 33, 17)
    $RadColOff[$i] = GUICtrlCreateRadio("OFF", 218, 144+($i*22), 49, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
Next
For $i = 9 To 16
    $LblCol[$i] = GUICtrlCreateLabel("Column "&Chr($i+64)&":", 306, 144+(($i-8)*22), 52, 17)
    GUIStartGroup()
    $RadColInp[$i] = GUICtrlCreateRadio("Input", 370, 144+(($i-8)*22), 41, 17)
    $RadColf11[$i] = GUICtrlCreateRadio("F11", 454, 144+(($i-8)*22), 33, 17)
    $RadColf3[$i] = GUICtrlCreateRadio("F3", 419, 144+(($i-8)*22), 33, 17)
    $RadColOff[$i] = GUICtrlCreateRadio("OFF", 492, 144+(($i-8)*22), 49, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
Next
$message = "Hold down Ctrl or Shift to choose multiple files."
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
        ExitLoop
    Case $msg = $Button1
        $var = FileOpenDialog($message, "C:\Windows\", "Text files (*.txt)", 1)
        GUICtrlSetData($Input1, $var)
    Case $msg = $Button2
        For $i = 1 To 16
            If GUICtrlRead($RadColInp[$i]) = $GUI_CHECKED Then $insert[$i] = InputBox("Column "&Chr($i+64), "Input")
            If GUICtrlRead($RadColf11[$i]) = $GUI_CHECKED Then $insert[$i] = "F11"
            If GUICtrlRead($RadColf3[$i]) = $GUI_CHECKED Then $insert[$i] = "F3"
            ConsoleWrite($insert[$i])
            $insert[$i] = ""
        Next
EndSelect
WEnd

Share this post


Link to post
Share on other sites

Hi acarter,

  Before you lose hope in an array of unanswered questions, don't forget there are the good old fashioned alternatives.

I have a program at work that was written especially for our company and it too was a hassle to automate.

  Ended up having to do most of the macros with Send / ControlSend. Tab-ing.

Most GUI's allow you to TAB through them to the correct control and then SEND your command.

  Maybe not a good alternative but it is better than typing... :P

Have a look if your interested...LINK

Good luck!

Bill

Share this post


Link to post
Share on other sites

 

I edited a little bit of your code so once you find out how to insert into Java just replace the Console write line to send to Java Applet.

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=C:\Users\Andy\Desktop\SP Loader Form.kxf
$Form1 = GUICreate("xxxxxxxxxx", 606, 420)
$Label1 = GUICtrlCreateLabel("xxxxxxxx", 32, 24, 279, 39)
GUICtrlSetFont(-1, 20, 400, 0, "Elephant")
$Label2 = GUICtrlCreateLabel("Select File:", 32, 80, 56, 17)
$Input1 = GUICtrlCreateInput("", 88, 75, 281, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
$LblDeclarePurp = GUICtrlCreateLabel("Declare Column Purposes:", 32, 118, 153, 17)
GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
$Button1 = GUICtrlCreateButton("Select", 376, 72, 75, 25)
$Button2 = GUICtrlCreateButton("Load", 32, 350, 512, 25)
Global $LblCol[17], $RadColInp[17], $RadColf11[17], $RadColf3[17], $RadColOff[17], $insert[17]
For $i = 1 To 8
    $LblCol[$i] = GUICtrlCreateLabel("Column "&Chr($i+64)&":", 32, 144+($i*22), 52, 17)
    GUIStartGroup()
    $RadColInp[$i] = GUICtrlCreateRadio("Input", 96, 144+($i*22), 41, 17)
    $RadColf11[$i] = GUICtrlCreateRadio("F11", 180, 144+($i*22), 33, 17)
    $RadColf3[$i] = GUICtrlCreateRadio("F3", 145, 144+($i*22), 33, 17)
    $RadColOff[$i] = GUICtrlCreateRadio("OFF", 218, 144+($i*22), 49, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
Next
For $i = 9 To 16
    $LblCol[$i] = GUICtrlCreateLabel("Column "&Chr($i+64)&":", 306, 144+(($i-8)*22), 52, 17)
    GUIStartGroup()
    $RadColInp[$i] = GUICtrlCreateRadio("Input", 370, 144+(($i-8)*22), 41, 17)
    $RadColf11[$i] = GUICtrlCreateRadio("F11", 454, 144+(($i-8)*22), 33, 17)
    $RadColf3[$i] = GUICtrlCreateRadio("F3", 419, 144+(($i-8)*22), 33, 17)
    $RadColOff[$i] = GUICtrlCreateRadio("OFF", 492, 144+(($i-8)*22), 49, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
Next
$message = "Hold down Ctrl or Shift to choose multiple files."
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
        ExitLoop
    Case $msg = $Button1
        $var = FileOpenDialog($message, "C:\Windows\", "Text files (*.txt)", 1)
        GUICtrlSetData($Input1, $var)
    Case $msg = $Button2
        For $i = 1 To 16
            If GUICtrlRead($RadColInp[$i]) = $GUI_CHECKED Then $insert[$i] = InputBox("Column "&Chr($i+64), "Input")
            If GUICtrlRead($RadColf11[$i]) = $GUI_CHECKED Then $insert[$i] = "F11"
            If GUICtrlRead($RadColf3[$i]) = $GUI_CHECKED Then $insert[$i] = "F3"
            ConsoleWrite($insert[$i])
            $insert[$i] = ""
        Next
EndSelect
WEnd

 

Thanks! It looks much more simplified that way. Like I said, I'm a bit of a newbie. I've only done programming for Android applications and never to manipulate a window/java applet. So this is a bit out of my realm.

Share this post


Link to post
Share on other sites

Hi acarter,

  Before you lose hope in an array of unanswered questions, don't forget there are the good old fashioned alternatives.

I have a program at work that was written especially for our company and it too was a hassle to automate.

  Ended up having to do most of the macros with Send / ControlSend. Tab-ing.

Most GUI's allow you to TAB through them to the correct control and then SEND your command.

  Maybe not a good alternative but it is better than typing... :P

Have a look if your interested...LINK

Good luck!

Bill

Bill,

That may be similar to what I'm looking for, but I need something to read off a text file and automate it. It looks like everything in that would be the same process each time and mine varies by what is in the text file. But thank you though! :)

Share this post


Link to post
Share on other sites

Sure, it was just tan example to show that there are other alternatives and they are not always pretty  :ermm: .   

                                                                                                  :rolleyes:

Share this post


Link to post
Share on other sites

#9 ·  Posted (edited)

Sure, it was just tan example to show that there are other alternatives and they are not always pretty  :ermm: .   

                                                                                                  :rolleyes:

 

Would it be easier to read off an excel file rather than a text file?

Also- the java applet allows us to paste into it. So I'm wondering if I could use the Send command to the Java Applet window?

Edited by acarter

Share this post


Link to post
Share on other sites

 

Would it be easier to read off an excel file rather than a text file?

IMO Excel is easier to automate.

 

Also- the java applet allows us to paste into it. So I'm wondering if I could use the Send command to the Java Applet window?

Correct. instead of paste it would be Send or ControlSend where possible. 

 

So basically your reading an excel file cell by cell into an "array" for instance, using a loop. Then sending the data to your applet the same way.

Either by TAB ing your way to the control and SEND ing the command or ControlSend where possible.

Bill

Share this post


Link to post
Share on other sites

IMO Excel is easier to automate.

Correct. instead of paste it would be Send or ControlSend where possible. 

 

So basically your reading an excel file cell by cell into an "array" for instance, using a loop. Then sending the data to your applet the same way.

Either by TAB ing your way to the control and SEND ing the command or ControlSend where possible.

Bill

 

I think I forgot to mention that the Java Applet is its own window. I've been able to manipulate the window with the WinWaitActive and Send commands, so I don't think using the Java UDF would be necessary. My main concern is getting the radio buttons to correspond with the columns (blank) in Excel for F3 and F11. So I would just need to load the excel into an array, correct? How would I go about telling it which columns to not read and to move to the next line when it hits the "OFF" radio button for that column? And telling it when to stop?

Share this post


Link to post
Share on other sites

So with that information you can start to write your script.

Start with _ExcelReadSheetToArray and use arraydiplay to see what data is where in the array.

You can set the parameters to tell it which rows/columns to read.

Then set up your script to loop through reading the array elements and manipulating the Java Window with the individual data.

Give it a shot and come back if you get stuck.

good luck !

Bill

Share this post


Link to post
Share on other sites

If speed for processing the Excel workbook is an issue you could give my rewrite of the Excel UDF a try. Reading an Excel sheet is about 20 to 50 times faster.


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0