text:
Lower Table Rock
"Wow. Just wow." That rather succinct and terse statement from Jay was entirely accurate, though. The Rogue Valley spread out at our feet like a gigantic picnic blanket thrown out from the top of Lower Table Rock, and the clouds were creating all sorts of sun-and-sky drama as a storm dissipated, making for a stunning diorama that mere words could never convey. Just wow, indeed.
A zen moment in a vernal pool on top of Lower Table Rock
Eons ago, the Rogue River used to flow atop a volcanic plateau about 800 feet higher than the river's current elevation. Seismic events cracked the hardened lava flow and the river subsequently wormed its way through the cracks into flow's soft underbelly, thus beginning the process of eroding the plateau and creating the Rogue Valley, which nowadays contains the city of Medford and surrounding towns and communities. Remnants of the ancient river banks still exist today, chiefly being the prominent flat-topped U-shaped mesas of Upper and Lower Table Rocks. Currently, the rocks are jointly administered by the BLM and Nature Conservancy, and a trail to the summit of each of the locally renown landmarks are heavily hiked by Medfordians, and with good reason.
Jay...come back!
When we arrived at the Lower Table Rock Trailhead, the parking lot was uncharacteristically empty. The morning rain may have had something to do with that but the rain had stopped when Jay and I set out upon the trail. Immediately upon setting out, a sign warned us to stay on trail to avoid rattlesnakes. I had to explain to Jay (who is from rattlesnake-free India) what a rattlesnake was and then had to persuade him to continue hiking instead of hopping back into the car with the windows rolled up and the doors locked for protection.
Dreary trees against a dreary sky
Actually, I exaggerate of course, he only expressed mild concern about the snakes, and we commenced hiking with no girly screams of terror from either one of us. During the course of the hike, I pointed out poison oak and explained all about ticks and he began to wonder why he had come. Mistletoe hung in the oak trees and I told him since we were standing under the mistletoe he now had to kiss me, I do believe I may have heard a girly scream of terror about then.
Tree speaks with forked branch
The hike to the top of either rock is not very long so for a little additional mileage, we added to our itinerary a short nature trail that looped through an oak savanna. There was movement underneath the trees as a flock of turkeys frantically fled our arrival. The oaks were all leafless and stark against the gray sky while lichen hanging from the branches swayed with each movement of air. Water drops hung off the end of every twig and lichen beard, explaining the copious amounts of moss growing on tree trunks and limbs.
We could see our destination above the wet path
Once the loop hike was completed, it was all uphill on the trail to the summit, the path still covered in places by puddles from the rain. As we gained elevation, bits and pieces of the surrounding farm valleys appeared here and there, depending on the whims and caprices of the cloud cover. However, in a hopeful sign for our hiking future, small but temporary holes of blue sky appeared in the cloud cover as we labored up the trail.
Sam's Valley gets some intermittent sunlight
Clearly, the morning rainstorm was dissipating. When had we first started hiking, neighboring Upper Table Rock was hidden in the clouds but now we could see the massive plateau in all its entirety. The neighboring community known as Sam's Valley was eminently visible and was off-and-on bathed in sunlight. Visible on the slopes well above us, were the massive cliffs of the actual rim of Lower Table Rock, giving us a good way to gauge our progress, or lack thereof. We stopped frequently to simultaneously admire the ever increasing view and catch our breath, not necessarily stated in order of importance.
The hike had begun in oak savanna and manzanita chaparral but as we gained elevation, the trail took us into several dense stands of spindly madrone trees. This was a young forest, to judge by the relative lack of size in the trees, and we did stop to eat lunch among them. After exiting the madrones, one last push up a steep stretch of trail spit us out onto the flat top of Lower Table Rock and the wowiness began.
Wet trail atop Lower Table Rock
Table Rock used to be a lava flow and the rock here is still solid and impermeable. Accordingly, no trees grow on top and rainwater does not soak into the ground but instead collects in a series of vernal pools. The terrain on Lower Table Rock is as flat as...well, as flat as a table, and a trail runs from one end to the other. The trail was originally constructed as an airstrip in the 1940s and in keeping with the austere tabletop geometry, is as straight as the table is flat.
Clouds added their own element of drama to the scene
In addition to the alien-looking landscape, dark clouds hovering above the volcanic plateau were particularly dramatic and foreboding as we hiked the mile-long trail on top. Despite the seeming black and gray menace, the clouds really were in the process of breaking up and apart from an occasional weak sprinkle, we really had no weather concerns.
One of several vernal pools atop
the plateau of Lower Table Rock
The vernal pools support a population of rare and endangered meadowfoam (a small flowering plant) and equally rare and endangered fairy shrimp. Accordingly, hikers are admonished to look but don't touch when it comes to the idyllic pools. The clouds and small patches of blue sky reflected nicely in the still ponds, although the clouds prevented the photogenic reflections of Mount McLaughlin and other Cascades Range mountain friends.
Amazing view from the rim
The view of the valley below was what was stunning, though, triggering Jay's not so eloquent but entirely accurate wow statement. The Rogue River snaked to and fro like a large aqueous anaconda through the farmland fields and pastures below the two Table Rocks. Man-made wetlands flanked either side of the river and the collective marshes and ponds support a healthy population of waterfowl, many of whose honks, quacks, and cackles floated up to hikers perched on the rocky rim of the plateau.
An unerringly straight trail
We actually stayed there quite a bit, soaking up the amazing and stunning vista while the clouds burned off in the late afternoon. The day turned from gray to mostly sunny while cloud shadows moved ever so slowly across the landscape. But we couldn't stay there forever, as much as we would have liked to, so we headed back across the plateau, greeting parties of hikers arriving in time to catch the sunset show. I know that back in the day I used to make the ladies swoon but since I've gotten older, I just get them to slip in the mud apparently. Two ladies did that very thing upon my greeting them, and I'm not sure if I should or should not be honored to have that awesome power.
Jay is impressed
Wow, just wow, indeed. For more photos of this hike, please visit the Flickr album.
Labels: BLM , Hiking , Jackson County , Lower Table Rock , medford , Nature Conservancy , Oregon , Rogue River , rogue valley , Upper Table Rock
Location: Lower Table Rock Trailhead, Central Point, OR 97502, USA
Rogue River Trail 2/2020
North Bank Deer Habitat - Soggy Bottom/Blacktail B...
Otter Point


text:
.class public Lgov/nist/javax/sip/parser/ExpiresParser;
.super Lgov/nist/javax/sip/parser/HeaderParser;
.source "ExpiresParser.java"

# direct methods
.method protected constructor <init>(Lgov/nist/javax/sip/parser/Lexer;)V
    .locals 0
    .param p1, "lexer"    # Lgov/nist/javax/sip/parser/Lexer;

    .prologue
    .line 57
    invoke-direct {p0, p1}, Lgov/nist/javax/sip/parser/HeaderParser;-><init>(Lgov/nist/javax/sip/parser/Lexer;)V

    .line 58
    return-void
.end method

.method public constructor <init>(Ljava/lang/String;)V
    .locals 0
    .param p1, "text"    # Ljava/lang/String;

    .prologue
    .line 49
    invoke-direct {p0, p1}, Lgov/nist/javax/sip/parser/HeaderParser;-><init>(Ljava/lang/String;)V

    .line 50
    return-void
.end method

# virtual methods
.method public parse()Lgov/nist/javax/sip/header/SIPHeader;
    .locals 6
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/text/ParseException;
        }
    .end annotation

    .prologue
    .line 64
    new-instance v2, Lgov/nist/javax/sip/header/Expires;

    invoke-direct {v2}, Lgov/nist/javax/sip/header/Expires;-><init>()V

    .line 65
    .local v2, "expires":Lgov/nist/javax/sip/header/Expires;
    sget-boolean v4, Lgov/nist/javax/sip/parser/ExpiresParser;->debug:Z

    if-eqz v4, :cond_0

    .line 66
    const-string v4, "parse"

    invoke-virtual {p0, v4}, Lgov/nist/javax/sip/parser/ExpiresParser;->dbg_enter(Ljava/lang/String;)V

    .line 68
    :cond_0
    :try_start_0
    iget-object v4, p0, Lgov/nist/javax/sip/parser/ExpiresParser;->lexer:Lgov/nist/core/LexerCore;

    const/16 v5, 0x82a

    invoke-virtual {v4, v5}, Lgov/nist/core/LexerCore;->match(I)Lgov/nist/core/Token;

    .line 69
    iget-object v4, p0, Lgov/nist/javax/sip/parser/ExpiresParser;->lexer:Lgov/nist/core/LexerCore;

    invoke-virtual {v4}, Lgov/nist/core/LexerCore;->SPorHT()V

    .line 70
    iget-object v4, p0, Lgov/nist/javax/sip/parser/ExpiresParser;->lexer:Lgov/nist/core/LexerCore;

    const/16 v5, 0x3a

    invoke-virtual {v4, v5}, Lgov/nist/core/LexerCore;->match(I)Lgov/nist/core/Token;

    .line 71
    iget-object v4, p0, Lgov/nist/javax/sip/parser/ExpiresParser;->lexer:Lgov/nist/core/LexerCore;

    invoke-virtual {v4}, Lgov/nist/core/LexerCore;->SPorHT()V

    .line 72
    iget-object v4, p0, Lgov/nist/javax/sip/parser/ExpiresParser;->lexer:Lgov/nist/core/LexerCore;

    invoke-virtual {v4}, Lgov/nist/core/LexerCore;->getNextId()Ljava/lang/String;

    move-result-object v3

    .line 73
    .local v3, "nextId":Ljava/lang/String;
    iget-object v4, p0, Lgov/nist/javax/sip/parser/ExpiresParser;->lexer:Lgov/nist/core/LexerCore;

    const/16 v5, 0xa

    invoke-virtual {v4, v5}, Lgov/nist/core/LexerCore;->match(I)Lgov/nist/core/Token;
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    .line 75
    :try_start_1
    invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I

    move-result v0

    .line 76
    .local v0, "delta":I
    invoke-virtual {v2, v0}, Lgov/nist/javax/sip/header/Expires;->setExpires(I)V
    :try_end_1
    .catch Ljava/lang/NumberFormatException; {:try_start_1 .. :try_end_1} :catch_0
    .catch Ljavax/sip/InvalidArgumentException; {:try_start_1 .. :try_end_1} :catch_1
    .catchall {:try_start_1 .. :try_end_1} :catchall_0

    .line 84
    sget-boolean v4, Lgov/nist/javax/sip/parser/ExpiresParser;->debug:Z

    if-eqz v4, :cond_1

    .line 85
    const-string v4, "parse"

    invoke-virtual {p0, v4}, Lgov/nist/javax/sip/parser/ExpiresParser;->dbg_leave(Ljava/lang/String;)V

    .line 77
    :cond_1
    return-object v2

    .line 78
    .end local v0    # "delta":I
    :catch_0
    move-exception v1

    .line 79
    .local v1, "ex":Ljava/lang/NumberFormatException;
    :try_start_2
    const-string v4, "bad integer format"

    invoke-virtual {p0, v4}, Lgov/nist/javax/sip/parser/ExpiresParser;->createParseException(Ljava/lang/String;)Ljava/text/ParseException;

    move-result-object v4

    throw v4
    :try_end_2
    .catchall {:try_start_2 .. :try_end_2} :catchall_0

    .line 84
    .end local v1    # "ex":Ljava/lang/NumberFormatException;
    .end local v3    # "nextId":Ljava/lang/String;
    :catchall_0
    move-exception v4

    sget-boolean v5, Lgov/nist/javax/sip/parser/ExpiresParser;->debug:Z

    if-eqz v5, :cond_2

    .line 85
    const-string v5, "parse"

    invoke-virtual {p0, v5}, Lgov/nist/javax/sip/parser/ExpiresParser;->dbg_leave(Ljava/lang/String;)V

    .line 84
    :cond_2
    throw v4

    .line 80
    .restart local v3    # "nextId":Ljava/lang/String;
    :catch_1
    move-exception v1

    .line 81
    .local v1, "ex":Ljavax/sip/InvalidArgumentException;
    :try_start_3
    invoke-virtual {v1}, Ljavax/sip/InvalidArgumentException;->getMessage()Ljava/lang/String;

    move-result-object v4

    invoke-virtual {p0, v4}, Lgov/nist/javax/sip/parser/ExpiresParser;->createParseException(Ljava/lang/String;)Ljava/text/ParseException;

    move-result-object v4

    throw v4
    :try_end_3
    .catchall {:try_start_3 .. :try_end_3} :catchall_0
.end method

redpajama_set_name: RedPajamaGithub