Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
b42c792f
Kaydet (Commit)
b42c792f
authored
Nis 09, 2012
tarafından
Julien Nabet
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Remove some unused methods
üst
b3e2cbc6
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
0 additions
and
336 deletions
+0
-336
numberformatsbuffer.hxx
sc/source/filter/inc/numberformatsbuffer.hxx
+0
-2
pivotcachebuffer.hxx
sc/source/filter/inc/pivotcachebuffer.hxx
+0
-2
scenariobuffer.hxx
sc/source/filter/inc/scenariobuffer.hxx
+0
-2
stylesbuffer.hxx
sc/source/filter/inc/stylesbuffer.hxx
+0
-5
numberformatsbuffer.cxx
sc/source/filter/oox/numberformatsbuffer.cxx
+0
-28
pivotcachebuffer.cxx
sc/source/filter/oox/pivotcachebuffer.cxx
+0
-30
scenariobuffer.cxx
sc/source/filter/oox/scenariobuffer.cxx
+0
-11
stylesbuffer.cxx
sc/source/filter/oox/stylesbuffer.cxx
+0
-152
View.hxx
sd/source/ui/inc/View.hxx
+0
-2
SlsGenericPageCache.cxx
sd/source/ui/slidesorter/cache/SlsGenericPageCache.cxx
+0
-37
SlsGenericPageCache.hxx
sd/source/ui/slidesorter/cache/SlsGenericPageCache.hxx
+0
-6
sdview4.cxx
sd/source/ui/view/sdview4.cxx
+0
-53
unusedcode.easy
unusedcode.easy
+0
-6
No files found.
sc/source/filter/inc/numberformatsbuffer.hxx
Dosyayı görüntüle @
b42c792f
...
...
@@ -111,8 +111,6 @@ public:
NumberFormatRef
importNumFmt
(
const
AttributeList
&
rAttribs
);
/** Inserts a new number format code from a NUMFMT record. */
void
importNumFmt
(
SequenceInputStream
&
rStrm
);
/** Inserts a new number format code from a FORMAT record. */
void
importFormat
(
BiffInputStream
&
rStrm
);
/** Final processing after import of all style settings. */
void
finalizeImport
();
...
...
sc/source/filter/inc/pivotcachebuffer.hxx
Dosyayı görüntüle @
b42c792f
...
...
@@ -414,8 +414,6 @@ public:
/** Reads sheet source settings from the PCDSHEETSOURCE record. */
void
importPCDSheetSource
(
SequenceInputStream
&
rStrm
,
const
::
oox
::
core
::
Relations
&
rRelations
);
/** Reads cache source settings from the PCDSOURCE record. */
void
importPCDSource
(
BiffInputStream
&
rStrm
);
/** Reads pivot cache global settings from the PCDEFINITION record. */
void
importPCDefinition
(
BiffInputStream
&
rStrm
);
...
...
sc/source/filter/inc/scenariobuffer.hxx
Dosyayı görüntüle @
b42c792f
...
...
@@ -114,8 +114,6 @@ public:
void
importScenarios
(
const
AttributeList
&
rAttribs
);
/** Imports sheet scenario settings from a SCENARIOS record. */
void
importScenarios
(
SequenceInputStream
&
rStrm
);
/** Imports sheet scenario settings from a SCENARIOS record. */
void
importScenarios
(
BiffInputStream
&
rStrm
);
/** Creates and returns a new scenario in this collection. */
Scenario
&
createScenario
();
...
...
sc/source/filter/inc/stylesbuffer.hxx
Dosyayı görüntüle @
b42c792f
...
...
@@ -280,8 +280,6 @@ public:
/** Imports a font style flag from a DXF record. */
void
importDxfFlag
(
sal_Int32
nElement
,
SequenceInputStream
&
rStrm
);
/** Imports the FONT record from the passed stream. */
void
importFont
(
BiffInputStream
&
rStrm
);
/** Imports the FONTCOLOR record from the passed stream. */
void
importFontColor
(
BiffInputStream
&
rStrm
);
/** Sets the font attributes from the font block of a CFRULE record. */
...
...
@@ -783,9 +781,6 @@ public:
/** Imports the XF record from the passed stream. */
void
importXf
(
SequenceInputStream
&
rStrm
,
bool
bCellXf
);
/** Imports the XF record from the passed stream. */
void
importXf
(
BiffInputStream
&
rStrm
);
/** Final processing after import of all style settings. */
void
finalizeImport
();
...
...
sc/source/filter/oox/numberformatsbuffer.cxx
Dosyayı görüntüle @
b42c792f
...
...
@@ -2019,34 +2019,6 @@ void NumberFormatsBuffer::importNumFmt( SequenceInputStream& rStrm )
createNumFmt
(
nNumFmtId
,
aFmtCode
);
}
void
NumberFormatsBuffer
::
importFormat
(
BiffInputStream
&
rStrm
)
{
OUString
aFmtCode
;
switch
(
getBiff
()
)
{
case
BIFF2
:
case
BIFF3
:
aFmtCode
=
rStrm
.
readByteStringUC
(
false
,
getTextEncoding
()
);
break
;
case
BIFF4
:
rStrm
.
skip
(
2
);
// in BIFF4 the index field exists, but is undefined
aFmtCode
=
rStrm
.
readByteStringUC
(
false
,
getTextEncoding
()
);
break
;
case
BIFF5
:
mnNextBiffIndex
=
rStrm
.
readuInt16
();
aFmtCode
=
rStrm
.
readByteStringUC
(
false
,
getTextEncoding
()
);
break
;
case
BIFF8
:
mnNextBiffIndex
=
rStrm
.
readuInt16
();
aFmtCode
=
rStrm
.
readUniString
();
break
;
case
BIFF_UNKNOWN
:
break
;
}
createNumFmt
(
mnNextBiffIndex
,
aFmtCode
);
++
mnNextBiffIndex
;
}
void
NumberFormatsBuffer
::
finalizeImport
()
{
maNumFmts
.
forEach
(
NumberFormatFinalizer
(
*
this
)
);
...
...
sc/source/filter/oox/pivotcachebuffer.cxx
Dosyayı görüntüle @
b42c792f
...
...
@@ -1188,36 +1188,6 @@ void PivotCache::importPCDSheetSource( SequenceInputStream& rStrm, const Relatio
maTargetUrl
=
rRelations
.
getExternalTargetFromRelId
(
maSheetSrcModel
.
maRelId
);
}
void
PivotCache
::
importPCDSource
(
BiffInputStream
&
rStrm
)
{
switch
(
rStrm
.
readuInt16
()
)
{
case
BIFF_PCDSOURCE_WORKSHEET
:
{
maSourceModel
.
mnSourceType
=
XML_worksheet
;
sal_uInt16
nNextRecId
=
rStrm
.
getNextRecId
();
switch
(
nNextRecId
)
{
case
BIFF_ID_DCONREF
:
if
(
rStrm
.
startNextRecord
()
)
importDConRef
(
rStrm
);
break
;
case
BIFF_ID_DCONNAME
:
if
(
rStrm
.
startNextRecord
()
)
importDConName
(
rStrm
);
break
;
case
BIFF_ID_DCONBINAME
:
if
(
rStrm
.
startNextRecord
()
)
importDConBIName
(
rStrm
);
break
;
}
}
break
;
case
BIFF_PCDSOURCE_EXTERNAL
:
maSourceModel
.
mnSourceType
=
XML_external
;
break
;
case
BIFF_PCDSOURCE_CONSOLIDATION
:
maSourceModel
.
mnSourceType
=
XML_consolidation
;
break
;
case
BIFF_PCDSOURCE_SCENARIO
:
maSourceModel
.
mnSourceType
=
XML_scenario
;
break
;
default
:
maSourceModel
.
mnSourceType
=
XML_TOKEN_INVALID
;
}
}
void
PivotCache
::
importPCDefinition
(
BiffInputStream
&
rStrm
)
{
sal_uInt16
nFlags
,
nUserNameLen
;
...
...
sc/source/filter/oox/scenariobuffer.cxx
Dosyayı görüntüle @
b42c792f
...
...
@@ -239,17 +239,6 @@ void SheetScenarios::importScenarios( SequenceInputStream& rStrm )
maModel
.
mnShown
=
rStrm
.
readuInt16
();
}
void
SheetScenarios
::
importScenarios
(
BiffInputStream
&
rStrm
)
{
rStrm
.
skip
(
2
);
// scenario count
maModel
.
mnCurrent
=
rStrm
.
readuInt16
();
maModel
.
mnShown
=
rStrm
.
readuInt16
();
// read following SCENARIO records
while
(
(
rStrm
.
getNextRecId
()
==
BIFF_ID_SCENARIO
)
&&
rStrm
.
startNextRecord
()
)
createScenario
().
importScenario
(
rStrm
);
}
Scenario
&
SheetScenarios
::
createScenario
()
{
ScenarioVector
::
value_type
xScenario
(
new
Scenario
(
*
this
,
mnSheet
)
);
...
...
sc/source/filter/oox/stylesbuffer.cxx
Dosyayı görüntüle @
b42c792f
...
...
@@ -891,37 +891,6 @@ void Font::importDxfFlag( sal_Int32 nElement, SequenceInputStream& rStrm )
}
}
void
Font
::
importFont
(
BiffInputStream
&
rStrm
)
{
OSL_ENSURE
(
!
mbDxf
,
"Font::importFont - unexpected conditional formatting flag"
);
switch
(
getBiff
()
)
{
case
BIFF2
:
importFontData2
(
rStrm
);
importFontName2
(
rStrm
);
break
;
case
BIFF3
:
case
BIFF4
:
importFontData2
(
rStrm
);
importFontColor
(
rStrm
);
importFontName2
(
rStrm
);
break
;
case
BIFF5
:
importFontData2
(
rStrm
);
importFontColor
(
rStrm
);
importFontData5
(
rStrm
);
importFontName2
(
rStrm
);
break
;
case
BIFF8
:
importFontData2
(
rStrm
);
importFontColor
(
rStrm
);
importFontData5
(
rStrm
);
importFontName8
(
rStrm
);
break
;
case
BIFF_UNKNOWN
:
break
;
}
}
void
Font
::
importFontColor
(
BiffInputStream
&
rStrm
)
{
OSL_ENSURE
(
!
mbDxf
,
"Font::importFontColor - unexpected conditional formatting flag"
);
...
...
@@ -2579,127 +2548,6 @@ void Xf::importXf( SequenceInputStream& rStrm, bool bCellXf )
maModel
.
mbAreaUsed
=
maModel
.
mbCellXf
==
getFlag
(
nUsedFlags
,
BIFF12_XF_AREA_USED
);
}
void
Xf
::
importXf
(
BiffInputStream
&
rStrm
)
{
BorderRef
xBorder
=
getStyles
().
createBorder
(
&
maModel
.
mnBorderId
);
FillRef
xFill
=
getStyles
().
createFill
(
&
maModel
.
mnFillId
);
switch
(
getBiff
()
)
{
case
BIFF2
:
{
sal_uInt8
nFontId
,
nNumFmtId
,
nFlags
;
rStrm
>>
nFontId
;
rStrm
.
skip
(
1
);
rStrm
>>
nNumFmtId
>>
nFlags
;
// only cell XFs in BIFF2, no parent style, used flags always true
setAllUsedFlags
(
true
);
// attributes
maAlignment
.
setBiff2Data
(
nFlags
);
maProtection
.
setBiff2Data
(
nNumFmtId
);
xBorder
->
setBiff2Data
(
nFlags
);
xFill
->
setBiff2Data
(
nFlags
);
maModel
.
mnFontId
=
static_cast
<
sal_Int32
>
(
nFontId
);
maModel
.
mnNumFmtId
=
static_cast
<
sal_Int32
>
(
nNumFmtId
&
BIFF2_XF_VALFMT_MASK
);
}
break
;
case
BIFF3
:
{
sal_uInt32
nBorder
;
sal_uInt16
nTypeProt
,
nAlign
,
nArea
;
sal_uInt8
nFontId
,
nNumFmtId
;
rStrm
>>
nFontId
>>
nNumFmtId
>>
nTypeProt
>>
nAlign
>>
nArea
>>
nBorder
;
// XF type/parent
maModel
.
mbCellXf
=
!
getFlag
(
nTypeProt
,
BIFF_XF_STYLE
);
// new in BIFF3
maModel
.
mnStyleXfId
=
extractValue
<
sal_Int32
>
(
nAlign
,
4
,
12
);
// new in BIFF3
// attribute used flags
setBiffUsedFlags
(
extractValue
<
sal_uInt8
>
(
nTypeProt
,
10
,
6
)
);
// new in BIFF3
// attributes
maAlignment
.
setBiff3Data
(
nAlign
);
maProtection
.
setBiff3Data
(
nTypeProt
);
xBorder
->
setBiff3Data
(
nBorder
);
xFill
->
setBiff3Data
(
nArea
);
maModel
.
mnFontId
=
static_cast
<
sal_Int32
>
(
nFontId
);
maModel
.
mnNumFmtId
=
static_cast
<
sal_Int32
>
(
nNumFmtId
);
}
break
;
case
BIFF4
:
{
sal_uInt32
nBorder
;
sal_uInt16
nTypeProt
,
nAlign
,
nArea
;
sal_uInt8
nFontId
,
nNumFmtId
;
rStrm
>>
nFontId
>>
nNumFmtId
>>
nTypeProt
>>
nAlign
>>
nArea
>>
nBorder
;
// XF type/parent
maModel
.
mbCellXf
=
!
getFlag
(
nTypeProt
,
BIFF_XF_STYLE
);
maModel
.
mnStyleXfId
=
extractValue
<
sal_Int32
>
(
nTypeProt
,
4
,
12
);
// attribute used flags
setBiffUsedFlags
(
extractValue
<
sal_uInt8
>
(
nAlign
,
10
,
6
)
);
// attributes
maAlignment
.
setBiff4Data
(
nAlign
);
maProtection
.
setBiff3Data
(
nTypeProt
);
xBorder
->
setBiff3Data
(
nBorder
);
xFill
->
setBiff3Data
(
nArea
);
maModel
.
mnFontId
=
static_cast
<
sal_Int32
>
(
nFontId
);
maModel
.
mnNumFmtId
=
static_cast
<
sal_Int32
>
(
nNumFmtId
);
}
break
;
case
BIFF5
:
{
sal_uInt32
nArea
,
nBorder
;
sal_uInt16
nFontId
,
nNumFmtId
,
nTypeProt
,
nAlign
;
rStrm
>>
nFontId
>>
nNumFmtId
>>
nTypeProt
>>
nAlign
>>
nArea
>>
nBorder
;
// XF type/parent
maModel
.
mbCellXf
=
!
getFlag
(
nTypeProt
,
BIFF_XF_STYLE
);
maModel
.
mnStyleXfId
=
extractValue
<
sal_Int32
>
(
nTypeProt
,
4
,
12
);
// attribute used flags
setBiffUsedFlags
(
extractValue
<
sal_uInt8
>
(
nAlign
,
10
,
6
)
);
// attributes
maAlignment
.
setBiff5Data
(
nAlign
);
maProtection
.
setBiff3Data
(
nTypeProt
);
xBorder
->
setBiff5Data
(
nBorder
,
nArea
);
xFill
->
setBiff5Data
(
nArea
);
maModel
.
mnFontId
=
static_cast
<
sal_Int32
>
(
nFontId
);
maModel
.
mnNumFmtId
=
static_cast
<
sal_Int32
>
(
nNumFmtId
);
}
break
;
case
BIFF8
:
{
sal_uInt32
nBorder1
,
nBorder2
;
sal_uInt16
nFontId
,
nNumFmtId
,
nTypeProt
,
nAlign
,
nMiscAttrib
,
nArea
;
rStrm
>>
nFontId
>>
nNumFmtId
>>
nTypeProt
>>
nAlign
>>
nMiscAttrib
>>
nBorder1
>>
nBorder2
>>
nArea
;
// XF type/parent
maModel
.
mbCellXf
=
!
getFlag
(
nTypeProt
,
BIFF_XF_STYLE
);
maModel
.
mnStyleXfId
=
extractValue
<
sal_Int32
>
(
nTypeProt
,
4
,
12
);
// attribute used flags
setBiffUsedFlags
(
extractValue
<
sal_uInt8
>
(
nMiscAttrib
,
10
,
6
)
);
// attributes
maAlignment
.
setBiff8Data
(
nAlign
,
nMiscAttrib
);
maProtection
.
setBiff3Data
(
nTypeProt
);
xBorder
->
setBiff8Data
(
nBorder1
,
nBorder2
);
xFill
->
setBiff8Data
(
nBorder2
,
nArea
);
maModel
.
mnFontId
=
static_cast
<
sal_Int32
>
(
nFontId
);
maModel
.
mnNumFmtId
=
static_cast
<
sal_Int32
>
(
nNumFmtId
);
}
break
;
case
BIFF_UNKNOWN
:
break
;
}
}
void
Xf
::
finalizeImport
()
{
// alignment and protection
...
...
sd/source/ui/inc/View.hxx
Dosyayı görüntüle @
b42c792f
...
...
@@ -161,8 +161,6 @@ public:
void
SetMarkedOriginalSize
();
void
LockRedraw
(
sal_Bool
bLock
);
sal_Bool
IsMorphingAllowed
()
const
;
sal_Bool
IsVectorizeAllowed
()
const
;
...
...
sd/source/ui/slidesorter/cache/SlsGenericPageCache.cxx
Dosyayı görüntüle @
b42c792f
...
...
@@ -263,43 +263,6 @@ bool GenericPageCache::InvalidatePreviewBitmap (const CacheKey aKey)
return
false
;
}
void
GenericPageCache
::
ReleasePreviewBitmap
(
const
CacheKey
aKey
)
{
if
(
mpBitmapCache
.
get
()
!=
NULL
)
{
// Suspend the queue processing temporarily to avoid the reinsertion
// of the request that is to be deleted.
mpQueueProcessor
->
Stop
();
maRequestQueue
.
RemoveRequest
(
aKey
);
mpQueueProcessor
->
RemoveRequest
(
aKey
);
// Resume the queue processing.
if
(
!
maRequestQueue
.
IsEmpty
())
{
try
{
mpQueueProcessor
->
Start
(
maRequestQueue
.
GetFrontPriorityClass
());
}
catch
(
const
::
com
::
sun
::
star
::
uno
::
RuntimeException
&
)
{
}
}
}
// We do not relase the preview bitmap that is associated with the page
// of the given request data because this method is called when the
// request data, typically a view-object-contact object, is destroyed.
// The page object usually lives longer than that and thus the preview
// bitmap may be used later on.
}
void
GenericPageCache
::
InvalidateCache
(
const
bool
bUpdateCache
)
{
if
(
mpBitmapCache
)
...
...
sd/source/ui/slidesorter/cache/SlsGenericPageCache.hxx
Dosyayı görüntüle @
b42c792f
...
...
@@ -120,12 +120,6 @@ public:
*/
bool
InvalidatePreviewBitmap
(
const
CacheKey
aKey
);
/** Call this method when a view-object-contact object is being deleted
and does not need (a) its current bitmap in the cache and (b) a
requested a new bitmap.
*/
void
ReleasePreviewBitmap
(
const
CacheKey
aKey
);
/** Call this method when all preview bitmaps have to be generated anew.
This is the case when the size of the page objects on the screen has
changed or when the model has changed.
...
...
sd/source/ui/view/sdview4.cxx
Dosyayı görüntüle @
b42c792f
...
...
@@ -576,59 +576,6 @@ IMPL_LINK_NOARG(View, DropErrorHdl)
#pragma optimize ( "", on )
#endif
/*************************************************************************
|*
|* Redraw sperren oder erlauben
|*
\************************************************************************/
void
View
::
LockRedraw
(
sal_Bool
bLock
)
{
if
(
bLock
)
{
mnLockRedrawSmph
++
;
DBG_ASSERT
(
mnLockRedrawSmph
,
"Ueberlauf im LockRedraw"
);
}
else
{
DBG_ASSERT
(
mnLockRedrawSmph
,
"Unterlauf im LockRedraw"
);
mnLockRedrawSmph
--
;
// alle gespeicherten Redraws ausfuehren
if
(
!
mnLockRedrawSmph
)
{
boost
::
ptr_vector
<
SdViewRedrawRec
>::
iterator
iter
;
while
(
!
maLockedRedraws
.
empty
())
{
iter
=
maLockedRedraws
.
begin
();
OutputDevice
*
pCurrentOut
=
iter
->
mpOut
;
Rectangle
aBoundRect
(
iter
->
aRect
);
iter
=
maLockedRedraws
.
erase
(
iter
);
while
(
iter
!=
maLockedRedraws
.
end
())
{
if
(
iter
->
mpOut
==
pCurrentOut
)
{
aBoundRect
.
Union
(
iter
->
aRect
);
iter
=
maLockedRedraws
.
erase
(
iter
);
}
else
{
++
iter
;
}
}
CompleteRedraw
(
pCurrentOut
,
Region
(
aBoundRect
));
}
}
}
}
/*************************************************************************
|*
...
...
unusedcode.easy
Dosyayı görüntüle @
b42c792f
...
...
@@ -804,15 +804,10 @@ oox::xls::BiffSheetDataContext::BiffSheetDataContext(oox::xls::WorksheetHelper c
oox::xls::BiffWorksheetFragmentBase::BiffWorksheetFragmentBase(oox::xls::WorksheetHelper const&, oox::xls::BiffWorkbookFragmentBase const&)
oox::xls::CellBlock::CellBlock(oox::xls::WorksheetHelper const&, oox::ValueRange const&, int)
oox::xls::CellStyleBuffer::importStyle(oox::xls::BiffInputStream&)
oox::xls::Font::importFont(oox::xls::BiffInputStream&)
oox::xls::NumberFormatsBuffer::importFormat(oox::xls::BiffInputStream&)
oox::xls::PivotCache::importPCDSource(oox::xls::BiffInputStream&)
oox::xls::SheetScenarios::importScenarios(oox::xls::BiffInputStream&)
oox::xls::WorkbookGlobals::createBuffersPerSheet(short)
oox::xls::WorkbookGlobals::setCodePage(unsigned short)
oox::xls::WorkbookGlobals::setIsWorkbookFile()
oox::xls::WorkbookHelper::setAppFontEncoding(unsigned short)
oox::xls::Xf::importXf(oox::xls::BiffInputStream&)
psp::PrinterGfx::DrawBitmap(Rectangle const&, Rectangle const&, psp::PrinterBmp const&, psp::PrinterBmp const&)
psp::PrinterGfx::DrawMask(Rectangle const&, Rectangle const&, psp::PrinterBmp const&, psp::PrinterColor&)
psp::PrinterGfx::GetGlyphBoundRect(unsigned short, Rectangle&)
...
...
@@ -823,7 +818,6 @@ psp::PrinterGfx::SetFallbackFont(int)
sd::LeftDrawPaneShell::RegisterInterface(SfxModule*)
sd::LeftImpressPaneShell::RegisterInterface(SfxModule*)
sd::ToolPanelPaneShell::RegisterInterface(SfxModule*)
sd::View::LockRedraw(unsigned char)
sd::ViewShellBase::RegisterFactory(unsigned short)
sd::slidesorter::cache::GenericPageCache::ReleasePreviewBitmap(SdrPage const*)
sd::slidesorter::controller::SelectionFunction::EventDescriptor::EventDescriptor(KeyEvent const&, sd::slidesorter::SlideSorter&)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment