Getting all files in Azure file share (CloudFileDirectory)How do I get a consistent byte representation of strings in C# without manually specifying an encoding?ImageResizer prefix errorMongoDB C# 2.0 TimeoutException during using findAll()Create blob container for Azure App Service“Stream is too long” when uploading big files on Azure Blob StorageAzure BlobWriteStream The client could not finish the operation within specified timeoutThe remote server returned an error: (400) Bad Request when trying execute AddMessageAsync()Writing to CloudAppendBlob: The remote server returned an error: (409) Conflict & ProcessExpectedStatusCodeNoExceptionMicrosoft.WindowsAzure.Storage.Shared.Protocol.HttpResponseParsers.ProcessExpectedStatusCodeNoException Writing to Azure QueueAzure storage CloudBlockBlob.PutBlockAsync() The value for one of the HTTP headers is not in the correct format.
At what rate does the volume (velocity) of a note decay?
Is this photo showing a woman posing in the nude before teenagers real?
Does the Intel 8086 CPU have user mode and kernel mode?
Are there any examples of technologies have been lost over time?
Why is drive/partition number still used?
Inadvertently nuked my disk permission structure - why?
Keeping an "hot eyeball planet" wet
Is there a reason why I should not use the HaveIBeenPwned API to warn users about exposed passwords?
Why isn't there a ";" after "do" in sh loops?
Terence Tao–type books in other fields?
Can I make a matrix from just a parts of the cells?
Problem in styling a monochrome plot
Piece-drop Mate #2
Why are off grid solar setups only 12, 24, 48 VDC?
How could a thief buying plane tickets with stolen credit card details benefit personally?
How to Create an Image for Cantor's *Diagonal Argument* with a Diagonal Oval
TSA asking to see cell phone
Would this neural network have short term memory?
Is it legal for private citizens to "impound" e-scooters?
How to judge a Ph.D. applicant that arrives "out of thin air"
401(k) investment after being fired. Do I own it?
Marrying a second woman behind your wife's back: is it wrong and can Quran/Hadith prove this?
How much were the LMs maneuvered to their landing points?
Commercial jet accompanied by small plane near Seattle
Getting all files in Azure file share (CloudFileDirectory)
How do I get a consistent byte representation of strings in C# without manually specifying an encoding?ImageResizer prefix errorMongoDB C# 2.0 TimeoutException during using findAll()Create blob container for Azure App Service“Stream is too long” when uploading big files on Azure Blob StorageAzure BlobWriteStream The client could not finish the operation within specified timeoutThe remote server returned an error: (400) Bad Request when trying execute AddMessageAsync()Writing to CloudAppendBlob: The remote server returned an error: (409) Conflict & ProcessExpectedStatusCodeNoExceptionMicrosoft.WindowsAzure.Storage.Shared.Protocol.HttpResponseParsers.ProcessExpectedStatusCodeNoException Writing to Azure QueueAzure storage CloudBlockBlob.PutBlockAsync() The value for one of the HTTP headers is not in the correct format.
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I'm looking for a C# method that will return all files (in all sub-directories) in an Azure file share.
Have an example but it throws a run time error. I've tried the code example below which I got from here however it throws an exception.
I have pasted the code in here but if anyone has a method that walks the entrire Azure directory get gets files that would be great.
CloudFileDirectory dir = fclient.GetShareReference(share.ToString()).GetRootDirectoryReference();
foreach (IListFileItem file in dir.ListFilesAndDirectories()) //.Directory.ListFilesAndDirectories())
list_subdir(file);
And the method.
public static void list_subdir(IListFileItem list)
Console.WriteLine("subdir");
CloudFileDirectory fileDirectory = (CloudFileDirectory)list;
IEnumerable<IListFileItem> fileList = fileDirectory.ListFilesAndDirectories();
foreach (IListFileItem listItem in fileList)
if (listItem.GetType() == typeof(Microsoft.WindowsAzure.Storage.File.CloudFileDirectory))
list_subdir(listItem);
else
Console.WriteLine(listItem.Uri.Segments.Last());
" at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.d__11.MoveNext()
1.b__0() in
in C:Program Files (x86)Jenkinsworkspacedotnet-split-pr-masterLibClassLibraryCommonCoreExecutorExecutor.cs:line 82
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.<>c__DisplayClass0_0
C:Program Files (x86)Jenkinsworkspacedotnet-split-pr-masterLibClassLibraryCommonCoreExecutorExecutor.cs:line 41
c# azure-storage
add a comment |
I'm looking for a C# method that will return all files (in all sub-directories) in an Azure file share.
Have an example but it throws a run time error. I've tried the code example below which I got from here however it throws an exception.
I have pasted the code in here but if anyone has a method that walks the entrire Azure directory get gets files that would be great.
CloudFileDirectory dir = fclient.GetShareReference(share.ToString()).GetRootDirectoryReference();
foreach (IListFileItem file in dir.ListFilesAndDirectories()) //.Directory.ListFilesAndDirectories())
list_subdir(file);
And the method.
public static void list_subdir(IListFileItem list)
Console.WriteLine("subdir");
CloudFileDirectory fileDirectory = (CloudFileDirectory)list;
IEnumerable<IListFileItem> fileList = fileDirectory.ListFilesAndDirectories();
foreach (IListFileItem listItem in fileList)
if (listItem.GetType() == typeof(Microsoft.WindowsAzure.Storage.File.CloudFileDirectory))
list_subdir(listItem);
else
Console.WriteLine(listItem.Uri.Segments.Last());
" at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.d__11.MoveNext()
1.b__0() in
in C:Program Files (x86)Jenkinsworkspacedotnet-split-pr-masterLibClassLibraryCommonCoreExecutorExecutor.cs:line 82
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.<>c__DisplayClass0_0
C:Program Files (x86)Jenkinsworkspacedotnet-split-pr-masterLibClassLibraryCommonCoreExecutorExecutor.cs:line 41
c# azure-storage
add a comment |
I'm looking for a C# method that will return all files (in all sub-directories) in an Azure file share.
Have an example but it throws a run time error. I've tried the code example below which I got from here however it throws an exception.
I have pasted the code in here but if anyone has a method that walks the entrire Azure directory get gets files that would be great.
CloudFileDirectory dir = fclient.GetShareReference(share.ToString()).GetRootDirectoryReference();
foreach (IListFileItem file in dir.ListFilesAndDirectories()) //.Directory.ListFilesAndDirectories())
list_subdir(file);
And the method.
public static void list_subdir(IListFileItem list)
Console.WriteLine("subdir");
CloudFileDirectory fileDirectory = (CloudFileDirectory)list;
IEnumerable<IListFileItem> fileList = fileDirectory.ListFilesAndDirectories();
foreach (IListFileItem listItem in fileList)
if (listItem.GetType() == typeof(Microsoft.WindowsAzure.Storage.File.CloudFileDirectory))
list_subdir(listItem);
else
Console.WriteLine(listItem.Uri.Segments.Last());
" at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.d__11.MoveNext()
1.b__0() in
in C:Program Files (x86)Jenkinsworkspacedotnet-split-pr-masterLibClassLibraryCommonCoreExecutorExecutor.cs:line 82
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.<>c__DisplayClass0_0
C:Program Files (x86)Jenkinsworkspacedotnet-split-pr-masterLibClassLibraryCommonCoreExecutorExecutor.cs:line 41
c# azure-storage
I'm looking for a C# method that will return all files (in all sub-directories) in an Azure file share.
Have an example but it throws a run time error. I've tried the code example below which I got from here however it throws an exception.
I have pasted the code in here but if anyone has a method that walks the entrire Azure directory get gets files that would be great.
CloudFileDirectory dir = fclient.GetShareReference(share.ToString()).GetRootDirectoryReference();
foreach (IListFileItem file in dir.ListFilesAndDirectories()) //.Directory.ListFilesAndDirectories())
list_subdir(file);
And the method.
public static void list_subdir(IListFileItem list)
Console.WriteLine("subdir");
CloudFileDirectory fileDirectory = (CloudFileDirectory)list;
IEnumerable<IListFileItem> fileList = fileDirectory.ListFilesAndDirectories();
foreach (IListFileItem listItem in fileList)
if (listItem.GetType() == typeof(Microsoft.WindowsAzure.Storage.File.CloudFileDirectory))
list_subdir(listItem);
else
Console.WriteLine(listItem.Uri.Segments.Last());
" at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.d__11.MoveNext()
1.b__0() in
in C:Program Files (x86)Jenkinsworkspacedotnet-split-pr-masterLibClassLibraryCommonCoreExecutorExecutor.cs:line 82
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.<>c__DisplayClass0_0
C:Program Files (x86)Jenkinsworkspacedotnet-split-pr-masterLibClassLibraryCommonCoreExecutorExecutor.cs:line 41
c# azure-storage
c# azure-storage
asked Mar 26 at 17:21
DaveDave
751 gold badge3 silver badges13 bronze badges
751 gold badge3 silver badges13 bronze badges
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
I have the nuget package WindowsAzure.Storage, version 9.3.3 installed. And the code below works fine for me, all files in sub-directories are listed.
static void Main(string[] args)
string accountName = "xxx";
string key = "xxxx";
var storageAccount = new CloudStorageAccount(new StorageCredentials(accountName, key), true);
var share = storageAccount.CreateCloudFileClient().GetShareReference("testfolder");
IEnumerable<IListFileItem> fileList = share.GetRootDirectoryReference().ListFilesAndDirectories();
foreach (IListFileItem listItem in fileList)
if (listItem.GetType() == typeof(CloudFile))
Console.WriteLine(listItem.Uri.Segments.Last());
else if(listItem.GetType() == typeof(CloudFileDirectory))
list_subdir(listItem);
Console.WriteLine("done now");
Console.ReadLine();
public static void list_subdir(IListFileItem list)
//Console.WriteLine("subdir");
CloudFileDirectory fileDirectory = (CloudFileDirectory)list;
IEnumerable<IListFileItem> fileList = fileDirectory.ListFilesAndDirectories();
foreach (IListFileItem listItem in fileList)
if (listItem.GetType() == typeof(CloudFileDirectory))
list_subdir(listItem);
else
Console.WriteLine(listItem.Uri.Segments.Last());
The directories in file share:
root:
sub-directory 1:
sub-directory 2:
Test result: all files in sub-directories are listed:
Thanks Ivan, that does indeed work in .net 4.6.1 console application using VS2019. The error I posted initially was whilst I was running in LINQPad5. Thanks
– Dave
Mar 27 at 15:10
I would like this to give me a list of the 17 files I have in my share, however the code I now have double counts some of the files so I end up with 29. Any idea what I'm doing wrong?
– Dave
Mar 27 at 15:27
I will have to post my code as a new question as editing my original seems to mess up the code formatting.
– Dave
Mar 27 at 15:28
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55362899%2fgetting-all-files-in-azure-file-share-cloudfiledirectory%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I have the nuget package WindowsAzure.Storage, version 9.3.3 installed. And the code below works fine for me, all files in sub-directories are listed.
static void Main(string[] args)
string accountName = "xxx";
string key = "xxxx";
var storageAccount = new CloudStorageAccount(new StorageCredentials(accountName, key), true);
var share = storageAccount.CreateCloudFileClient().GetShareReference("testfolder");
IEnumerable<IListFileItem> fileList = share.GetRootDirectoryReference().ListFilesAndDirectories();
foreach (IListFileItem listItem in fileList)
if (listItem.GetType() == typeof(CloudFile))
Console.WriteLine(listItem.Uri.Segments.Last());
else if(listItem.GetType() == typeof(CloudFileDirectory))
list_subdir(listItem);
Console.WriteLine("done now");
Console.ReadLine();
public static void list_subdir(IListFileItem list)
//Console.WriteLine("subdir");
CloudFileDirectory fileDirectory = (CloudFileDirectory)list;
IEnumerable<IListFileItem> fileList = fileDirectory.ListFilesAndDirectories();
foreach (IListFileItem listItem in fileList)
if (listItem.GetType() == typeof(CloudFileDirectory))
list_subdir(listItem);
else
Console.WriteLine(listItem.Uri.Segments.Last());
The directories in file share:
root:
sub-directory 1:
sub-directory 2:
Test result: all files in sub-directories are listed:
Thanks Ivan, that does indeed work in .net 4.6.1 console application using VS2019. The error I posted initially was whilst I was running in LINQPad5. Thanks
– Dave
Mar 27 at 15:10
I would like this to give me a list of the 17 files I have in my share, however the code I now have double counts some of the files so I end up with 29. Any idea what I'm doing wrong?
– Dave
Mar 27 at 15:27
I will have to post my code as a new question as editing my original seems to mess up the code formatting.
– Dave
Mar 27 at 15:28
add a comment |
I have the nuget package WindowsAzure.Storage, version 9.3.3 installed. And the code below works fine for me, all files in sub-directories are listed.
static void Main(string[] args)
string accountName = "xxx";
string key = "xxxx";
var storageAccount = new CloudStorageAccount(new StorageCredentials(accountName, key), true);
var share = storageAccount.CreateCloudFileClient().GetShareReference("testfolder");
IEnumerable<IListFileItem> fileList = share.GetRootDirectoryReference().ListFilesAndDirectories();
foreach (IListFileItem listItem in fileList)
if (listItem.GetType() == typeof(CloudFile))
Console.WriteLine(listItem.Uri.Segments.Last());
else if(listItem.GetType() == typeof(CloudFileDirectory))
list_subdir(listItem);
Console.WriteLine("done now");
Console.ReadLine();
public static void list_subdir(IListFileItem list)
//Console.WriteLine("subdir");
CloudFileDirectory fileDirectory = (CloudFileDirectory)list;
IEnumerable<IListFileItem> fileList = fileDirectory.ListFilesAndDirectories();
foreach (IListFileItem listItem in fileList)
if (listItem.GetType() == typeof(CloudFileDirectory))
list_subdir(listItem);
else
Console.WriteLine(listItem.Uri.Segments.Last());
The directories in file share:
root:
sub-directory 1:
sub-directory 2:
Test result: all files in sub-directories are listed:
Thanks Ivan, that does indeed work in .net 4.6.1 console application using VS2019. The error I posted initially was whilst I was running in LINQPad5. Thanks
– Dave
Mar 27 at 15:10
I would like this to give me a list of the 17 files I have in my share, however the code I now have double counts some of the files so I end up with 29. Any idea what I'm doing wrong?
– Dave
Mar 27 at 15:27
I will have to post my code as a new question as editing my original seems to mess up the code formatting.
– Dave
Mar 27 at 15:28
add a comment |
I have the nuget package WindowsAzure.Storage, version 9.3.3 installed. And the code below works fine for me, all files in sub-directories are listed.
static void Main(string[] args)
string accountName = "xxx";
string key = "xxxx";
var storageAccount = new CloudStorageAccount(new StorageCredentials(accountName, key), true);
var share = storageAccount.CreateCloudFileClient().GetShareReference("testfolder");
IEnumerable<IListFileItem> fileList = share.GetRootDirectoryReference().ListFilesAndDirectories();
foreach (IListFileItem listItem in fileList)
if (listItem.GetType() == typeof(CloudFile))
Console.WriteLine(listItem.Uri.Segments.Last());
else if(listItem.GetType() == typeof(CloudFileDirectory))
list_subdir(listItem);
Console.WriteLine("done now");
Console.ReadLine();
public static void list_subdir(IListFileItem list)
//Console.WriteLine("subdir");
CloudFileDirectory fileDirectory = (CloudFileDirectory)list;
IEnumerable<IListFileItem> fileList = fileDirectory.ListFilesAndDirectories();
foreach (IListFileItem listItem in fileList)
if (listItem.GetType() == typeof(CloudFileDirectory))
list_subdir(listItem);
else
Console.WriteLine(listItem.Uri.Segments.Last());
The directories in file share:
root:
sub-directory 1:
sub-directory 2:
Test result: all files in sub-directories are listed:
I have the nuget package WindowsAzure.Storage, version 9.3.3 installed. And the code below works fine for me, all files in sub-directories are listed.
static void Main(string[] args)
string accountName = "xxx";
string key = "xxxx";
var storageAccount = new CloudStorageAccount(new StorageCredentials(accountName, key), true);
var share = storageAccount.CreateCloudFileClient().GetShareReference("testfolder");
IEnumerable<IListFileItem> fileList = share.GetRootDirectoryReference().ListFilesAndDirectories();
foreach (IListFileItem listItem in fileList)
if (listItem.GetType() == typeof(CloudFile))
Console.WriteLine(listItem.Uri.Segments.Last());
else if(listItem.GetType() == typeof(CloudFileDirectory))
list_subdir(listItem);
Console.WriteLine("done now");
Console.ReadLine();
public static void list_subdir(IListFileItem list)
//Console.WriteLine("subdir");
CloudFileDirectory fileDirectory = (CloudFileDirectory)list;
IEnumerable<IListFileItem> fileList = fileDirectory.ListFilesAndDirectories();
foreach (IListFileItem listItem in fileList)
if (listItem.GetType() == typeof(CloudFileDirectory))
list_subdir(listItem);
else
Console.WriteLine(listItem.Uri.Segments.Last());
The directories in file share:
root:
sub-directory 1:
sub-directory 2:
Test result: all files in sub-directories are listed:
edited Mar 27 at 5:28
answered Mar 27 at 3:14
Ivan YangIvan Yang
6,8921 gold badge2 silver badges12 bronze badges
6,8921 gold badge2 silver badges12 bronze badges
Thanks Ivan, that does indeed work in .net 4.6.1 console application using VS2019. The error I posted initially was whilst I was running in LINQPad5. Thanks
– Dave
Mar 27 at 15:10
I would like this to give me a list of the 17 files I have in my share, however the code I now have double counts some of the files so I end up with 29. Any idea what I'm doing wrong?
– Dave
Mar 27 at 15:27
I will have to post my code as a new question as editing my original seems to mess up the code formatting.
– Dave
Mar 27 at 15:28
add a comment |
Thanks Ivan, that does indeed work in .net 4.6.1 console application using VS2019. The error I posted initially was whilst I was running in LINQPad5. Thanks
– Dave
Mar 27 at 15:10
I would like this to give me a list of the 17 files I have in my share, however the code I now have double counts some of the files so I end up with 29. Any idea what I'm doing wrong?
– Dave
Mar 27 at 15:27
I will have to post my code as a new question as editing my original seems to mess up the code formatting.
– Dave
Mar 27 at 15:28
Thanks Ivan, that does indeed work in .net 4.6.1 console application using VS2019. The error I posted initially was whilst I was running in LINQPad5. Thanks
– Dave
Mar 27 at 15:10
Thanks Ivan, that does indeed work in .net 4.6.1 console application using VS2019. The error I posted initially was whilst I was running in LINQPad5. Thanks
– Dave
Mar 27 at 15:10
I would like this to give me a list of the 17 files I have in my share, however the code I now have double counts some of the files so I end up with 29. Any idea what I'm doing wrong?
– Dave
Mar 27 at 15:27
I would like this to give me a list of the 17 files I have in my share, however the code I now have double counts some of the files so I end up with 29. Any idea what I'm doing wrong?
– Dave
Mar 27 at 15:27
I will have to post my code as a new question as editing my original seems to mess up the code formatting.
– Dave
Mar 27 at 15:28
I will have to post my code as a new question as editing my original seems to mess up the code formatting.
– Dave
Mar 27 at 15:28
add a comment |
Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.
Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55362899%2fgetting-all-files-in-azure-file-share-cloudfiledirectory%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown